使用MySQL的URL显示图像

时间:2012-01-17 22:01:45

标签: php mysql html url image

我正在使用此代码显示来自网址的图片,但它无效,

<?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>';
            }

     ?>

结果是,我只获得alt文本,并且不显示图像。另外,我收到错误

  

注意:未定义的偏移量:D:\ wamp \ www \ demo \ login \ flashcard.php中的1   第31行

在我的档案中 我正在尝试的是,从数据库中获取5 img url并将其显示在表的列中......我猜我会一次又一次地获取相同的img URL ... 5次..

请给我指导并告诉我可能缺少的东西......

3 个答案:

答案 0 :(得分:3)

我从未见过有人通过这种方式循环查询,我这样做:

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>";

将column_name_here更改为存储图像文件名

的列的名称

修改:将mysql_fetch_row更改为mysql_fetch_array&lt; - 这就是为什么你5次获得相同的图像。

答案 1 :(得分:0)

试试这个:

    <?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>';
    }

?>

答案 2 :(得分:0)

使用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()不是$rowfalse循环就会运行,为每次循环运行更新$row新数据。由于mysql_fetch_row()获取数字索引数组,因此您需要检索$row[0],它是您在SQL查询中请求的第一个(也是唯一的)列。编写while()循环有很多种方法,但这种方式非常常见,并且易于为其他开发人员阅读。