PHP_SQL查询没有返回正确的答案

时间:2013-03-26 16:32:33

标签: sql arrays image path

首先,我想知道如何使用图像的路径在PHP中显示图像?不使用BLOB。

我的数据库中有一张表,这是以这种方式布局的。

列:i1 i2 i3 i4 i5 i6 i7 i8

每个字段都有一个值或为空。

我基本上想根据i1 i2 i3 i4中的内容显示i5 i6 i7 i8的值。

例如:

i1 = a i2 = b i3 = e i4 = q i5 = g i6 = l i7 = i8 =

对于这种情况,我希望显示g和l。但我希望将值存储在数组中。

我尝试过:

$list = array(g,l)
$query = " SELECT i5, i6, i7, i8  FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list') ";
$s = mysql_query($query);
while($data = mysql_fetch_array($s)){
    $r_1 = $data['i5'];
    $r_2 = $data['i6'];
    $r_3 = $data['i7'];
    $r_4 = $data['i8'];         
}
echo "$r_1  $r_2 $r_3  $r_4"`

即使我$list[0]

,这也无效

帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:2)

首先,我想知道如何使用图像的路径在PHP中显示图像?不使用BLOB。

  

您不以PhP显示图像,而是以html显示。如果你有了这条路径,那么只需在html中生成一个img标签,并将src属性设置为path:

<img src="whatever your path is" alt="My Image" />

Blob用于直接在数据库中存储图像(实际上是大二进制数据,图像,电影......)。

答案 1 :(得分:0)

$s = mysql_query($query);
while($data = mysql_fetch_array($s)){

您不会检查查询过程中是否有错误。来自the documentation for mysql_query

  

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。

所以:

$s = mysql_query($query);
if($s === FALSE) {
    // Do something to handle the error here, possibly calling die()
}

下一个问题,如果没有结果怎么办?你的变量都是空的。你可以测试一下:

if(empty($r_1)) {
    echo "Oops, I guess we didn't get any results";
    // die()?
}

如果我们获得多行结果怎么办?我不确定你的程序应该如何处理这个问题。

最后,我认为您的SQL查询没有按照您的想法进行:

SELECT i5, i6, i7, i8  FROM Table WHERE i1 AND i2 AND i3 AND i4 IN ('$list')

i5为真,i6为真,i7i8i1i2i3 1}}为真,i4等于字符串$list。如果要查找列表中所有列表的结果,则需要执行多个IN语句,并且需要将$list作为列表而不是字符串传递。您可以看到this answer有关如何构造查询字符串以将列表传递给MySQL的信息。

另请注意,mysql_*函数已弃用,您应该学会使用PDO或mysqli_*函数。这不会花费太多时间,并且使用它们可以更轻松地安全地访问数据库。