2013-03-26 84 views
0

首先我想知道如何通过使用图像的路径在PHP中显示图像?而不使用BLOB。PHP_SQL查询没有返回正确答案

我有我的数据库中的表这是奠定了这样..

列:I1 + I2 I3 I4 I5 I6 I7 I8

每个字段保存一个值或空。

我基本上想显示i5 i6 i7 i8的值根据什么是i1 i2 i3 i4。

对于e.g:

I1 =一个I2 = B i3的= E I4 = Q I5 =克I6 = 1 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]

帮助是不工作的,将不胜感激。谢谢

+0

你的意思是不工作?错误讯息?不是你期望的输出? – 2013-03-26 16:38:37

+0

没有任何回复@BrendanLong – StringerB 2013-03-26 16:42:21

+0

你最近怎么样做你的查询?你能告诉我们完整的代码吗? – 2013-03-26 16:50:19

回答

2

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

您不在PhP中显示图像,而是在html中显示图像。如果你已经得到了路径,然后简单地生成HTML img标签设置为路径src属性:

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

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

+0

你能告诉我一个例子,试图寻找教程,但徒劳无功。谢谢@Bartdude – StringerB 2013-03-26 16:43:42

+0

什么教程? HTML中的图像标签? – 2013-03-26 16:44:41

+0

否参考路径,从db – StringerB 2013-03-26 16:46:37

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

你不检查查询过程中是否有错误。从the documentation for mysql_query

对于SELECT,SHOW,描述,解释等语句返回的结果集,请求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') 

这会给你i5i6i7i8i1是真实的,i2是真实的, i3为真,并且i4等于字符串$list。如果你想在列表中找到所有结果,你需要做多个IN报表,你需要将$list作为列表,而不是字符串。你可以看到this answer关于如何构建查询字符串以将列表传递给MySQL。

另请注意,mysql_*函数已被弃用,您应该学会使用PDO或mysqli_*函数。它不会花费太多时间,并且安全的数据库访问是很多与他们更容易。

+0

谢谢,正在考虑使用学习PDO,我很快就会。我看了一下你的链接,但是当你说我需要多个'IN'语句时,你的意思是这种方式'WHERE $ i1 IN($ list)AND $ i2 IN($ list)...'@BrendanLong – StringerB 2013-03-26 18:15:00

+0

@ StringerB是的。除了把$ list放在一起是非常危险的,并且可能无法工作。 – 2013-03-26 19:08:40