При mysql_fetch_row()
вы извлекаете результаты по одной строке за раз, поскольку вы указали только url_imgsrch
в операторе SELECT
, это будет массив с одним единственным элементом, значением для url_imgrch
.Это причина вашего сообщения об ошибке.Цикл for()
пытается в свою очередь прочитать первое, второе и т. Д. До пятого значения массива, которое никогда не обновляется с новой информацией и всегда имеет только один элемент.
mysql_fetch_row()
вернет false
когда нет больше данных для чтения, вам нужно вызывать их для выборки каждой новой строки данных, так что вам нужно переписать ваш код в соответствии с этим:
$sql = 'SELECT url_imgsrch FROM p_url_imgsrch';
$result = mysql_query($sql);
while (false !== ($row = mysql_fetch_row($result))
{
echo '<td>';
echo '<img name="myimage" src=' . $row[0] . ' width="60" height="60" alt="word" />';
echo '</td>';
}
Первая часть такая же, как вы написали, настройка SQL-запроса и извлечение указателя ресурса ($result
) на mysql_query()
.
В следующей части цикл while()
будет работать так же долгопоскольку $row
не является false
, обновляя $row
новыми данными для каждого запуска цикла.Так как mysql_fetch_row()
выбирает численно индексированный массив, вы хотите получить $row[0]
, это первый (и единственный) столбец, который вы запросили в запросе SQL.Существует множество способов написания цикла while()
, но этот способ довольно распространен и легок для чтения другими разработчиками.