pagination met join tables
ik krijg ze nu allemaal in een rij onder elkaar.
all_training_categorie.php
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
require_once 'Singleton.php';
class alle_trainingen {
public $id, $afdeling;
protected $connect;
protected $sql;
public function __construct() {
$this->connect = Singleton::getconnect();
}
public function __destruct() {
$this->connect = null;
}
public function select_trainingen() {
$all_categorie = 'SELECT DISTINCT train.naam_training AS Training, train.beschrijving AS Beschrijving, cat.naam_categorie AS Categorie, typetrain.type_naam AS Type, typetrain.type_plaatje AS Plaatjes
FROM training train
JOIN training_categorie train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.categorie_id
JOIN training_type trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.type_id
ORDER BY train.naam_training
';
return $resultaat_all_categorie=mysql_query($all_categorie);
}
}
class alle_trainingen {
public $id, $afdeling;
protected $connect;
protected $sql;
public function __construct() {
$this->connect = Singleton::getconnect();
}
public function __destruct() {
$this->connect = null;
}
public function select_trainingen() {
$all_categorie = 'SELECT DISTINCT train.naam_training AS Training, train.beschrijving AS Beschrijving, cat.naam_categorie AS Categorie, typetrain.type_naam AS Type, typetrain.type_plaatje AS Plaatjes
FROM training train
JOIN training_categorie train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.categorie_id
JOIN training_type trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.type_id
ORDER BY train.naam_training
';
return $resultaat_all_categorie=mysql_query($all_categorie);
}
}
overzicht-training_soort_all.php
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
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
<?php
include_once "structuur/header.html";
?>
<div id="container">
<div id="left-container">
<?php
include_once "structuur/sidebar_soort_training_menu.html";
?>
</div>
<div id="right-container2">
<h6>Alle trainingen op alfabetische volgorde</h6>
<?php
require_once 'class/all_training_categorie.php';
$soort_training = new alle_trainingen();
$alle_training_soort = $soort_training->select_trainingen();
while($a=mysql_fetch_assoc($alle_training_soort))
{
echo "<div id='container'><td>";
echo "<div id='left3'>";
echo '<td><b>' . $a['Training'] . '</b></td><br>';
$plaatje = $a['Plaatjes'];
echo '<td>' . $a['Beschrijving'] . '</td><br>';
echo '<br>';
echo '<td>Categorie: <b>' . $a['Categorie'] . '</b></td><br>';
echo "</div>";
echo "<div id='right5'>";
echo "<div class='overzicht-plaatje'> <img src='$plaatje'/> </div> <br>" ;
{
echo "</div>";
echo"</tr></div>";
}
}
?>
include_once "structuur/header.html";
?>
<div id="container">
<div id="left-container">
<?php
include_once "structuur/sidebar_soort_training_menu.html";
?>
</div>
<div id="right-container2">
<h6>Alle trainingen op alfabetische volgorde</h6>
<?php
require_once 'class/all_training_categorie.php';
$soort_training = new alle_trainingen();
$alle_training_soort = $soort_training->select_trainingen();
while($a=mysql_fetch_assoc($alle_training_soort))
{
echo "<div id='container'><td>";
echo "<div id='left3'>";
echo '<td><b>' . $a['Training'] . '</b></td><br>';
$plaatje = $a['Plaatjes'];
echo '<td>' . $a['Beschrijving'] . '</td><br>';
echo '<br>';
echo '<td>Categorie: <b>' . $a['Categorie'] . '</b></td><br>';
echo "</div>";
echo "<div id='right5'>";
echo "<div class='overzicht-plaatje'> <img src='$plaatje'/> </div> <br>" ;
{
echo "</div>";
echo"</tr></div>";
}
}
?>
Beetje onduidelijk zo. Geef eens een voorbeeld van wat de resultaten zijn die je krijgt en wat je graag zou willen hebben.
Erwin H op 02/06/2014 21:45:58:
Beetje onduidelijk zo. Geef eens een voorbeeld van wat de resultaten zijn die je krijgt en wat je graag zou willen hebben.
SELECT DISTINCT train.naam_training AS Training, train.beschrijving AS Beschrijving, cat.naam_categorie AS Categorie, typetrain.type_naam AS Type, typetrain.type_plaatje
wat je krijgt is een lijst met naam training, beschrijving, categorienaa, type traiing
als plaatje.
deze informatioe haalt hij uit de volgende tabellen:
FROM training train
JOIN training_categorie train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.categorie_id
JOIN training_type trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.type_id
ik heb een class met alle_trainingen.
deze roep ik aan in overzicht-training_soort_all.php en weergeef ze via deze code
while($a=mysql_fetch_assoc($alle_training_soort))
{
echo "<div id='container'><td>";
echo "<div id='left3'>";
echo '<td><b>' . $a['Training'] . '</b></td><br>';
$plaatje = $a['Plaatjes'];
echo '<td>' . $a['Beschrijving'] . '</td><br>';
echo '<br>';
echo '<td>Categorie: <b>' . $a['Categorie'] . '</b></td><br>';
echo "</div>";
echo "<div id='right5'>";
echo "<div class='overzicht-plaatje'> <img src='$plaatje'/> </div> <br>" ;
{
wat ik nu mis is een pagination class die de query in class alle_trainingen verdeeld in bijv. 5 trainingen per pagina en waarbij je die terug kan zien in de pagina overzicht-training_soort_all.php.
ben bekend met de pagination methode waarbij je een count moet maken, maar dan een count uit 1 tabel. Hoe zit het met een sql met een join uit meerdere tabellen?
Gewijzigd op 02/06/2014 22:14:46 door Erwin H
Erwin H op 02/06/2014 22:14:31:
Als je nu mijn vraag uit de vorige post beantwoordt kan ik je op dat laatste een antwoord geven.
wat ik graag zou willen hebben is hetvolgende:
ik heb al een functie select_trainingen() die de trainingen uit de database haalt.
nu moet ik nog de count functie daarvoor schrijven.
als ik dat heb dan kan ik kijken of ik aan de hand daarvan verder kan.
Zet er dan gewoon een LIMIT op....
Als je per training meerdere rijen kan terug krijgen en je wilt een limit op het aantal trainingen zal je eerst met een subquery met daarin de limit de trainingen op moeten halen.
Daar was ik dus ook bang voor, vandaar dat ik heel specifiek vroeg naar de resultaten, maar daar kwam dus nooit een antwoord op...
Erwin H op 03/06/2014 12:24:41:
Daar was ik dus ook bang voor, vandaar dat ik heel specifiek vroeg naar de resultaten, maar daar kwam dus nooit een antwoord op...