Хорошо, у меня есть следующий код:
$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%' OR artist LIKE 'b%' OR artist LIKE 'c%'"); $array_result= mysql_fetch_array($array);
Затем, когда я пытаюсь повторить содержимое, я могу только эхо $array_result[0];
, который выводит первый элемент, но если я попытаюсь выполнить эхо $array_result[1];
Я получаю неопределенное смещение.
Тем не менее, если я запускаю указанный выше запрос через PHPMyAdmin, он возвращает список из 10 элементов. Почему это не признано в виде массива из 10 элементов, что позволяет мне откликнуть 0-9?
Спасибо за помощь.
Это потому, что массив представляет собой одну строку в возвращаемом наборе результатов. Вам нужно снова выполнить mysql_fetch_array()
чтобы получить следующую запись. Пример:
while($data = mysql_fetch_array($array)) { //will output all data on each loop. var_dump($data); }
Вы должны использовать while
чтобы получить все данные.
$array_result = array(); while ($row = mysql_fetch_array($array, MYSQL_NUM)) { $array_result[] = $row; } echo $array_result[4];
Вместо этого я предпочитаю использовать этот код:
$query = "SELECT artist FROM directory WHERE artist LIKE 'a%' OR artist LIKE 'b%' OR artist LIKE 'c%'"; $result = mysql_query($query) or die(mysql_error()); while(list($artist) = mysql_fetch_array($result)) { echo $artist; }
Если вы добавите больше полей в свой запрос, просто добавьте больше переменных в список ($ artist, $ field1, $ field2 и т. Д.)
Я надеюсь, что это помогает 🙂