Ordersysteem
Ik ben bezig met een order(/bestel)systeem te maken in PHP.
Nu zit ik een beetje te spelen maar ik om niet uit het volgende:
- Er zijn 3 pagina's; stap1.php, stap2.php en stap3.php
- Bij stap 1 vult de gebruiker data in die in een tabel (MySQL) worden geplaatst met een ID.
- Bij stap 2 vult de gebruiker ook data in maar die wordt in een andere tabel geplaatst.
- Bij stap 3 krijgt de gebruiker een overzicht van alle ingevulde informatie en moet dit bevestigen.
Nu de vraag: Hoe maak ik een soort sessie waardoor de gebruiker 1 id heeft in beide tabellen, zodat 'stap 3' deze terug kan vinden aan de hand van het ID?
Alvast bedankt voor het meedenken!
Met een join is e.e.a. dan aan elkaar te knopen.
Een join?
google?
En hoe zorg ik ervoor dat hij hetzelfde ID krijgt als bij stap 1?
Kijk eens naar mysql_last_insert_id php of mysql_insert_id
Obelix en Idefix op 24/05/2012 22:25:09:
Kijk eens naar mysql_last_insert_id php of mysql_insert_id
Is er een makkelijkere manier? Ik moet namelijk dan een link ervan maken lijkt mij?
Gewijzigd op 24/05/2012 22:28:06 door Rick de Jong
Veel makkelijker krijg je het volgens mij niet....
Zeker, maar ik snap niet hoe ik het mee kan krijgen
Rick de Jong op 24/05/2012 22:29:39:
Zeker, maar ik snap niet hoe ik het mee kan krijgen
Zoeken met Google, de tekst/uitleg lezen en de voorbeelden bekijken. In twee minuten?
Gewijzigd op 24/05/2012 22:33:30 door Obelix Idefix
Dat hij dus gaat naar bijv.: test.php?id=4
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<title>Verwerken van Stap 1...</title>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
Rick de Jong op 24/05/2012 23:27:49:
Helaas lukt dit niet ... ;(
Hier hebben we weinig aan, wat lukt niet? Krijg je een fout code?
Rick de Jong op 24/05/2012 23:27:49:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<title>Verwerken van Stap 1...</title>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
Maar het is logisch dat het niet werkt want je doet een
voordat je de query uitvoerd.
Probeer dit eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<title>Verwerken van Stap 1...</title>
<?php
include("../config2.php");
echo "Verwerken, momentje...";
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('".$_POST['datumtijd']."','".$_POST['tafel']."','".$_POST['naam']."')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
mysql_close($con);
header('location:../index.php?id='.mysql_insert_id());
}
?>
<?php
include("../config2.php");
echo "Verwerken, momentje...";
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('".$_POST['datumtijd']."','".$_POST['tafel']."','".$_POST['naam']."')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
mysql_close($con);
header('location:../index.php?id='.mysql_insert_id());
}
?>
Gewijzigd op 24/05/2012 23:43:26 door Jeroen Spaans
Probeer PHP en HTML zo veel mogelijk te scheiden, eerst PHP en dan pas HTML. Tevens is je script zo lek als een mandje en je fout afhandeling is verre van mooi.
Waarom doe je tijdens stap 1 al van alles in de database stoppen? Je kunt de gegevens tussen de pagina's toch ook in een session stoppen en dan pas op het laatst alles in je database stoppen als de gebruiker bevestigd heeft dat alles klopt?
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
- Mark - op 24/05/2012 23:39:02:
Er mag geen output naar de browser zijn als je header gebruikt. Dit gaat dus zo niet werken.
Probeer PHP en HTML zo veel mogelijk te scheiden, eerst PHP en dan pas HTML. Tevens is je script zo lek als een mandje en je fout afhandeling is verre van mooi.
Waarom doe je tijdens stap 1 al van alles in de database stoppen? Je kunt de gegevens tussen de pagina's toch ook in een session stoppen en dan pas op het laatst alles in je database stoppen als de gebruiker bevestigd heeft dat alles klopt?
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
Probeer PHP en HTML zo veel mogelijk te scheiden, eerst PHP en dan pas HTML. Tevens is je script zo lek als een mandje en je fout afhandeling is verre van mooi.
Waarom doe je tijdens stap 1 al van alles in de database stoppen? Je kunt de gegevens tussen de pagina's toch ook in een session stoppen en dan pas op het laatst alles in je database stoppen als de gebruiker bevestigd heeft dat alles klopt?
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
Maar hoe maak je een session?
Rick de Jong op 24/05/2012 23:45:18:
Maar hoe maak je een session?
- Mark - op 24/05/2012 23:39:02:
Er mag geen output naar de browser zijn als je header gebruikt. Dit gaat dus zo niet werken.
Probeer PHP en HTML zo veel mogelijk te scheiden, eerst PHP en dan pas HTML. Tevens is je script zo lek als een mandje en je fout afhandeling is verre van mooi.
Waarom doe je tijdens stap 1 al van alles in de database stoppen? Je kunt de gegevens tussen de pagina's toch ook in een session stoppen en dan pas op het laatst alles in je database stoppen als de gebruiker bevestigd heeft dat alles klopt?
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
Probeer PHP en HTML zo veel mogelijk te scheiden, eerst PHP en dan pas HTML. Tevens is je script zo lek als een mandje en je fout afhandeling is verre van mooi.
Waarom doe je tijdens stap 1 al van alles in de database stoppen? Je kunt de gegevens tussen de pagina's toch ook in een session stoppen en dan pas op het laatst alles in je database stoppen als de gebruiker bevestigd heeft dat alles klopt?
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
Maar hoe maak je een session?
- Mark - op 24/05/2012 23:39:02:
Maar ik zou zeggen ga eerst eens even een paar tutorials doorlopen voordat je verder gaat.
Misschien is het slim om eerst eens de basis te leren er staan genoeg tutorials hier op de site maar via google kan je nog vele andere vinden.
Kijk eens op http://w3schools.com/php/default.asp ook een goede basis tutorial ;-)
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
31
32
33
34
35
36
37
38
39
40
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
<?php
/* LET OP!
voor session_start() geldt hetzelfde als voor header() er mag nog geen output naar de
browser zijn verstuurd.
*/
# Nieuwe session starten.
session_start();
# Controleren of $_SESSION['counter'] al bestaat.
if(isset($_SESSION['counter'])){
# $_SESSION['counter'] bestaat al dus we kunnen hem met 1 verhogen.
$_SESSION['counter']++;
}
else{
# $_SESSION['counter'] bestaat nog niet dus dan gaan we hem nu voor het eerst aanmaken.
$_SESSION['counter'] = 1;
}
?>
<html>
<head>
<title>Demo :: Counter</title>
</head>
<body>
Counter: <?php echo $_SESSION['counter']; ?>
</body>
</html>
/* LET OP!
voor session_start() geldt hetzelfde als voor header() er mag nog geen output naar de
browser zijn verstuurd.
*/
# Nieuwe session starten.
session_start();
# Controleren of $_SESSION['counter'] al bestaat.
if(isset($_SESSION['counter'])){
# $_SESSION['counter'] bestaat al dus we kunnen hem met 1 verhogen.
$_SESSION['counter']++;
}
else{
# $_SESSION['counter'] bestaat nog niet dus dan gaan we hem nu voor het eerst aanmaken.
$_SESSION['counter'] = 1;
}
?>
<html>
<head>
<title>Demo :: Counter</title>
</head>
<body>
Counter: <?php echo $_SESSION['counter']; ?>
</body>
</html>
Jeroen Spaans op 24/05/2012 23:38:47:
Hier hebben we weinig aan, wat lukt niet? Krijg je een fout code?
Maar het is logisch dat het niet werkt want je doet een
voordat je de query uitvoerd.
Probeer dit eens:
Rick de Jong op 24/05/2012 23:27:49:
Helaas lukt dit niet ... ;(
Hier hebben we weinig aan, wat lukt niet? Krijg je een fout code?
Rick de Jong op 24/05/2012 23:27:49:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<title>Verwerken van Stap 1...</title>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
<?php
header('location:../index.php?id='.mysql_insert_id());
exit;
include("../config2.php");
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('$_POST[datumtijd]','$_POST[tafel]','$_POST[naam]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Verwerken, momentje...";
mysql_close($con)
?>
Maar het is logisch dat het niet werkt want je doet een
voordat je de query uitvoerd.
Probeer dit eens:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<title>Verwerken van Stap 1...</title>
<?php
include("../config2.php");
echo "Verwerken, momentje...";
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('".$_POST['datumtijd']."','".$_POST['tafel']."','".$_POST['naam']."')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
mysql_close($con);
header('location:../index.php?id='.mysql_insert_id());
}
?>
<?php
include("../config2.php");
echo "Verwerken, momentje...";
$sql="INSERT INTO bestellinginfo (datumtijd, tafel, naam)
VALUES
('".$_POST['datumtijd']."','".$_POST['tafel']."','".$_POST['naam']."')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
mysql_close($con);
header('location:../index.php?id='.mysql_insert_id());
}
?>
Helaas, hij stuurt hem niet door naar index.php?id=...
Er mag best php tussen je HTML staan maar het verwerkings gedeelte heeft daar niets te zoeken.
En ga eens kijken naar MySQLi of PDO. MySQL_ functies zijn verouderd en zouden niet meer gebruikt moeten worden voor het benaderen van een MySQL database.
Gewijzigd op 26/05/2012 11:44:13 door - Mark -