28. maj 2009 - 00:09
Der er
9 kommentarer og 1 løsning
PHP edit vil ikke opdatere mysql
Hvorfor vil den ikke opdatere row "henvisning" i mysql? Det er rimeligt simpelt og det virker fint på en anden server. Jeg får absolut ingen fejlmeddelelse. <? mysql_connect("localhost","username","password"); mysql_select_db("my_db"); if(!isset($cmd)) { $result = mysql_query("select * from henvisning order by id"); //loop while($r=mysql_fetch_array($result)) { $hold=$r["hold"]; $id=$r["id"]; echo "$hold - <a href='editHenvisning.php?cmd=edit&id=$id'>Edit</a>"; echo "<br>"; } } ?> <? if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit") { if (!isset($_POST["submit"])) { $id = $_GET["id"]; $sql = "SELECT * FROM henvisning WHERE id=$id"; $result = mysql_query($sql); $myrow = mysql_fetch_array($result); ?> <form action="editHenvisning.php" method="post"> <input type=hidden name="id" value="<?php echo $myrow["id"] ?>"> Title:<INPUT TYPE="TEXT" NAME="hold" VALUE="<?php echo $myrow["hold"] ?>" SIZE=30><br> Title:<INPUT TYPE="TEXT" NAME="dato" VALUE="<?php echo $myrow["dato"] ?>" SIZE=30><br> Title:<INPUT TYPE="TEXT" NAME="start" VALUE="<?php echo $myrow["start"] ?>" SIZE=30><br> Title:<INPUT TYPE="TEXT" NAME="slut" VALUE="<?php echo $myrow["slut"] ?>" SIZE=30><br> <input type="hidden" name="cmd" value="edit"> <input type="submit" name="submit" value="submit"> </form> <? } ?> <? if ($_POST["$submit"]) { $hold = $_POST["hold"]; $dato = $_POST["dato"]; $start = $_POST["start"]; $slut = $_POST["slut"]; $sql = "UPDATE henvisning SET hold='$hold',dato='$dato',start='$start',slut='$slut' WHERE id=$id"; $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql); { header("Location: " . $_SERVER['php_SELF']); } echo " opdateret."; } } ?>
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.
sikkert forskellige php settings. Har du kigget i din apache/iis log ? Er du sikker på at du får udskrevet fejl på det andet hotel og at de ikke kun kommer i httpd loggen på serveren ? // ouT
er du sikker på at den kommer ind i din if ($_POST["$submit"]) ?
Jeg bør nok indledningsvis skrive at jeg er grafiker og webdesigner. Script/prog/php-syntax termer kender jeg kun til husbehov+. Buzzzz: Jeg har ikke kigget i apache log ...hvor finder jeg den? Bare sådan ca? :o) splazz: Jeg er faktisk ikke rigtigt sikker på noget? Jeg ved bare det samme virker på en anden server. Platform: Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-19 mod_ssl/2.0.54 OpenSSL/0.9.7e MySQL information: Alle privilegier er ok, se DB layout -> img-link herunder. [img]http://www.ungecoach.dk/screenshot_01.jpg/img]
haha.. fejlen er her: <? if ($_POST["$submit"]) { $hold = $_POST["hold"]; $dato = $_POST["dato"]; $start = $_POST["start"]; $slut = $_POST["slut"]; $sql = "UPDATE henvisning SET hold='$hold',dato='$dato',start='$start',slut='$slut' WHERE id=$id"; $result = mysql_query($sql) or die(mysql_error() . '<br />' . $sql); { header("Location: " . $_SERVER['php_SELF']); } echo " opdateret."; } Du kalder $_POST["$submit"]) Men din variabel hedder altså kun submit og ik $submit.. så ændre den til $_POST["submit"]) så sku det virke..
plus godt råd... Alle variabler du henter fra et tekst felt.. selvom du selv skriver teksten.. burde du bruge 'mysql_escape_string($tekst)' rundt om.. For at undgå du f.eks. laver en ' eller \ $hold = mysql_escape_string($_POST["hold"]); $dato = mysql_escape_string($_POST["dato"]); $start = mysql_escape_string($_POST["start"]); $slut = mysql_escape_string($_POST["slut"]);
zkill: Langt ude, nu virker det hele. Takker 100000000 gange. Svar, så får du cigar :o)
hehe,den havde jeg sq overset :s
og jeg havde endda copy/pastet koden - fuck det er ringe! hehe
så lidt.. Og jah... det tit sådan nogle små fejl.. :) Men som en af de andre skrev.. altid lav et tjek om du kommer ind i din if-sætning.. for så ved du hvor du skal lede efter din fejl.. :)
Vi tilbyder markedets bedste kurser inden for webudvikling