Я использую сложный оператор объединения для получения данных из таблицы "items", где "column1" равен значению table2.ID
Это в инструкции mysql_query()
, и он должен возвращать 3 строки.
Теперь я понимаю, что, используя
$array=mysql_fetch_array($queryresult);
Затем я могу пройти через каждую строку, используя
foreach($array as $output) {
echo $output['ID'];
}
Это, однако, не возвращает то, что я хочу. Использование print_r on $output выводит нечувствительную информацию.
Итак, да, это вернулось к основам, но, очевидно, я пропустил эту точку.
Вам нужно использовать цикл while
:
while($row = mysql_fetch_array($queryresult)){
// handle each row
}
Вот как я это делаю. Это далеко не конец всему решению... Просто пример того, как я это делаю.
$result = mysql_query($query, $dbconnect) or trigger_error("SQL", E_USER_ERROR);
$i = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo $row["questionId"];
echo $row["questionText"];
echo $row["questionReview"];
$i++;
}
$массив имеет одну строку в нем, когда вы попадаете в цикл, поэтому, когда вы говорите $output ['ID'], вы на один уровень глубже, чем вы ожидаете, идя по столбцам вместо каждой строки. Когда идентификаторы не существуют или переводятся в целые числа, это то, где входит глупость.
Используйте while ($ row = mysql_fetch_array ($ queryresult)), чтобы пройти через каждую строку в наборе результатов, затем получить доступ к значениям столбца из $row ['id'], $row ['name'] и т.д. вернет false, когда больше строк не будет.
Результат всегда будет единственным плоским массивом с одной строкой на индексный id, независимо от размеров соединения.