2012-10-24 53 views
0

我试图从列中包含文件名的列中显示8张图片,这些表格是正确的,并且字段interest_idinterest_pic(其中存储的文件名称)是正确的。从mysql中检索一批图像

$interest_image_query = mysql_query("SELECT interest_pic FROM interest_pictures WHERE interest_id='$i_id'"); 
$i = 0; 
while($interest_display_image = mysql_fetch_array($interest_image_query) && $i < 8){ 
    echo '<td><img src ="/uploads/images/interestpics/'.$interest_display_image['interest_pic'].'" width=60px height=60px /></td>'; 
    $i++; 
} 

输出似乎显示文件夹的位置,但没有文件名。在这种情况下,$i_id = 20,并且已验证并正在工作。任何帮助表示感谢,谢谢!

+1

如果您在gui或命令行中运行查询,查询返回多少行? – case1352

+0

如果你只打算使用其中的8个,我可以建议跳过'$ i ++',而只是在查询中加入'LIMIT 8' ... –

+0

@ case1352它显示1行,并且文件名正确 – mobile

回答

0

这才发现&& $i < 8导致$interest_display_image被设置为布尔“真”

替换if($i < 8){}

0

你确定你跑mysql_select_db()来选择合适的表?这对我有用。

我还在查询中添加了一个LIMIT,只返回8个结果,并在img标签后面的括号中回显文件名以确认它正在拉取文件名。

$link = mysql_connect('localhost', 'user', 'password'); 
mysql_select_db("tablename"); 

$i_id = 1; 
$interest_image_query = mysql_query("SELECT interest_pic FROM interest_pictures WHERE interest_id='$i_id' LIMIT 8"); 

while($interest_display_image = mysql_fetch_array($interest_image_query, MYSQL_BOTH)){ 
    echo '<td><img src ="/uploads/images/interestpics/'.$interest_display_image['interest_pic'].'" width=60px height=60px /> (' . $interest_display_image['interest_pic'] . ')</td>'; 
}