Fout in de Query??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan Poeser

Stefan Poeser

22/06/2010 14:53:41
Quote Anchor link
Beste leden van dit forum,

Ik ben bezig met PHP op school en moet een webshop maken vanuit de 1e tutorial van deze website.

Ik ben redelijk nieuw in PHP maar wil het wel graag leren,
ik heb een leraar die het probeert uitteleggen maar dat gaat hem volgens mij ook niet worden, dus ben ik bij jullie uitgekomen.

Ik ben dus begonnen met de tutorial en het ging me redelijk goed af, totdat ik deze fout melding kreeg als ik wil afrekenen in mijn webshop.

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 4
in file C:\xampp\htdocs\werphengels\checkout.php on line 73

graag zou ik willen weten hoe ik de query kan uitlezen en zien wat ik fout doe

alvast bedankt!!
 
PHP hulp

PHP hulp

27/04/2024 15:20:20
 
- SanThe -

- SanThe -

22/06/2010 14:59:34
Quote Anchor link
Klein stukje relevante code is wel handig.
Zo te zien aan de error is er een var leeg.
Gewijzigd op 22/06/2010 15:00:14 door - SanThe -
 
Stefan Poeser

Stefan Poeser

22/06/2010 15:08:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// checkout.php

// In het script doen we het ook maar even stap voor stap.
// Stap 1, zet de order in de order tabel

MYSQL_CONNECT("localhost","root","") or die(mysql_error());
MYSQL_SELECT_DB("werphengels") or die(mysql_error());

$_SESSION['klantnr']='1';

$date = DATE("dmY");

$sql = "INSERT INTO bestelling
(klant_nr, bestel_datum)
VALUES

("
.$_SESSION['klantnr'].",$date)"; // Verzin iets moois voor de date() functie
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$ordernr = mysql_insert_id();
// Die hebben we later nodig, is dus ordernr (bestelnr)
// Stap 2, winkelwagen splitten en in de database zetten

echo "<table><tr><td>Productnaam</td><td>Aantal</td><td>Prijs</td></tr>";
$cart = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/

$product = explode(",",$products);
$iSql = "INSERT INTO bestelregel
(bestelnummer, productnummer, aantal_besteld)
VALUES
("
.$ordernr.", ".$product[0].", ".$product[1].")";
$iQuery = mysql_query($iSql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$query = "SELECT productnaam, prijs
FROM product WHERE productnummer = $product[0]"
;
$result = mysql_query($query);
while ($row = mysql_fetch_object($result)) {
    $totaalprijs=$product[1]*$row->prijs;
    
echo "<tr><td>$row->productnaam </td> <td>$product[1]</td><td>$totaalprijs<tr></tr></td></tr>
\n"
;
  
}
}

        
        $total=$_SESSION['total'];
        echo "<tr><td></td><td>Totaal:<td>$total</td></td></tr>\n";
        echo "</table><br>De bestelling is toegevoegd!";
        session_unset($_SESSION['cart']);



?>

<!-- InstanceEndEditable -->
<!-- end #mainContent --></div>
<!-- Dit wiselement dient onmiddellijk te volgen op het element div voor #mainContent om het element div voor #container te dwingen om alle zwevende elementen van een lager niveau te bevatten --><br class="clearfloat" />
<div id="footer">
<p>Copyright (c) 2009 - Werphengels.nl</p>
<!-- end #footer --></div>
<!-- end #container --></div>
</body>
<!-- InstanceEnd --></html>
 
Joakim Broden

Joakim Broden

22/06/2010 15:08:51
Quote Anchor link
Moeten wij weten wat voor query je hebt gebruikt? Laat eens wat code zien, ik denk dat je een ' ofzo verkeerd hebt staan :P Want bij een lege var krijg je toch niet zo'n fout melding?
 
- SanThe -

- SanThe -

22/06/2010 15:16:48
Quote Anchor link
Bouw bij alle query's een nette foutafhandeling in.
Hou $vars buiten de quotes.
Ik mis enkele quotes in de query's.

bestel_datum is geen datum en daar gaat het fout.
Maak daar eens een DATE of DATETIME veld van.
 
Joren de Wit

Joren de Wit

22/06/2010 15:18:29
Quote Anchor link
Echo tijdens het debuggen bij een fout in je query ook altijd de uitgevoerde query. Iets als dit bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$result
= mysql_query($sql);

if($result === false) {
  trigger_error(mysql_error().'<br>In query: '.$sql);
}

?>
 
Stefan Poeser

Stefan Poeser

22/06/2010 19:20:36
Quote Anchor link
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/sjabloonwerphengel.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Werphengels.nl</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="css/style groen.css" rel="stylesheet" type="text/css" /><!--[if IE]>
<style type="text/css">
/* plaats in deze voorwaardelijke opmerking css-correcties voor alle versies van IE */
.twoColElsLtHdr #sidebar1 { padding-top: 30px; }
.twoColElsLtHdr #mainContent { zoom: 1; padding-top: 15px; }
/* de bovenstaande softwaregebonden eigenschap zoom geeft IE de hasLayout die IE nodig heeft om verschillende bugs te vermijden */
</style>
<![endif]-->
</head>

<body bgcolor="#29623E" text="#FFFF00" link="#FFFF00" vlink="#FFFF00" alink="#FFFF00" class="twoColElsLtHdr">

<div class="fltlft" id="container">
<div id="header">
<h1 align="center">Werphengels.nl</h1>
<!-- end #header --></div>
<div id="sidebar1">
<h3>Uw Keuze</h3>
<p><a href="index.php">Home</a></p>
<ul>
<li><a href="Nieuwste Prodructen.php">Nieuwste Producten</a></li>
<li><a href="producten.php" target="_parent">Webshop</a></li>
<li><a href="mailto:[email protected]">Contact</a></li>
</ul>
<p>&nbsp;</p>
<!-- InstanceBeginEditable name="Specials" -->Specials<!-- InstanceEndEditable -->
<!-- end #sidebar1 --></div>
<div id="mainContent"><!-- InstanceBeginEditable name="Inhoud" -->
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// checkout.php

// In het script doen we het ook maar even stap voor stap.
// Stap 1, zet de order in de order tabel

MYSQL_CONNECT("localhost","root","") or die(mysql_error());
MYSQL_SELECT_DB("werphengels") or die(mysql_error());

$_SESSION['klantnr']='1';

$date = DATE("dmY");

$sql = "INSERT INTO bestelling
(klant_nr, bestel_datum)
VALUES

("
.$_SESSION['klantnr'].",$date)"; // Verzin iets moois voor de date() functie
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$ordernr = mysql_insert_id();
// Die hebben we later nodig, is dus ordernr (bestelnr)
// Stap 2, winkelwagen splitten en in de database zetten

echo "<table><tr><td>Productnaam</td><td>Aantal</td><td>Prijs</td></tr>";
$cart = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/

$product = explode(",",$products);
$iSql = "INSERT INTO bestelregel
(bestelnummer, productnummer, aantal_besteld)
VALUES
("
.$ordernr.", ".$product[0].", ".$product[1].")";
$iQuery = mysql_query($iSql) or die (mysql_error()."<br>in file
"
.__FILE__." on line ".__LINE__);
$query = "SELECT productnaam, prijs
FROM product WHERE productnummer = $product[0]"
;
$result = mysql_query($query);
while ($row = mysql_fetch_object($result)) {
    $totaalprijs=$product[1]*$row->prijs;
    
echo "<tr><td>$row->productnaam </td> <td>$product[1]</td><td>$totaalprijs<tr></tr></td></tr>
\n"
;
  
}
}

        
        $total=$_SESSION['total'];
        echo "<tr><td></td><td>Totaal:<td>$total</td></td></tr>\n";
        echo "</table><br>De bestelling is toegevoegd!";
        session_unset($_SESSION['cart']);



?>

<!-- InstanceEndEditable -->
<!-- end #mainContent --></div>
<!-- Dit wiselement dient onmiddellijk te volgen op het element div voor #mainContent om het element div voor #container te dwingen om alle zwevende elementen van een lager niveau te bevatten --><br class="clearfloat" />
<div id="footer">
<p>Copyright (c) 2009 - Werphengels.nl</p>
<!-- end #footer --></div>
<!-- end #container --></div>
</body>
<!-- InstanceEnd --></html>


dit is de volledige code!
 
- SanThe -

- SanThe -

22/06/2010 19:25:45
Quote Anchor link
Ja en ... heb je al wat met de antwoorden gedaan? Nee dus.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.