Beste,
Wat is er fout aan deze update pagina?
PHP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 <? include"config.php"; $id = $_GET["id"]; $select = "SELECT id, artikelnummer, artikel, aantal, afhaaldatum, naam, telefoon, bestelbaar FROM bestellingen WHERE id=$id"; $query = mysql_query($select) or die(mysql_error()); $result = mysql_fetch_array($query); if(isset($_POST["wijzigen"])) { $update = "UPDATE bestellingen SET artikelnummer = '".$_POST["artikelnummer"]."', artikel = '".$_POST["artikel"]."', aantal = '".$_POST["aantal"]."', afhaaldatum = '".$_POST["afhaaldatum"]."', naam = '".$_POST["naam"]."', telefoon = '".$_POST["telefoon"]."', bestelbaar = '".$_POST["bestelbaar"]."' WHERE id = '".$id."'"; mysql_query($update) or die(mysql_error()); print "<br>"; print "<font size=\"2\" face=\"Tahoma\">Je bestelling is succesvol gewijzigd!</font>"; } print " <form action=\"\" method=\"post\"> <table width=\"45%\" border=\"0\" align=\"left\"> <tr> <td width=\"45%\"><span class=\"stijl11\">Artikel Nummer:</span></td> <td width=\"55%\"><input type=\"text\" name=\"artikelnummer\" value=\"".$result["artikelnummer"]."\" id=\"artikelnummer\"/></td> </tr> <tr> <td><span class=\"stijl11\">Artikel Omschrijving:</span></td> <td><input type=\"text\" name=\"artikel\" value=\"".$result["artikel"]."\" id=\"artikel\"/></td> </tr> <tr> <td><span class=\"stijl11\">Aantal:</span></td> <td><input type=\"text\" name=\"aantal\" value=\"".$result["aantal"]."\" id=\"aantal\"/></td> </tr> <tr> <td><span class=\"stijl11\">Afhaal Datum:</span></td> <td><input type=\"text\" name=\"afhaaldaum\" value=\"".$result["afhaaldatum"]."\" id=\"afhaaldatum\"/></td> </tr> <tr> <td><span class=\"stijl11\">Naam:</span></td> <td><input type=\"text\" name=\"naam\" value=\"".$result["naam"]."\" id=\"naam\"/></td> </tr> <tr> <td><span class=\"stijl11\">Telefoon Nummer:</span></td> <td><input type=\"text\" name=\"telefoon\" value=\"".$result["telefoon"]."\" id=\"telefoon\"/></td> </tr> <tr> <td><span class=\"stijl11\">Bestelbaar?:</span></td> <td><select name=\"bestelbaar\" id=\"bestelbaar\"> <option value=\"Ja\" selected=\"selected\">Ja</option> <option value=\"Nee\">Nee</option> </select></td> </tr> <tr> <td> </td> <td><input type=\"submit\" name=\"verzenden\" value=\"Bewerken\" /></td> </tr> </table></form>"; ?>
Mvg, Wesley
Ik kan geen fout vinden hoor?
wat zou de oplossing moeten zijn dan?
De aanhalingstekens van $_POST["...."] sluiten de string $update="....." op ongeldige wijze af.
Verder vermoed ik dat artikelnummer en aantal een integer in de database zijn, en dan mogen er bij het updaten geen aanhalingstekens rond de nieuwe waarde.
Verander dit:PHP Code:
1 2 3 4 5 6 if(isset($_POST["wijzigen"])) { $update = "UPDATE bestellingen SET artikelnummer = '".$_POST["artikelnummer"]."', artikel = '".$_POST["artikel"]."', aantal = '".$_POST["aantal"]."', afhaaldatum = '".$_POST["afhaaldatum"]."', naam = '".$_POST["naam"]."', telefoon = '".$_POST["telefoon"]."', bestelbaar = '".$_POST["bestelbaar"]."' WHERE id = '".$id."'"; mysql_query($update) or die(mysql_error()); print "<br>";
eens in dit:PHP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 if(isset($_POST["wijzigen"])) { $artikelnummer=$_POST["artikelnummer"]; $artikel=$_POST["artikel"]; $aantal=$_POST["aantal"]; $afhaaldatum=$_POST["afhaaldatum"]; $naam=$_POST["naam"]; $telefoon=$_POST["telefoon"]; $bestelbaar=$_POST["bestelbaar"]; $update = "UPDATE bestellingen SET artikelnummer=$artikelnummer, artikel='$artikel', aantal=$aantal, afhaaldatum='$afhaaldatum', naam='$naam', telefoon = '$telefoon', bestelbaar = '$bestelbaar' WHERE id = '".$id."'"; mysql_query($update) or die(mysql_error()); print "<br>";
Heb het veranderd maar nog steeds word er niets geupdate..
Ooops... ik heb de code nog eens bekeken en mijn theorie over de foutieve dubbele aanhalingstekens klopt in alle geval niet...
Die over de enkele aanhalingstekens rond numerieke waarden gelukkiglijk wel
Laat anders eens weten van welk type elk veld in je tabel is.
Hou er verder ook rekening mee dat velden die niet NULL mogen zijn, ook effectief een waarde moeten bevatten.
Je kan eens proberen om de update-string te echoën, zodat je kan zien of die wel helemaal geldig is.
Verander dit:
in dit:PHP Code:
1 2 $update = "UPDATE bestellingen SET artikelnummer=$artikelnummer, artikel='$artikel', aantal=$aantal, afhaaldatum='$afhaaldatum', naam='$naam', telefoon = '$telefoon', bestelbaar = '$bestelbaar' WHERE id = '".$id."'"; mysql_query($update) or die(mysql_error());
Als je niet zeker bent kan je de update-string even kopieren en hier posten...PHP Code:
1 2 3 $update = "UPDATE bestellingen SET artikelnummer=$artikelnummer, artikel='$artikel', aantal=$aantal, afhaaldatum='$afhaaldatum', naam='$naam', telefoon = '$telefoon', bestelbaar = '$bestelbaar' WHERE id = '".$id."'"; echo $update; mysql_query($update) or die(mysql_error());
Het zelfde verhaal
Geen update.
Mijn tabel ziet er zo uit:
id, datum, artikelnummer, artikel, aantal, afhaaldatum, naam, telefoon, bestelbaar.
Aha... nog een foutje met de enkele aanhalingstekens rond een numerieke waarde gevonden!
moet wordenPHP Code:
1 ..... WHERE id = '".$id."'";
PHP Code:
1 ..... WHERE id = $id";
Als het daarmee nog steeds niet lukt, laat dan de update-string die ik je in vorig bericht heb laten echoën hier eens zien...
PHP Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $id = $_GET["id"]; $select = "SELECT artikelnummer, artikel, aantal, afhaaldatum, naam, telefoon, bestelbaar FROM bestellingen WHERE id=$id"; $query = mysql_query($select) or die(mysql_error()); $result = mysql_fetch_array($query); if(isset($_POST["wijzigen"])) { $artikelnummer=$_POST["artikelnummer"]; $artikel=$_POST["artikel"]; $aantal=$_POST["aantal"]; $afhaaldatum=$_POST["afhaaldatum"]; $naam=$_POST["naam"]; $telefoon=$_POST["telefoon"]; $bestelbaar=$_POST["bestelbaar"]; $update = "UPDATE bestellingen SET artikelnummer=$artikelnummer, artikel='$artikel', aantal=$aantal, afhaaldatum='$afhaaldatum', naam='$naam', telefoon = '$telefoon', bestelbaar = '$bestelbaar' WHERE id = $id"; echo $update; mysql_query($update) or die(mysql_error()); print "<br>"; print "<font size=\"2\" face=\"Tahoma\">Je bestelling is succesvol gewijzigd!</font>"; } print " <form action=\"\" method=\"post\">
Hierbij een deel van mijn bewerken.php
Ik vermoed dat de update nu WEL uitgevoerd wordt, maar dat je het nog niet ZIET!
Je haalt namelijk EERST de record op, DAARNA ga je hem updaten, en dan laat je de eerder opgehaalde record zien... dat klopt niet hé
Verplaats volgende regels
eens naar vlak voorPHP Code:
1 2 3 $select = "SELECT id, artikelnummer, artikel, aantal, afhaaldatum, naam, telefoon, bestelbaar FROM bestellingen WHERE id=$id"; $query = mysql_query($select) or die(mysql_error()); $result = mysql_fetch_array($query);
PHP Code:
1 2 print " <form action=\"\" method=\"post\">
zelfs dat werkt niet...
in phpmyadmin staat ook alles nog hetzelfde
Je noemt de submit-knop "verzenden", maar je controleert met
Dat moet dus worden:PHP Code:
1 if(isset($_POST["wijzigen"]))
PHP Code:
1 if(isset($_POST["verzenden"]))
Verder heb ik nog een typefout in de naam voor het tekstvak van afhaaldatum gevonden (daar ontbreekt een t)
moet worden:PHP Code:
1 <input type=\"text\" name=\"afhaaldaum\" value=\"".$afhaaldatum."\" id=\"afhaaldatum\"/>
PHP Code:
1 <input type=\"text\" name=\"afhaaldatum\" value=\"".$afhaaldatum."\" id=\"afhaaldatum\"/>
Ooops
HTML Code:
1 UPDATE bestellingen SET artikelnummer=1337f, artikel='hdfgh', aantal=hdfg, afhaaldatum='hdfg', naam='hdfg', telefoon = 'dfg', bestelbaar = 'Ja' WHERE id = 23Unknown column '1337f' in 'field list'
Ik heb het ingevuld met de informatie dat hier boven genoemd staan.. 1337f etc...
Dit krijg ik als ik op verzenden druk.
Maar slaat nog niets op in de database
Laatst aangepast door exotic : 3 september 2008 om 18:58
Ik ben nog eens op jou test-pagina gaan proberen, en het wordt nu wel degelijk opgeslagen hoor...
De fout die je nu gemaakt hebt, is dat je een "f" bij het artikelnummer getypt hebt, en een letter opslaan in een numeriek veld gaat natuurlijk niet he![]()
Geweldig! Mijn dank is groot!
Weet je ook hoe ik een melding krijg dat er een bestelling verloopt?
stel de afhaal datum is: 10-10-2008 en het is 11-10-2008. ( dat ik dan een melding krijg met de tekst ) bestel nummer: "ID" verloopt.
Laatst aangepast door exotic : 3 september 2008 om 19:02
Bovenstaand bericht toont aan dat je eigenlijk nog een controle op geldigheid van de nieuwe waarden moet uitvoeren vóór dat je de record gaat opslagen....
Maar daar doe je natuurlijk mee wat je wil!
Trouwens... graag gedaan hoor![]()
Bedoel je in de overzicht-pagina waar je kan klikken op de link "bestelling toevoegen", "aanpassen" en "wissen"?
Je zou daar bijvoorbeeld de afhaaldatum in het rood kunnen weergeven als die kleiner is dan de huidige datum. Dat doe je op ongeveer dezelfde manier als het rood en groen bij "bestelbaar"