WHERE子句似乎不适用于PHP

时间:2014-08-06 12:56:41

标签: php mysql

查询SELECT * FROM TABLE WHERE id LIKE '%1%无效,但未选择ID 1.

mysql_connect('localhost', 'root' , ''); 
mysql_select_db('database'); 
$sql = ("select * from search WHERE id LIKE '%3%'"); 
mysql_query($sql); 
$my_variable = mysql_query($sql);  
$display_data = mysql_fetch_row($my_variable); 

   while ($list = mysql_fetch_assoc($my_variable)) { 
        $id = $list['id']; 
        $title = $list['title']; 
        $keywords = $list['keywords'];
        $img = $list['img'];
        $link = $list['link'];
   }

4 个答案:

答案 0 :(得分:2)

如果您要查看SELECT id 1,请使用= not LIKE。使用LIKE的方式将匹配每个id为1的id,并且不保证按顺序获得第一个id,所以改为使用:

SELECT * FROM search WHERE id = 1

答案 1 :(得分:1)

根据mysql_fetch_row的{​​{3}}

  

返回与获取的行对应的数值数组,并将内部数据指针向前移动。

这意味着第一个结果不会出现在下一个(mysql_fetch_assoc)程序中。您可以尝试删除$display_data = mysql_fetch_row($my_variable);行,只使用while($list = mysql_fetch_assoc($my_variable)) { ... }程序。看看是否能解决您的问题。

答案 2 :(得分:1)

$sql = ("select * from search WHERE id ='3'");

id是整数使用=而不是like。等于更准确。

答案 3 :(得分:0)

首先在您的程序中回显您的查询 - >

echo $sql;die;

复制该查询并在phpmyadmin上运行 然后检查您的column id是否为int type,如果是,则表示不会给您结果。你必须在这里使用where clause。但如果column id属于type varchar,那么肯定会给你结果。 尝试使用phpmyadmin 中数据库 - >表下的搜索标签,并将条件放在那里。 你肯定会在那里得到答案。