我正在使用此代码显示来自网址的图片,但它无效,
<?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次..
请给我指导并告诉我可能缺少的东西......
答案 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()
不是$row
,false
循环就会运行,为每次循环运行更新$row
新数据。由于mysql_fetch_row()
获取数字索引数组,因此您需要检索$row[0]
,它是您在SQL查询中请求的第一个(也是唯一的)列。编写while()
循环有很多种方法,但这种方式非常常见,并且易于为其他开发人员阅读。