Data uit meerdere tables uitlezen
In de database staan twee tables die ik nodig heb; newsletters en newsletters_products
In de eerste wordt o.a. opgeslagen: newsletters_id, title, content, date_added
In de tweede staat newsletters_id en products_id (de id's van producten die gekoppeld zijn aan de nieuwsbrief.
Nu heb ik een PHP script gemaakt met hulp van meerdere tuts op deze site. En het nieuwsbericht wordt goed weergegeven uit de database (datum, titel en content). Maar van de gekoppelde producten zie ik er steeds maar 1, terwijl er drie in staan (dit kunnen er ook meer worden, variabel aantal).
Hoe kan dit? Hierbij mijn script:
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
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
<?
// Verbinding maken met de databaseserver
$link = mysql_connect('localhost','***','***') or die("Kan geen verbinding maken met de nieuwsbriefserver.");
// De database selecteren
mysql_select_db('***',$link)or die("Er is verbinding met de server maar de nieuwsbriefdatabase is niet gevonden.");
// GET statement maken, als de ID niet numeriek is wordt er geredirect naar de 404
if(isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
}
else
{
header ("Location: ../web/404.shtml");
exit;
}
// Database query uitvoeren
$query = mysql_query("SELECT title, content, DATE_FORMAT(date_added, 'Verzonden op %d-%m-%Y om %H:%i.') AS date FROM newsletters WHERE newsletters_id='". $id ."'");
$query2 = mysql_query("SELECT * FROM newsletters_to_products WHERE newsletters_id='". $id ."'");
// Resultaat variabele maken
$result = mysql_fetch_array($query);
$result2 = mysql_fetch_array($query2);
// Resultaat nieuwsbrief weergeven
echo "Titel: ".$result['title'] ."<br />";
echo "Inhoud: ".$result['content'] ."<br />";
echo "Datum: ".$result['date'] ."<br />";
echo "<br /><br />";
// Resultaat producten weergeven
echo "Gekoppelde producten: ".$result2['products_id'] ."<br />";
?>
// Verbinding maken met de databaseserver
$link = mysql_connect('localhost','***','***') or die("Kan geen verbinding maken met de nieuwsbriefserver.");
// De database selecteren
mysql_select_db('***',$link)or die("Er is verbinding met de server maar de nieuwsbriefdatabase is niet gevonden.");
// GET statement maken, als de ID niet numeriek is wordt er geredirect naar de 404
if(isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
}
else
{
header ("Location: ../web/404.shtml");
exit;
}
// Database query uitvoeren
$query = mysql_query("SELECT title, content, DATE_FORMAT(date_added, 'Verzonden op %d-%m-%Y om %H:%i.') AS date FROM newsletters WHERE newsletters_id='". $id ."'");
$query2 = mysql_query("SELECT * FROM newsletters_to_products WHERE newsletters_id='". $id ."'");
// Resultaat variabele maken
$result = mysql_fetch_array($query);
$result2 = mysql_fetch_array($query2);
// Resultaat nieuwsbrief weergeven
echo "Titel: ".$result['title'] ."<br />";
echo "Inhoud: ".$result['content'] ."<br />";
echo "Datum: ".$result['date'] ."<br />";
echo "<br /><br />";
// Resultaat producten weergeven
echo "Gekoppelde producten: ".$result2['products_id'] ."<br />";
?>
Uitput van dit script is:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
Titel: Testtitel
Inhoud: Testbericht
Datum: Verzonden op 24-02-2009 om 08:38.
Gekoppelde producten: 71
Inhoud: Testbericht
Datum: Verzonden op 24-02-2009 om 08:38.
Gekoppelde producten: 71
Terwijl er drie producten gekoppeld staan aan deze testnieuwsbrief:
Gewijzigd op 01/01/1970 01:00:00 door Remco Leuven