2012-08-22 32 views
0

我創建了一個數據庫,其中包含每個產品系列的一個表,基本上我試圖列出所有不同的模型(每個表中的錶行)第一行是table_name。爲什麼這不起作用?生成基於數據庫內容的產品列表

$result = mysql_query("SELECT DISTINCT TABLE_NAME FROM 
          INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME 
          IN ('id') AND TABLE_SCHEMA='products-ropox'"); 
    while($row = mysql_fetch_array($result)) 
    { 
     $serie = $row["TABLE_NAME"]; 
     echo "<ul>"; 
     echo "<li class='ldd_heading'><a class='link' 
       href='products.php?category=".$serie."'>" 
       .ucfirst($serie)."</a></li>"; 
     $query = mysql_query("SELECT DISTINCT model FROM $serie 
           ORDER by model ASC"); 
     while($row = mysql_fetch_array($query)) 
     { 
      echo "<li><a href='products.php?category=".$serie. 
      "&model=".$row['model']."'>".$row['model']."</a></li>"; 
     } 
     echo "</ul>"; 
    } 

第一循環的效果很好,但第二個查詢產生一個錯誤......

+0

它怎麼樣? –

+0

第二個查詢......它說警告:mysql_fetch_array()期望參數1是資源。 – TehHO

+0

在第二個循環中覆蓋'$ row'。 –

回答

1

重命名第二$row,你需要mysql_fetch_assocmysql_fetch_array。如果你想使用mysql_fetch_array你需要使用$row[0]

$result = mysql_query("SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN ('id') AND TABLE_SCHEMA='products-ropox'"); 
while($row = mysql_fetch_array($result)) 
{ 
    $serie = $row["TABLE_NAME"]; 
    echo "<ul>"; 
     echo "<li class='ldd_heading'><a class='link' href='products.php?category=".$serie."'>".ucfirst($serie)."</a></li>"; 
      $query = mysql_query("SELECT DISTINCT model FROM $serie ORDER by model ASC"); 
      while($row2 = mysql_fetch_array($query)) 
      { 
       echo "<li><a href='products.php?category=".$serie."&model=".$row2['model']."'>".$row2['model']."</a></li>"; 
      } 
    echo "</ul>"; 
} 

也是一個很好的初步實踐是查詢之後貼or die(mysql_error())輸出一個錯誤,如果有一個在您的查詢。

+0

之前工作了一點點,但仍然給我一個錯誤......這真的讓我煩惱! – TehHO

+0

更新了我的答案 – locrizak

+0

還沒有任何改變。我重新複製代碼,並改變「mysql_fetch_array」到「mysql_fetch_assoc」 mysql_fetch_assoc()預計參數1是資源 的有趣的事情,如果我鍵入查詢到的phpmyadmin的SQL語句組成部分,它的工作原理就像一個魅力... – TehHO