producten uit bestelling
Ik ben even vastgelopen ,ik denk wel maar weet geen manier meer.
Elk product uit een bestelling wordt uit een tabel "ordered_products" gehaald en weergegeven, enkel worden hierin alleen de product id's opgeslagen. De producten staan in de tabel "products", hoe krijg ik hun naam hieronder?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result = mysqli_query($db, "SELECT ID, aantal FROM ordered_products WHERE order_id='" . $id ."'");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
$result = mysqli_query($db, "SELECT ID, aantal FROM ordered_products WHERE order_id='" . $id ."'");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
Gewijzigd op 29/08/2015 20:44:23 door Niels Rietveld
Code (php)
1
2
3
4
5
2
3
4
5
SELECT ordered_products.ID, ordered_products.aantal,products.name
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42
Gewijzigd op 29/08/2015 21:02:25 door - Ariën -
Alleen hoe kan ik nu de products name hierin verwerken, zie het niet in de turoial?
Toevoeging op 29/08/2015 21:09:29:
Kan je de regels anders even toelichten?
O ik snap hem, je zet bij select de tabel waaruit voor de punt en erachter de kolom.
Dat klopt.
Hoe kan ik nu deze functie in een string bouwen, de functie werkt wel :-) Thx aar
Gewijzigd op 29/08/2015 22:01:43 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$result = mysqli_query($db, "SELECT ordered_products.ID, ordered_products.aantal,products.name
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42 ");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
$result = mysqli_query($db, "SELECT ordered_products.ID, ordered_products.aantal,products.name
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42 ");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
Hoe krijg ik deze bovenstaande in een string, om te mailen.
Code (php)
1
2
3
4
5
2
3
4
5
SELECT
ordered_products.ID AS productID,
ordered_products.aantal AS aantal,
products.name AS name
.... etc...
ordered_products.ID AS productID,
ordered_products.aantal AS aantal,
products.name AS name
.... etc...
Die alias vormt dan het veldnaam.
huh? Ik bedoel dat die alles toont en dat mailt, dus de functie van mij in een string xD
En hoe je mailt, dat kan met de mail()-functie in PHP, of nog beter zelfs: PHPmailer, welke makkelijk te debuggen is bij fouten. Je kan met de .= operator in PHP alles uit je whileloop samenvoegen tot één string.
Gewijzigd op 29/08/2015 22:12:49 door - Ariën -
Toevoeging op 29/08/2015 22:18:16:
Hoe verwerk ik het hier in:
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
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
<?php
$naar = '[email protected]'; // Waar moet het naartoe?
$onderwerp = 'Bestelling'; // Het onderwerp van het bericht
// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n";
$headers .= "content-type: text/html;charset=utf-8\r\n";
$body = "
<font size='2' face='arial'>Hier moet het worden weergegeven:<br>
";
$froms = "[email protected]";
$title = "Systeem";
$headers .= 'From: ' . $title . ' <' . $froms . '>'; // Een afzender instellen zodat je kan reageren.
if(mail($naar, $onderwerp, $body, $headers))
{
print '<p><font color="green">Bedankt.</font></p>';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
?>
$naar = '[email protected]'; // Waar moet het naartoe?
$onderwerp = 'Bestelling'; // Het onderwerp van het bericht
// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n";
$headers .= "content-type: text/html;charset=utf-8\r\n";
$body = "
<font size='2' face='arial'>Hier moet het worden weergegeven:<br>
";
$froms = "[email protected]";
$title = "Systeem";
$headers .= 'From: ' . $title . ' <' . $froms . '>'; // Een afzender instellen zodat je kan reageren.
if(mail($naar, $onderwerp, $body, $headers))
{
print '<p><font color="green">Bedankt.</font></p>';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$string = ""; // string initialiseren
// while
$string .= "kersen 3,5 per kg."; // hier je producten en gegevens erbij
// einde while
echo $string;
?>
$string = ""; // string initialiseren
// while
$string .= "kersen 3,5 per kg."; // hier je producten en gegevens erbij
// einde while
echo $string;
?>
Gewijzigd op 29/08/2015 22:24:10 door - Ariën -
Het lukt mij niet de while erin te krijgen, en begrijp je voorbeeld niet helemaal. Waar moet ik hem nou plakken?
Die while moet vóór je mail komen, en in die while stel je je string samen.
Ja maar ik snap niet hoe :(
Die geef je daarna mee aan je mail-functie.
Probeer maar eens.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$result = mysqli_query($db, "SELECT ordered_products.ID, ordered_products.aantal,products.name
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42 ");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
$result = mysqli_query($db, "SELECT ordered_products.ID, ordered_products.aantal,products.name
FROM ordered_products
INNER JOIN products
ON ordered_products.ID=products.ID
WHERE products.order_id=42 ");
if($result) {
while($data = mysqli_fetch_assoc($result)) {
{;?>
<?php echo $data['ID'] ?> <?php echo $data['aantal'] ?> x
<?;}
}
} else {
{;?> Er is een fout opgetreden bij het laden van de producten uit deze bestelling.<?;}
}
?>
Toevoeging op 29/08/2015 22:46:41:
Wacht ik denk dat ik hem snap , het is zaterdag avond he hahah
Toevoeging op 29/08/2015 22:47:10:
Nee, toch niet want hoe kan ik meerdere string van dezelfde naam hebben met andere inhoud?