Webwinkel - de "meer informatie" button
Ik ben bezig met het schrijven van een webwinkel in php.
Het etalage gedeelte werkt al naar behoren (aangestuurd door mysql.). Maar nu is het de bedoeling dat bezoekers vanuit de etalage door middel van een button naar een andere pagina kunnen gaan die meer informatie biedt over dat bepaalde product. Hoe kan ik dit het beste aanpakken? heeft er iemand voorbeelden, tutorials of tips??
Groetjes,
Jeroen Brouns
Dit unieke nummertje gebruik je in de query string van het script om het een product in detail te bekijken.
edit:
Heb je een eigen server? Zet dan Apache multiviews aan kun je dit doen als Internet adres gebruiken:
Gewijzigd op 22/07/2010 19:36:53 door Martijn B
Bedankt voor je snelle reactie!
Ik heb je tip opgevolgd.
Hij verplaatst het id perfect naar de volgende pagina alleen vergelijkt hij hem niet met het id uit de database.
mijn code ziet er nu zo uit en je kan het bestand bekijken op deze link:
http://www.brouns-design.nl/webwinkel/informatie_link.php?id=2
Quote:
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
41
42
43
44
45
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
<?php
// informatie_link.php
session_start();
// Het product wat we toevoegen moeten we eerst controleren
// if(is_numeric($_POST['id'])) $id = $_POST['id'];
// else exit("Verzin een mooie foutmelding als productnummer geen integer is.");
// $id = $_POST['id'];
// echo $id;
include('contactdb.php');
$id = $_GET['id'];
print($id);
// producten laten zien
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '".$id."'
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error());
// tellen van de bestanden
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
}
}
$afbeelding = "$product->image_link";
echo $afbeelding;
echo $query;
echo $num;
echo "Prijs per stuk: EUR ".$product->prijs."<br />\n"; [/quote]
// informatie_link.php
session_start();
// Het product wat we toevoegen moeten we eerst controleren
// if(is_numeric($_POST['id'])) $id = $_POST['id'];
// else exit("Verzin een mooie foutmelding als productnummer geen integer is.");
// $id = $_POST['id'];
// echo $id;
include('contactdb.php');
$id = $_GET['id'];
print($id);
// producten laten zien
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '".$id."'
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error());
// tellen van de bestanden
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
}
}
$afbeelding = "$product->image_link";
echo $afbeelding;
echo $query;
echo $num;
echo "Prijs per stuk: EUR ".$product->prijs."<br />\n"; [/quote]
Gewijzigd op 23/07/2010 12:41:43 door - SanThe -
Erg bedankt voor je snelle reactie (SanThe Nvt). Kan iemand van jullie een juiste aanpassing doen? Het zou me erg op weg helpen.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if(ctype_digit($_GET['id'])){
$id = $_GET['id'];
} else {
die("Geen rare waardes invullen, gebruiker!");
}
?>
if(ctype_digit($_GET['id'])){
$id = $_GET['id'];
} else {
die("Geen rare waardes invullen, gebruiker!");
}
?>
Gewijzigd op 23/07/2010 14:55:48 door Johan Dam
Mijn script ziet er nu zo uit, maar werkt nog steeds niet:
Quote:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
// informatie_link.php
session_start();
// Het product wat we toevoegen moeten we eerst controleren
// if(is_numeric($_POST['id'])) $id = $_POST['id'];
// else exit("Verzin een mooie foutmelding als productnummer geen integer is.");
// $id = $_POST['id'];
// echo $id;
include('contactdb.php');
if(ctype_digit($_GET['id'])){
$id = $_GET['id'];
} else {
die("Geen rare waardes invullen, gebruiker!");
}
// producten laten zien
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '".$id."'
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error());
// tellen van de bestanden
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
}
}
$afbeelding = "$product->image_link";
echo $afbeelding;
echo $query;
echo $num;
echo "Prijs per stuk: EUR ".$product->prijs."<br />\n";
// forward to cart
// header("Location: cart.php"); //<--- deze werkt!!
//echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0; URL=".$cart_pagina."\">";
?>
// informatie_link.php
session_start();
// Het product wat we toevoegen moeten we eerst controleren
// if(is_numeric($_POST['id'])) $id = $_POST['id'];
// else exit("Verzin een mooie foutmelding als productnummer geen integer is.");
// $id = $_POST['id'];
// echo $id;
include('contactdb.php');
if(ctype_digit($_GET['id'])){
$id = $_GET['id'];
} else {
die("Geen rare waardes invullen, gebruiker!");
}
// producten laten zien
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '".$id."'
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error());
// tellen van de bestanden
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
}
}
$afbeelding = "$product->image_link";
echo $afbeelding;
echo $query;
echo $num;
echo "Prijs per stuk: EUR ".$product->prijs."<br />\n";
// forward to cart
// header("Location: cart.php"); //<--- deze werkt!!
//echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0; URL=".$cart_pagina."\">";
?>
Verwerk de tips van SanThe er ook even in,
Je hebt bij je query op regel 24 ORDER BY productnaam, maar er staat nog geen ASC of DESC achter.
Wat ik zelf altijd doe met o.a. id's in een query is:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '" . (int)$id . "'
ORDER BY productnaam";
?>
$sql = "SELECT productnummer, productnaam, prijs, beschrijving, image_link, informatie_link, id
FROM product WHERE id = '" . (int)$id . "'
ORDER BY productnaam";
?>
Heb je de id kolom ook aan gemaakt als primary key en ook auto_increment?
Het lijkt mij ook belangrijk dat je id als eerste kolom aanmaakt van je tabel.
Je zou je query ook op het scherm kunnen zetten en deze door phpmyadmin laten uitvoeren.
Gewijzigd op 23/07/2010 19:24:05 door Martijn B