24. september 2003 - 13:00
Der er
7 kommentarer og 1 løsning
Opdater database fra form
Yes den har været oppe før, men det driller alligevel lidt :) Jeg har en update.htm med følgende: <form name="update" method="post" action="op.php"> find produkt, der skal opdateres <input name="update" type="text" id="idnr"> <input type="submit" name="Submit" value="Submit"> </form> så langt så godt, så ha jeg naturligvis min op.php som ser sådan her ud: <?php $con=mysql_connect("localhost", "root", "xxx")or die("Connect Error: ".mysql_error()); $db="flow"; mysql_select_db($db, $con); // Request the data $result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[idnr]'"); if (!$result) { echo("<p>Error performing query: " . mysql_error() . "</p>"); exit(); } // Display the data while ( $row = mysql_fetch_array($result) ) { ?> <center> <B> Ret i databasen:</B><BR><BR> <form action="<?=$PHP_SELF;?>" method="POST" name="form"> <table width="65%" border="5" cellspacing="2" cellpadding="5"> <tr><td><B>Nr:</B></td><td> <B><input type="text" name="nr" maxlength="12" size = "40" value="<?=$row[nr];?>"></B></td></tr> <tr><td><B>Name:</B></td><td> <B><input type="text" name="name" maxlength="35" size = "40" value="<?=$row[name];?>"></B></td></tr> <tr><td><B>Size:</B></td><td> <B><input type="text" name="size" maxlength="40" size = "40" value="<?=$row[size];?>"></B></td></tr> <tr><td><B>Page:</B></td><td> <B><input type="text" name="page" maxlength="8" size = "40" value="<?=$row[page];?>"></B></td></tr> <tr><td><B>Ean:</B></td><td> <B><input type="text" name="ean" maxlength="35" size = "40" value="<?=$row[ean];?>"></B></td></tr> <tr><td><B>pieces:</B></td><td> <B><input type="text" name="pieceseur" maxlength="35" size = "40" value="<?=$row[pieceseur];?>"></B></td></tr> <tr><td><B>Netto:</B></td><td> <B><input type="text" name="netto" maxlength="35" size = "40" value="<?=$row[netto];?>"></B></td></tr> </table> <BR> <input type="hidden" name="id" value="<?echo $_REQUEST[id];?>"> <input type="submit" value="opdatér" name="update"> </form> <?php } if(isset($update)){ $SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto ' WHERE nr = $id"; mysql_query($SQL); } mysql_close(); ?> Men den trækker ikke data ud fra den forrige side, bruger jo også en form der, mange andre bruger et link hvor id er i. Så der er nok noget galt med $result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[idnr]'"); og andre linier der omhandler dette, men hvad?? :)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
24. september 2003 - 13:06
#1
Dit input felt hedder update... $result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[update]'");
24. september 2003 - 13:09
#2
ahh yes korrekt, nu kommer der også data, men den vil ikke opdatere..
24. september 2003 - 13:11
#3
if(isset($_REQUEST[update])){
24. september 2003 - 13:16
#4
Hmm korrekt, men stadig noget galt. Jeg kigger på følgende linier: <input type="hidden" name="id" value="<?echo $_REQUEST[id];?>"> .. den skal jeg vel ikke ha med, da jeg ikke har en id kolonne i min tabel og hvad med: $SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto ' WHERE nr = $id"; hvor kommer $id fra .. ??
24. september 2003 - 13:27
#5
ok så har jeg tilføjet id til min tabel, nok en god ide at ha den med, da jeg senere skal bruge den, så nu ser min kode sådan her ud: <?php $con=mysql_connect("localhost", "root", "xxx")or die("Connect Error: ".mysql_error()); $db="flow"; mysql_select_db($db, $con); // Request the data $result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[update]'"); if (!$result) { echo("<p>Error performing query: " . mysql_error() . "</p>"); exit(); } // Display the data while ( $row = mysql_fetch_array($result) ) { ?> <center> <B> Ret i databasen:</B><BR><BR> <form action="<?=$PHP_SELF;?>" method="POST" name="form"> <table width="65%" border="5" cellspacing="2" cellpadding="5"> <tr><td><B>Nr:</B></td><td> <B><input type="text" name="nr" maxlength="12" size = "40" value="<?=$row[nr];?>"></B></td></tr> <tr><td><B>Name:</B></td><td> <B><input type="text" name="name" maxlength="35" size = "40" value="<?=$row[name];?>"></B></td></tr> <tr><td><B>Size:</B></td><td> <B><input type="text" name="size" maxlength="40" size = "40" value="<?=$row[size];?>"></B></td></tr> <tr><td><B>Page:</B></td><td> <B><input type="text" name="page" maxlength="8" size = "40" value="<?=$row[page];?>"></B></td></tr> <tr><td><B>Ean:</B></td><td> <B><input type="text" name="ean" maxlength="35" size = "40" value="<?=$row[ean];?>"></B></td></tr> <tr><td><B>pieces:</B></td><td> <B><input type="text" name="pieceseur" maxlength="35" size = "40" value="<?=$row[pieceseur];?>"></B></td></tr> <tr><td><B>Netto:</B></td><td> <B><input type="text" name="netto" maxlength="35" size = "40" value="<?=$row[netto];?>"></B></td></tr> <input type="hidden" name="id" value="<?echo $_REQUEST[id];?>"> </table> <BR> <input type="submit" value="opdatér" name="update"> </form> <?php } if(isset($_REQUEST[update])){ $SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto ' WHERE nr = $id"; mysql_query($SQL); } mysql_close(); ?> men den vil stadig ikke opdatere :S
24. september 2003 - 13:55
#6
hvis jeg smider WHERE nr = $_REQUEST[update]" så bliver alt data nulstillet i den kolonne, dvs. den opdatere, men får ikke data fra form med..
24. september 2003 - 14:02
#7
nå jeg laver en ny en
24. september 2003 - 18:11
#8
Du skal have $_REQUEST på alle felter også. Men kan se at du har fået det løst. Takker for point!
Vi tilbyder markedets bedste kurser inden for webudvikling