Показать изображение с URL из MySQL - PullRequest
0 голосов
/ 18 января 2012

Я использую этот код для отображения изображения из URL, но он не работает,

<?php
     echo 'me'.'<br/>';


      $sql= 'SELECT url_imgsrch FROM p_url_imgsrch';
      $result   =   mysql_query($sql);
        echo $result;
       $row = mysql_fetch_row($result);


      for ($i=0; $i<6; $i++){

        //calling rows
        echo '<td>';

// вызов значения строки для цели отладки, чтобы я мог изучить процесс и проверить вывод

         echo $row[$i].'<br/>';

echo '<img name="myimage" src="<?php echo $row[$i]; ?>" width="60" height="60" alt="word" />';

            echo '</td>';
            }

     ?>

В результате я получаю только альтернативный текст, а изображение не отображается.также я получаю сообщение об ошибке

Примечание: неопределенное смещение: 1 в D: \ wamp \ www \ demo \ login \ flashcard.php в строке 31

в моем файлеЯ пытаюсь получить 5 img url из базы данных и отобразить их в столбцах таблицы ... и я думаю, что я получаю один и тот же img URL снова и снова ... 5 раз ..

Пожалуйста, дайте мне руководство и скажите, что мне не хватает ...

Ответы [ 3 ]

3 голосов
/ 18 января 2012

я никогда не видел, чтобы кто-то просматривал запрос таким образом, я делаю так:

print "<table>";
$sql= 'SELECT url_imgsrch FROM p_url_imgsrch LIMIT 5';
$result   =   mysql_query($sql);
 while($row = mysql_fetch_array($result)){
    print '<tr>
            <td>
               <img name="myimage" src="'.$row[column_name_here].'" width="60" height="60" alt="word" />
            </td>
          </tr>';
    }
print "</table>";

изменить имя_ столбца здесь на имя столбца, в котором хранится имя файла изображения

edit: изменено mysql_fetch_row на mysql_fetch_array <- поэтому все 5 раз вы получаете одно и то же изображение. </p>

0 голосов
/ 18 января 2012

При 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(), но этот способ довольно распространен и легок для чтения другими разработчиками.

0 голосов
/ 18 января 2012

попробуйте это:

    <?php
    echo 'me'.'<br/>';

    $sql= 'SELECT url_imgsrch FROM p_url_imgsrch';
    $result   =   mysql_query($sql);
    echo $result;
    $row = mysql_fetch_row($result);


    for ($i=0; $i<6; $i++)
    {
        //calling rows
        echo '<td>';
        //calling rows value for debugging purpose so that i can learn the process and check the output
        echo $row[$i].'<br/>';
        echo '<img name="myimage" src=' . $row[$i] . ' width="60" height="60" alt="word" />';
        echo '</td>';
    }

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