我创建了一个数据库,其中包含每个产品系列的一个表,基本上我正在尝试列出所有不同的模型(每个表中的表行),在第一行是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 :(得分: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())
,如果查询中有错误,则输出错误。