2011-07-14 13 views
1

私は、次のしている:MySQL Query(複数レベル配列)から変数を取得するには?

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

} 

しかし、それは(空白を生成する)働いていません。私は間違ったことをしていると確信していますが、私が探している正式な用語が何であるかわからないので、Googleは役に立たないです。

+0

http://www.php.net/manual/en/function.mysql-fetch-array.php – Sinan

+0

は、なぜあなたはblog_articlesに参加している - それはあなたがすべてでそれを使用しているように見えるdoesntの? –

答えて

3

mysql_fetch_arrayの有効なリソースを提供しているため、コードが実行されていませんでした。 $行は1次元配列になります。

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

} 
0

$ sql(SQLクエリ)でmysql_queryを呼び出す必要があります。その後、mysql_fetch_arrayを呼び出して呼び出し結果を返します。とにかく、ほとんどの場合、mysql_errorを呼び出してエラーをチェックする必要があります。

+0

ああ、実際に私は(私はちょうどそこにその行を追加しなかった) - 明確化のために編集:) – Jay

1
$category_name = $row['category_name']; 

私はPDOに投票しますが、$行はフィールド名を参照するので、私はあなたが 'c'をスキップできると確信しています。 cは、DBMSによって評価され、フィールドをプロパー・テーブルに関連付けるだけです。

+0

また、mysql_fetch_array()を使用することによってインデックスを使用することができます。例:category_nameの '$ row [0]'、category_name_urlの '$ row [1]'など。 – Sinan

関連する問題