Alleen sql data laden die aangeklikt is.
Ik heb voor een schoolproject, een webshop in mijn geval van games, een stukje code waarmee ik alle data uit de database haal. Let wel, ben een beginnen, vergeef me als ik iets stoms doe.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
mysql_connect("localhost", "io1a_127315", "127315");
mysql_select_db ("io1a_127315");
$result = mysql_query("SELECT * FROM Producten");
while($data = mysql_fetch_assoc($result)) {
echo '<div class="game">';
echo '<div id="center">';
echo $data['Naam'] . "<br />";
echo $data['Gamebox'] . "<br />";
echo $data['Oude_prijs'] . "<br />";
echo $data['Nieuwe_prijs'] ."<br />";
echo '</span></div>';
echo '</span></div>';
}
?>
mysql_connect("localhost", "io1a_127315", "127315");
mysql_select_db ("io1a_127315");
$result = mysql_query("SELECT * FROM Producten");
while($data = mysql_fetch_assoc($result)) {
echo '<div class="game">';
echo '<div id="center">';
echo $data['Naam'] . "<br />";
echo $data['Gamebox'] . "<br />";
echo $data['Oude_prijs'] . "<br />";
echo $data['Nieuwe_prijs'] ."<br />";
echo '</span></div>';
echo '</span></div>';
}
?>
Ik haal dus schijnbaar alle data uit de database "Producten" en die komen op 1 pagina. Super! NU wil ik het zo hebben, op het moment dat er op een van die titels ("Naam") word geklikt, dat je dan naar een andere detail pagina gaat en daar alleen de data van de zojuist aangeklikte naam komt. Hoe doe ik dat?
Alvast bedankt!
Gewijzigd op 17/01/2016 13:43:04 door Donovan -
Ik ga er van uit dat je een INT-veld hebt met de naam ID, die Auto_Increment (Primary Key) is.
Je kan dan op een andere pagina met if(isset($_GET['id'])) { controleren of er een GET-waarde in de URL is (bijv. product.php?id=42), en dan kan je met mysql_num_rows controleren of het ID-nummer bestaat, en indien dat het geval is kan je met mysql_fetch_assoc() de gegevens ophalen. Een while() is overigens alleen nodig als je expliciet een of meer producten verwacht.
Verder even een opmerking, in de toekomst gaan de MySQL-functies in PHP verdwijnen, en wordt het aan te raden om over te stappen op MySQLi en PDO. Voor een schoolproject is het geen probleem, maar je erop voorbereiden kan zeker geen kwaad. Misschien dat het een bonuspuntje zelfs op kan leveren ;-).
Gewijzigd op 17/01/2016 13:47:26 door - Ariën -
Maar het is dus de bedoeling, als er een product X staat, zodra je dus op de X klikt, je naar een andere pagina gaat. Deze pagina heet in dit geval Gamedetails.php. Moet ik dit daarin verwerken of hoe zit dat? :%$
Toevoeging op 17/01/2016 14:00:10:
En hoe zorg ik er voor dat mijn naam van mijn product in dit geval, een link heeft? In de SQL database?
De link kan je prima in je echo verwerken, selecteer wel ID in je query.
Grote kans dus dat je meerdere div's aanmaakt met hetzelfde id, dit is niet toegestaan. Een ID moet uniek zijn op een pagina.
Ik zie 2 maal een </span> voorbij komen zonder dat ik ergens een <span> zie, dee dienen als paar gebruikt te worden
Ik heb geen idee welke HTML/XML je gebruikt maar gooi het eens door de W3C-validator heen, dikke kans dat deze problemen heeft mer <br />
Waarom gebruik je de ene keer single quotes voor een echo en de andere keer double quotes ?
Gewijzigd op 17/01/2016 15:18:17 door Pipo Clown
Voorbeeld:
www.example.com/product.php?id=5&name=Diov
Ariën heeft al een code preview gegeven van hoe je zo een link opbouwd.
Op de product.php pagina doe je het volgende dan:
Is gelukt met dit:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
mysql_connect("localhost", "io1a_127315", "127315");
mysql_select_db ("io1a_127315");
$sql = "
SELECT
*
FROM
Producten
WHERE id
= ' ".$_GET['id']." '
";
if(!$res = mysql_query($sql)) {
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0){
echo 'Geen resultaten gevonden';
}
else {
while($row = mysql_fetch_assoc($res)) {
echo $row['Gamebox'];
}
}
?>
mysql_connect("localhost", "io1a_127315", "127315");
mysql_select_db ("io1a_127315");
$sql = "
SELECT
*
FROM
Producten
WHERE id
= ' ".$_GET['id']." '
";
if(!$res = mysql_query($sql)) {
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($res) == 0){
echo 'Geen resultaten gevonden';
}
else {
while($row = mysql_fetch_assoc($res)) {
echo $row['Gamebox'];
}
}
?>
Je hebt overigens geen while nodig voor een query die maar 1 resultaat geeft.