Как получить переменные из MySQL Query (многоуровневый массив)? - PullRequest
1 голос
/ 14 июля 2011

У меня есть следующее:

$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 не поможет = /.

Ответы [ 3 ]

3 голосов
/ 14 июля 2011
Код

не выполнялся, потому что вы не указали допустимый ресурс для 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 голос
/ 14 июля 2011
$category_name = $row['category_name'];

Хорошо, я голосую за PDO, но я почти уверен, что вы можете пропустить 'c', так как $ row будет ссылаться на имя поля. C только что вычислен СУБД, чтобы связать поле с таблицей пропппера.

0 голосов
/ 14 июля 2011

Вы должны вызвать mysql_query для вашего $ sql (запрос sql), затем вы снова вызовете mysql_fetch_array, чтобы получить результат вызова.В любом случае, вы почти всегда должны вызывать mysql_error для проверки ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...