0

製品シリーズごとに 1 つのテーブルを含むデータベースを作成しました。基本的に、最初の行が 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>";
    }

最初のループはうまく機能しますが、2 番目のクエリでエラーが発生します...

4

1 に答える 1

1

2 番目の名前を変更$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())また、クエリに a がある場合にエラーを出力するために、クエリの後に aを貼り付けることもお勧めします。

于 2012-08-22T20:22:44.487 に答える