我有以下内容:
$sql = "SELECT c.category_name
, c.category_name_url
FROM blog_categories AS c
JOIN blog_articles AS a
ON a.category_name = c.category_name
WHERE c.category_status = 'online'
GROUP BY c.category_name
";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)) {
$category_name = $row['c']['category_name'];
$category_name_url = $row['c']['category_name_url'];
}
但它不起作用(产生空白)。我确定我做错了什么,但我不知道我正在寻找的正式术语是什么,所以谷歌没有帮助= /。
答案 0 :(得分:3)
代码未运行,因为您没有为mysql_fetch_array提供有效资源。 $ row也是一个单维数组。
$sql = mysql_query("SELECT c.category_name
, c.category_name_url
FROM blog_categories AS c
JOIN blog_articles AS a
ON a.category_name = c.category_name
WHERE c.category_status = 'online'
GROUP BY c.category_name
");
while($row = mysql_fetch_array($sql)) {
$category_name = $row['category_name'];
$category_name_url = $row['category_name_url'];
}
答案 1 :(得分:1)
$category_name = $row['category_name'];
好吧,我投票支持PDO,但我很确定你可以跳过'c',因为$ row会引用字段名。 c只是由DBMS评估,以将该字段与propper表相关联。
答案 2 :(得分:0)
你应该在你的$ sql(sql查询)上调用mysql_query,然后再调用mysql_fetch_array来调用调用的结果。无论如何,你几乎总是应该调用mysql_error来检查错误。