2016-07-12 135 views
0

我想顯示CATEGORIES,然後在鼠標懸停上顯示SUBCATEGORIES。我有2個表:查詢顯示類別和子類別

create table categorias (
`idCategoria` int NOT NULL PRIMARY KEY, 
`nomCategoria` varchar (55) NOT NULL, 
`desCategoria` varchar (255), 
`tipoCategoria` int (2), 
`fotoCategoria` varchar (55), 
`metaTiCategoria` varchar (255), 
`metaDesCategoria` varchar (255), 
`keywordsCategoria` varchar(100) 
) 

CREATE TABLE IF NOT EXISTS `subcategoria` (
    `idSubcate` int(3) NOT NULL AUTO_INCREMENT, 
    `nomSubcate` varchar(55) NOT NULL, 
    `fotoSubcate` varchar(255) DEFAULT NULL, 
    `metaTiSubcate` varchar(255) DEFAULT NULL, 
    `metaDesSubcate` varchar(255) DEFAULT NULL, 
    `keywordsSubcate` varchar(255) DEFAULT NULL, 
    `tipoSubcate` int(1) DEFAULT NULL, 
    `cateSubcate` int(3) DEFAULT NULL, 
    PRIMARY KEY (`idSubcate`)) 

的PHP代碼:

<ul class="grid cs-style-4"> 
    <? 
     $cate = 'communit_new_site_2016.categorias'; 
     $qry = ("SELECT * 
     from $cate 
     where $cate.tipoCategoria = 1 or $cate.tipoCategoria=3 
     ORDER BY $cate.nomCategoria 
     "); 
     $rst = mysql_query($qry); 
     $tN = mysql_num_rows($rst); 
     $cN = 1; 
     ?> 
     <? 
      while($categoria = mysql_fetch_assoc($rst)) { 


     ?> 
     <li class="col-xs-12 col-sm-12 col-md-3"> 
     <div class="col-xs-12 col-sm-12 col-md-12 text-center"> 
     <figure> 
     <div><img src="<?= $categoria['fotoCategoria'] ?>" alt="<?= $categoria['nomCategoria'] ?>"></div> 
     <figcaption class="subcate"> 
     <? 
      $sub = 'communit_new_site_2016.subcategoria'; 
      $catein = 'communit_new_site_2016.categorias'; 
      $qry1 = ("SELECT nomSubcate 
       from $sub 

       ORDER BY $sub.nomSubcate 
      "); 
      $rst1 = mysql_query($qry1); 
      $tN1 = mysql_num_rows($rst1); 
      $cN1 = 1; 
     ?> 
     <? 
      while($subcate = mysql_fetch_assoc($rst1)) { 


     ?> 
     <span> <?= $subcate['nomSubcate']?></span> 
      <? 

     if($cN1 != $tN1) { 
     ?> 

     <? 
      } 
     $cN1++; 
     } 
     ?>  
     </figcaption> 
     </figure> 
     </div> 
     <div class="col-xs-12 col-sm-12 col-md-12 text-center"> 
       <a href=""><span class="caption"><?=$categoria['nomCategoria']?></span></a> 
      </div> 
    </li> 
     <? 

     if($cN != $tN) { 
     ?> 

     <? 
      } 
     $cN++; 
     } 
    ?>  
    </ul> 

的網頁是www.communita.com.mx/interior.php。 此外,有兩種類型:室內(室內)和室外(室外)。這就是爲什麼我使用tipoCategoria = 1(室內)和3室內和室外。

在此先感謝。

+0

分類如何與子類別相關? –

+0

@不要驚慌子類別在cateSubcate引用類別(idCategorias) – goeknax

+0

上有一個fereign鍵謝謝,我認爲這可能是它,但不確定。你有沒有意識到你的PHP中有一些「if」塊,但沒有任何內容? –

回答

0

以下是我將如何使用左連接來完成此操作。我沒有測試過這個,因爲我沒有你的數據庫,但它應該告訴你我的方法的一般想法:

首先,執行查詢並將行讀入按類別分組的多維數組:id:

<?php 
$cate = 'communit_new_site_2016.categorias'; 
$sub = 'communit_new_site_2016.subcategoria'; 
$qry = ("SELECT idCategoria, nomCategoria, fotoCategoria, idSubcate, nomSubcate 
     FROM $cate c LEFT JOIN $sub s ON c.idCategoria = s.cateSubcate 
     WHERE tipoCategoria = 1 OR tipoCategoria = 3 ORDER BY nomCategoria, nomSubcate"); 
$rst = mysql_query($qry); 
while ($row = mysql_fetch_assoc($rst)) { 
    // use the category id as a key here to group the array 

    // these two values will just overwrite with the same thing if they're repeated 
    $categorias[$row['idCategoria']]['nomCategoria'] = $row['nomCategoria']; 
    $categorias[$row['idCategoria']]['fotoCategoria'] = $row['fotoCategoria']; 

    // the subcategory will be added to an inner array 
    $categorias[$row['idCategoria']]['subcategoria'][$row['idSubcate']] = $row['nomSubcate']; 
}?> 

在這個結構中有一個數組後,它會更容易輸出你試圖得到的HTML。

<ul class="grid cs-style-4"> 
<?php foreach ($categorias as $categoria): ?> 
    <li class="col-xs-12 col-sm-12 col-md-3"> 
     <div class="col-xs-12 col-sm-12 col-md-12 text-center"> 
      <figure> 
       <div> 
        <img src="<?= $categoria['fotoCategoria'] ?>" 
          alt="<?= $categoria['nomCategoria'] ?>"> 
       </div> 
       <figcaption class="subcate"> 
        <?php foreach ($categoria['subcategoria'] as $id => $subcategoria): ?> 
         <span><?= "$id: $subcategoria" ?></span> 
        <?php endforeach ?> 
       </figcaption> 
      </figure> 
     </div> 
     <div class="col-xs-12 col-sm-12 col-md-12 text-center"> 
      <a href=""><span class="caption"><?= $categoria['nomCategoria']?></span></a> 
     </div> 
    </li> 
<?php endforeach ?> 
</ul> 
+0

讓我試試這個!謝謝。 – goeknax

+0

@ dont-panic非常感謝你!你幫了我很多。 完美運作。你可以在之前發佈的鏈接中看到= D – goeknax

+0

太棒了!好看的頁面。 –