Avatar billede dcheng Novice
29. maj 2004 - 10:50 Der er 10 kommentarer og
1 løsning

UPDATE problem

Jeg har en side hvor jeg submitter til den her, men problemet er at den ikke får opdateret hvad er der galt? Browseren mælder dog opdateret...

+++++++++++++ START ++++++++++++
<?php

if ($submit) {

include 'connect.php';


$id=            $_POST['id'];
$title1=        $_POST['title1'];
$title2=        $_POST['title2'];


$query="UPDATE mdb SET title1='$title1' title2='$title2' WHERE id='$id'";
mysql_query($query);

    echo "opdateret";



} else {



    echo "Ikke opdateret";

    }

mysql_close();

  ?>
+++++++++++++ SLUT +++++++++++++
Avatar billede fixxxer Nybegynder
29. maj 2004 - 10:57 #1
umeldbart ville jeg mene at $id er et tal og ikke en string.

$query="UPDATE mdb SET title1='$title1' title2='$title2' WHERE id=$id";

men nu er PHP ikke mit stærkest felt :)
Avatar billede dennismp Nybegynder
29. maj 2004 - 11:09 #2
$query="UPDATE mdb SET title1='$title1', title2='$title2' WHERE id='$id'";

der mangler et komma
Avatar billede keldsen Nybegynder
29. maj 2004 - 11:10 #3
Det kan være fordi at title1 eller title2 ikke eksisterer som felter i databasen, men at de hedder noget der bare minder om det.

En anden mulighed er at der ikke findes en post med id'et $id.
prøv evt. at indsætte
echo (mysql_num_rows(mysql_query("SELECT * FROM mdb WHERE id='".$id."'")) > 0);
Hvis den ikke udskriver true, så er det her fejlen er - intet id med indholdet $id.
Avatar billede dennismp Nybegynder
29. maj 2004 - 11:11 #4
fixxxer: MySQL er ligeglad om du bruger "stringe" som tal. Det konverterer det bare.

dcheng: ændre:
mysql_query($query);
til
mysql_query($query) or die(mysql_error());

det ville garanteret give et hint om hvad problemet er. Men jeg tror det er bare at du mangler et komma.
Avatar billede danino Nybegynder
29. maj 2004 - 11:19 #5
Der er to fejl... Det ene er det førnævnte komma, og den anden er, at du ikke tjekker om din query er gået igennem, du udskriver bare "opdateret" efter du har forsøgt at køre den. For at tjekke den, skal du skrive noget i retning af:

<?php

if ($submit) {

include 'connect.php';


$id=            $_POST['id'];
$title1=        $_POST['title1'];
$title2=        $_POST['title2'];


$query="UPDATE mdb SET title1='$title1' title2='$title2' WHERE id='$id'";
if(mysql_query($query))
{

    echo "opdateret";
}


else {



    echo "Ikke opdateret";

    }

mysql_close();
}
  ?>

Så skulle den vist nok virke...
Avatar billede dennismp Nybegynder
29. maj 2004 - 11:25 #6
danino: selvom der opdateres 0 rækker, hvis din løsning sige "opdateret".

...

$query="UPDATE mdb SET title1='$title1' title2='$title2' WHERE id='$id'";
$res = mysql_query($query) or die(mysql_error());

if( mysql_affected_rows($res) == 1 ) {
  print "Opdateret";
}
else {
  print "Ikke opdateret";
}

...
Avatar billede fixxxer Nybegynder
29. maj 2004 - 11:41 #7
dennismp >> det bekræfter jo bare min mening om sproget, det er skørt... :P
Avatar billede jakoba Nybegynder
29. maj 2004 - 12:04 #8
Som keldsen allerede har været inde på kræver SQL's UPDATE sætning at der allerede findes en række i din tabel hvor id har værdien $id. Hvis du ønsker at indsætte nogen helt nye data skal du benytte en INSERT sætning.
Avatar billede dcheng Novice
29. maj 2004 - 13:59 #9
dennismp pointene går til dig da det var komma fejlen.... Burde jeg også vide selv har over set det :D

Men igen Tak til alle for de gode forslag!!
Avatar billede dennismp Nybegynder
29. maj 2004 - 14:33 #10
fixxer: Det er jo SQL.. så det ville da være syndt at sige at det er PHPs problem :-)
Avatar billede dcheng Novice
29. maj 2004 - 16:11 #11
dennismp godt sagt der! Synes nu også er PHP er det dejligt sprog :D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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