winkelwagen
Ik ben bezig om een winkelwagen te maken, en nu ben ik bezig met de afreken pagina.
Dit is de pagina die de bestelling in de database wegschrijft en de winkelwagen dan weer leeg maakt.
Ik heb deze pagina gemaakt en dacht dat hij goed was alleen hij zet de bestelling niet in de database weet iemand misschien wat er fout aan is?
Dit is de pagina die de bestelling in de database wegschrijft en de winkelwagen dan weer leeg maakt.
Ik heb deze pagina gemaakt en dacht dat hij goed was alleen hij zet de bestelling niet in de database weet iemand misschien wat er fout aan is?
Code (php)
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
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
<?php
require ("connect.php");
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",".date('d-m-Y').")";
$query = mysql_query($sql);
$ordernr = mysql_insert_id();
$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);
}
echo "<p><br><br><br><center><font color=white>Je bestelling is succesvol ontvangen!<br><a href='index.php'>Terug naar de homepagina</a></font></center></p>"
?>
require ("connect.php");
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",".date('d-m-Y').")";
$query = mysql_query($sql);
$ordernr = mysql_insert_id();
$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);
}
echo "<p><br><br><br><center><font color=white>Je bestelling is succesvol ontvangen!<br><a href='index.php'>Terug naar de homepagina</a></font></center></p>"
?>
Gesponsorde koppelingen:
Ik zie verder ook geen controles of je mysql_query's wel lukken...
En verder is het handig om als debug alles wat je tegenkomt te echo'en.
Dan weet je in ieder geval wat er telkens verstuurd wordt en opgehaald wordt.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if(mysql_query($sql)){
echo 'OK!';
}else{
echo 'Fout:<br/><br/>'.mysql_error().'<br/><br/>'.$sql;
}
?>
if(mysql_query($sql)){
echo 'OK!';
}else{
echo 'Fout:<br/><br/>'.mysql_error().'<br/><br/>'.$sql;
}
?>
En verder is het handig om als debug alles wat je tegenkomt te echo'en.
Dan weet je in ieder geval wat er telkens verstuurd wordt en opgehaald wordt.
Foutcontrole en foutafhandeling! Je checkt nergens of je query geslaagd is.
En omdat je dit nergens checkt, check je waarschijnlijk niet of je verbinding goed gemaakt is! Voordeel van een goede foutcontrole & afhandeling: het maakt het debuggen zo veel eenvoudiger!
Daarnaast zijn je vars $query & $iQuery niet juist benoemd! Dit zijn results! Een query == sql!
En omdat je dit nergens checkt, check je waarschijnlijk niet of je verbinding goed gemaakt is! Voordeel van een goede foutcontrole & afhandeling: het maakt het debuggen zo veel eenvoudiger!
Daarnaast zijn je vars $query & $iQuery niet juist benoemd! Dit zijn results! Een query == sql!
behalve dat je een datum in een date of datetimeveld invoert, voer je de datum nu ook verkeerd in. Een string (zoals je hem nu gebruikt), moet je een ' omheen zetten, dus zo:
Wat ik dus zei, gooi dat veld weg, en maak een nieuwe aan, en dan ipv een varchar een date type. Als je dan gaat invoeren, kan je het op deze manier doen:
Dit geeft het voordeel dat je makkelijk kan sorteren, makkelijk kan kijken wat er een week geleden gedaan is enz. enz.
Code (php)
1
2
3
4
2
3
4
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",'".date('d-m-Y')."')";
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",'".date('d-m-Y')."')";
Wat ik dus zei, gooi dat veld weg, en maak een nieuwe aan, en dan ipv een varchar een date type. Als je dan gaat invoeren, kan je het op deze manier doen:
Code (php)
1
2
3
4
2
3
4
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",NOW())";
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",NOW())";
Dit geeft het voordeel dat je makkelijk kan sorteren, makkelijk kan kijken wat er een week geleden gedaan is enz. enz.
Als dat de hele pagina is, moet je ook nog session_start(); bovenaan je pagina zetten, anders kun je niet werken met die sessies.
bedankt iedereen ga er ff na kijken
dat hoeft niet want ik include de pagina dus dat staat in index.php
GaMer13 schreef op 02.06.2008 09:04:
Als dat de hele pagina is, moet je ook nog session_start(); bovenaan je pagina zetten, anders kun je niet werken met die sessies.
dat hoeft niet want ik include de pagina dus dat staat in index.php



