如何从MySQL Query(多级数组)中获取变量?

时间:2011-07-14 13:00:46

标签: php mysql arrays variables

我有以下内容:

$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'];

}

但它不起作用(产生空白)。我确定我做错了什么,但我不知道我正在寻找的正式术语是什么,所以谷歌没有帮助= /。

3 个答案:

答案 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来检查错误。