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>";
    }

第一个循环运行良好,但第二个查询会产生错误......

4

1 回答 1

1

重命名第二个$row,你mysql_fetch_assoc不需要mysql_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())在查询后粘贴一个错误以输出错误。

于 2012-08-22T20:22:44.487 回答