2014-03-14 209 views
0

我有一个数据库,其中存储由不同传感器导出的数据。当在数据库中搜索时,我知道一行中的某一列是什么,但我需要在该行中打印一个以知道字符开头的不同列。我试图做到这一点:PHP搜索查询MYSQL

for($i = 1; $i < 301; $i++) 
{ 
    $result = mysql_query("SELECT * FROM full_dump WHERE file_name='J7091-01.TXT' AND ".$row['field_'.$i.'']." LIKE 'OS' ")or die(mysql_error()); 
    while($row = mysql_fetch_array($result)) 
    { 
     echo $row['field_'.$i.'']; 
    } 
} 

我得到这个结果:

注意:未定义的变量:排在C:\ XAMPP \ htdocs中\上线t1.php 11
你的SQL语法有错误;检查对应于你的MySQL服务器版本正确的语法在1号线

我曾尝试使用搜索附近使用“喜欢‘OS’”手动:

... and LIKE '%OS%' 

没有运气。 Whant我做错了吗?

我的MySQL版本是5.6.16

+0

您有一个额外的单引号在'$ i.''之后,你已经定义了'$ row' –

+0

另外,'mysql_ *'函数已经被弃用了一段时间。考虑切换到mysqli或PDO。 – jmc

回答

0

我不认为你可以在查询中使用的变量$row,而不是你应该做它喜欢这 -

$result = mysql_query("SELECT .....AND field_".$i." LIKE 'OS' ")or die(mysql_error()); 
+0

谢谢Sahil Mittal。我现在不知道这个错误,但现在我没有输出任何空白页面。我需要打印搜索字 – xlucian

+0

解决的字段,而不是'OS'我使用'%OS%'并工作。 感谢大家 – xlucian

+0

我有一个快速的问题。在我搜索的行中,我有更多的以搜索词开头的列。在输出时,我会得到3-4个字(结果),如何只打印最后一个? – xlucian