2016-07-20 5 views
0

Ich bin neu im Codieren und ich habe versucht herauszufinden, wie man sich einer Tabelle richtig anschliesst. Ich habe darüber gelesen, aber aus irgendeinem Grund habe ich ein wenig Mühe, meinen Kopf darum zu wickeln.Wie man einer Tabelle beitritt, um Kategorie, Unterkategorie und Produkt ID zu zeigen

Ich habe einen localhost eingerichtet und habe mit PHP und MySQL rumgespielt. Ich habe versucht, Kategorien und Unterkategorien in derselben Tabelle zu erstellen. Ich habe eine Tabelle mit den folgenden Zeilen.

Table name: categories 
id 
main_cat 
parent_id 
sub_cat_name 

ich versucht, einen Tisch zu machen, die jede Untergruppe mit der entsprechenden Hauptkategorie und Eltern-ID angezeigt werden würde. Ich recherchierte online und stieß auf JOIN-Tabellen. Bisher konnte ich die Unterkategorie mit der entsprechenden Hauptkategorie anzeigen, aber die Eltern-ID nicht anzeigen. Die Eltern-ID gibt null zurück. Unten ist mein Code. Kann jemand erklären, warum das nicht funktioniert und ob dies der beste Weg ist, die Daten anzuzeigen.

<table class="table table-striped"> 
    <thead> 
     <tr> 
     <th>Subcategory Name</th> 
     <th>Main Category</th> 
     <th>Parent ID</th> 
     </tr> 
    </thead> 
    <tbody> 
    <?php 

     // connect to database 
     include 'config/config.php'; 
     include 'config/opendb.php'; 

     $sql='SELECT t1.main_cat_name, t2.sub_cat_name, t3.parent_id FROM categories t1 
     LEFT JOIN categories t2 ON t2.parent_id = t1.main_cat_id 
     LEFT JOIN categories t3 ON t2.main_cat_id = t3.parent_id 
     WHERE t2.sub_cat_name IS NOT NULL;'; 
     $rs=$conn->query($sql); 

     $rs->data_seek(0); 
     while($row = $rs->fetch_assoc()) 
     { 

      $mainCatName = $row['main_cat_name']; 
      $subCatName = $row['sub_cat_name']; 

      echo"<tr> 
      <td>$subCatName</td> 
      <td>$mainCatName</td> 
      <td></td> 
     </tr>"; 
     } 
     $conn->close(); 
    ?> 
    </tbody> 
    </table> 

Antwort

0

Wie pro Ihre Frage kommen i Sie diese wollen wissen:

<table class="table table-striped"> 
<thead> 
    <tr> 
    <th>Subcategory Name</th> 
    <th>Main Category</th> 
    <th>Parent ID</th> 
    </tr> 
</thead> 
<tbody> 
<?php 

    // connect to database 
    include 'config/config.php'; 
    include 'config/opendb.php'; 

    $sql='SELECT main_cat AS `main_cat_name`, sub_cat_name AS `sub_cat_name`, parent_id FROM categories WHERE sub_cat_name IS NOT NULL;'; 
    $rs=$conn->query($sql); 

    $rs->data_seek(0); 
    while($row = $rs->fetch_assoc()) 
    {   

     echo"<tr> 
     <td>$row['main_cat_name']</td> 
     <td>$row['sub_cat_name']</td> 
     <td>$row['parent_id']</td> 
    </tr>"; 
    } 
    $conn->close(); 
?> 
</tbody> 

+0

Meine Frage ist falsch, weil es immer noch die main_cat_name leer zurückkehren wird. Ich habe verschiedene Suchabfragen versucht, aber entweder main_cat_name oder sub_cat_name sind leer. –

Verwandte Themen