pagination met join tables

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George mendel

george mendel

02/06/2014 21:18:43
Quote Anchor link
ik wil een pagination maken met een query die verschillende tabellen met elkaar joint, alleen weet ik niet hoe ik dat aan moet pakken.
ik krijg ze nu allemaal in een rij onder elkaar.

all_training_categorie.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
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);
    }
}


overzicht-training_soort_all.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";  
        }  
      }


      ?>
 
PHP hulp

PHP hulp

23/12/2024 08:18:56
 
Erwin H

Erwin H

02/06/2014 21:45:58
Quote Anchor link
Beetje onduidelijk zo. Geef eens een voorbeeld van wat de resultaten zijn die je krijgt en wat je graag zou willen hebben.
 
George mendel

george mendel

02/06/2014 22:00:55
Quote Anchor link
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?
 
Erwin H

Erwin H

02/06/2014 22:14:31
Quote Anchor link
Als je nu mijn vraag uit de vorige post beantwoordt kan ik je op dat laatste een antwoord geven.
Gewijzigd op 02/06/2014 22:14:46 door Erwin H
 
George mendel

george mendel

02/06/2014 22:20:49
Quote Anchor link
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.
 
Erwin H

Erwin H

02/06/2014 23:54:55
Quote Anchor link
Zet er dan gewoon een LIMIT op....
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/06/2014 11:51:57
Quote Anchor link
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.
 
Erwin H

Erwin H

03/06/2014 12:24:41
Quote Anchor link
Daar was ik dus ook bang voor, vandaar dat ik heel specifiek vroeg naar de resultaten, maar daar kwam dus nooit een antwoord op...
 
George mendel

george mendel

07/06/2014 21:48:58
Quote Anchor link
sorry voor de late reactie wegens omstandigheden. wat ik krijg als resultaat is een aantal trainingen onder elkaar met naam training, beschrijving en plaatje!

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...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.