|
laura1992
|
 |
« Gepost op: Maart 01, 2010, 21:08:51 » |
|
hallo allemaal, Ik probeer een webwinkel te bouwen, maar ik loop tegen een probleem aan. Ik heb al redelijk wat scripts die werken, maar het lukt me gewoon niet om een pagina werkend tekrijgen, die ervoor zorgt dat er nieuwe gegevens in de database worden toegevoegd (soort formulier). Dit heb ik op dit moment:
<html> <head> <title>Artikelen toevoegen</title> </head>
<?php if (!empty($_POST)){ // als de pagina zichzelf heeft aangeroepen // variabelen initialiseren $server = "localhost"; // naam van de MySQL-databaseserver $user = "root"; // inlognaam $wachtwoord = "usbw"; //wachtwoord voor dit account $database = "makro"; // naam van de database die we gebruiken $query = ""; $bedankt = "bedankt.php"; // adres van de bedankt-pagina.
// Database openen. Denk zelf weer aan foutcontrole-routines! $db = mysql_connect($server, $user, $wachtwoord); // verbinding maken mysql_select_db($database); // database selecteren
// stel een SQL-query op met de gegevens uit het formulier $query = "INSERT INTO artikel (artikelid, artikelomschrijving, prijs_per_stuk) "; $query .= "VALUES ('', '"; // lege id invoegen, let daarna goed op de positie van de aanhalingstekens! $query .= $_POST["artikelomschrijving"] . "', '"; $query .= $_POST["prijs_per_stuk"] . "', '"; // query afsluiten met haakje-sluiten if (!mysql_query($query)){ // probeer de query uit te voeren // er is een fout opgetreden echo "Er is een fout opgetreden met foutnummer " . mysql_errno() . " : " . mysql_error(); // eventueel: met header("location:...") doorsturen naar gedetailleerde foutbericht-pagina. mysql_close($db); // database afsluiten exit; } else{ // invoegen is geslaagd, doorsturen naar bedankt-pagina // geef het id van de zojuist ingevoegde gegevens mee als querystring $bedankt .= "?id=" . mysql_insert_id($db); mysql_close($db); // database afsluiten header("location:$bedankt"); } }
else{ ?>
<body> <h2>Artikelgegevens toevoegen</h2> <form method="post" action="<?php echo $_SERVER["PHP_SELF"] ?>"> Artikelomschrijving : <input type="text" name="artikelomschrijving"><br> Prijs per stuk : <input type="text" name="prijs_per_stuk"><br> <input type="submit" name="verzenden" value="Verzenden"> <input type="reset" name="leegmaken" value="Leegmaken"> <hr> </form> </body> </html> <?php } // het else-blok afsluiten ?>
en de bedanktpagina ziet er zo uit: <html> <head> <title>Voorbeeld 10.1 - Gegevens toegevoegd!</title> <? $server = "localhost"; // naam van de MySQL-databaseserver $user = "root"; // inlognaam $wachtwoord = "usbw"; //wachtwoord voor dit account $database = "makro"; // naam van de database die we gebruiken $resultaat = ""; // hierin wordt het resultaat van de query opgeslagen
// stel een query op die alle gegevens voor het meegegeven leerling-id ophaalt // LET OP: zelf weer controle inbouwen voor het geval geen id is meegegeven in querystring! $query = "SELECT * FROM artikel WHERE artikelid=" . $_GET["artikelid"];
$db = mysql_connect($server, $user, $wachtwoord); // verbinding maken mysql_select_db($database); // database selecteren $resultaat = mysql_query($query, $db); // query uitvoeren mysql_close($db); // database afsluiten ?> </head>
<body> <h2>Bedankt voor het invoegen van de volgende gegevens:</h2> <?php // de array zal nu maar het resultaat voor één leerling bevatten. while(list($artikelid, $artikelomschrijving, $prijs_per_stuk) = mysql_fetch_row($resultaat)){ echo "artikel-id: <b>$id</b><br> Artikelomschrijving: <b>$artikelomschrijving</b><br> Prijs per stuk in euro: <b>$prijs_per_stukl</b><br> <hr> <a href=\"voorbeeld_1001.php\">Meer gegevens invoegen</a>"; } ?> </body> </html>
Ik krijg steeds de volgende foutmelding: Er is een fout opgetreden met foutnummer 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Wie o wie kan mij helpen met dit probleem? Alvast bedankt!
|