Avatar billede teck Nybegynder
26. september 2003 - 10:57 Der er 14 kommentarer og
1 løsning

Opdatere data i MySQL

Hej, jeg har levet følgende stykke kode som skal opdatere noget tekst i en database, problemet er bare at der ikke er noget der bliver opdateret, selv om at der ikke opstår nogen fejl på siden! Så jeg kan ikke helt gennemskue hvad der går galt. Håber der er en der kan hjælpe.

Det skal forresten lige siges, at der er to felter i databasen ved navn billede og billede2, som der ikke skal ske opdateringer ved!

Her er koden!

<?
if (!$mode) {


include ("connect.php");

    $resultat = mysql_query("select * from whiskey where id='$id'");
    $row = mysql_fetch_array($resultat);
    $navn = $row['navn'];
    $alder = $row['alder'];
    $type = $row['type'];
    $volume = $row['volume'];
    $land = $row['land'];
    $tekst = $row['tekst'];
    $tekst2 = nl2br($tekst);
    $url = $row['url'];
    $id2 = $row['id'];
   
echo"
<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\">
  <tr>
    <td align=\"left\">
      <p align=\"center\">&nbsp;</p>
      <form action=\"retwhiskey.php?mode=update\" method=\"post\">
        <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\"><br>
        <br>
        </font>
        <div align=\"center\">
          <center>
            <table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">
              <tr>
                <td height=\"43\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Navn
                  :</font></td>
                <td height=\"43\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <INPUT TYPE=\"text\" name=\"rettitel\" class=\"tekstboks\" size=\"36\" value=\"$navn\">
                  </font></td>
              </tr>
              <tr valign=\"top\">
                <td height=\"2\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Alder:</font></td>
                <td height=\"2\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"ret-alder\" class=\"tekstboks\" size=\"10\" value=\"$alder\">
                  </font></td>
              </tr>
              <tr valign=\"top\">
                <td height=\"15\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Type:</font></td>
                <td height=\"15\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"ret-type\" class=\"tekstboks\" size=\"36\" value=\"$type\">
                  </font></td>
              </tr>
              <tr valign=\"top\">
                <td height=\"2\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Volumen:</font></td>
                <td height=\"2\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"ret-volume\" class=\"tekstboks\" size=\"10\" value=\"$volume\">
                  </font></td>
              </tr>
              <tr valign=\"top\">
                <td height=\"6\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Land:</font></td>
                <td height=\"6\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"ret-land\" class=\"tekstboks\" size=\"30\" value=\"$land\">
                  </font></td>
              </tr>
              <tr valign=\"top\">
                <td colspan=\"2\" height=\"245\">
                  <div align=\"center\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Tekst:<br>
                    <textarea name=\"ret-tekst\" cols=\"100\" rows=\"15\"> $tekst2</textarea>
                    </font></div>
                  <div align=\"center\"></div>
                </td>
              </tr>
              <tr>
                <td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">Url:</font></td>
                <td><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"text\" name=\"ret-url\" class=\"tekstboks\" size=\"30\" value=\"$url\">
                  </font></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
                  <input type=\"submit\" value=\" Tilf&oslash;j \" class=\"knap\">
               
                  </font></td>
              </tr>
            </table>
          </center>
        </div>
      </form>


    </td>
  </tr>
</table>
";


}

if ($mode == "update") {

include ("connect.php");



// Opdatere informationerne ind i MySQLen
$query = mysql_query("UPDATE INTO whiskey set navn=$rettitel, alder='$retalder', volume='$retvolmue', type='$rettype', tekst='$rettekst', url='$returl' WHERE id=$id");



        print "

  <center>

  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">

    <tr>

      <td>

        <p align=\"center\">Artikel er updateret !</p>

      </center>



<td>

  </tr>

  </table>

";

}

?>
Avatar billede riversen Nybegynder
26. september 2003 - 11:04 #1
du skal sige

UPDATE tabelnavn SET kolonne1 = $data1, kolonne2 = $data2 WHERE id = 1

for eksempel...
Avatar billede erikjacobsen Ekspert
26. september 2003 - 11:04 #2
prøv

$query = mysql_query("UPDATE INTO whiskey set navn='$rettitel', alder='$retalder', volume='$retvolmue', type='$rettype', tekst='$rettekst', url='$returl' WHERE id=$id") or die(mysql_error());
Avatar billede erikjacobsen Ekspert
26. september 2003 - 11:04 #3
Ups, ja! INTO skal også fjernes ;))
Avatar billede riversen Nybegynder
26. september 2003 - 11:05 #4
erik: skulle lige til at brokke mig :-)
Avatar billede teck Nybegynder
26. september 2003 - 11:09 #5
Når jeg indsætter den linie og fjerner INTo, opstår der følgende fejl, når man trykker på Tilføj: You have an error in your SQL syntax near '' at line 1
Avatar billede erikjacobsen Ekspert
26. september 2003 - 11:10 #6
Så er din $id tom.
Avatar billede erikjacobsen Ekspert
26. september 2003 - 11:10 #7
Nogen speciel grund til at du har dette:    $id2 = $row['id'];
Avatar billede teck Nybegynder
26. september 2003 - 11:12 #8
nej, det var bare et forsøg jeg havde, jeg bruger den ikke rigtigt til noget! Men $id burde jo helst ikke være tom!
Avatar billede teck Nybegynder
26. september 2003 - 11:39 #9
Hvis jeg skriver WHERE id='$id', opstår der ingen fejl, men der bliver stadig ikke opdateret i databasen. Kan det skyldes at man ikke tager felterne billede og billede2 med, når man opdatere... Jeg har nemlig med valgt at man ikke skal kunne opdatere dem!
Avatar billede erikjacobsen Ekspert
26. september 2003 - 11:45 #10
Jeg kan ikke se hvor du får $id fra
Avatar billede teck Nybegynder
26. september 2003 - 11:58 #11
når jeg skal ind og rette i en side skriver jeg f.eks. retwhiskey.php?id=1 og det er id=1 den skal gå ind og rette i databasen, det var derfor jeg havde $id2 = $row['id']; for at se om det gjorde en forskel når jeg skulle update... men jeg kan simpelhen ikke se fejlen!
Avatar billede erikjacobsen Ekspert
26. september 2003 - 12:00 #12
Joh, så eksisterer den når du laver udtrækket, første gang på siden, men
ikke når du har trykket på knappen i formen.
Avatar billede teck Nybegynder
26. september 2003 - 12:02 #13
ok, ved du så hvordan man kan medtage variablen, når jeg skal lave en update?
Avatar billede erikjacobsen Ekspert
26. september 2003 - 12:06 #14
Du kunne jo fx

<form action=\"retwhiskey.php?mode=update&id=$id\" method=\"post\">
Avatar billede teck Nybegynder
26. september 2003 - 12:12 #15
Sådam nu virker det skam! :).... du skal have mange tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester