如何通过使用php / mysql中的索引来选择查询同一列中的两个不同值

时间:2013-03-06 06:47:04

标签: php mysqli

如何在同一列中选择不同的值并获取它们?

我有以下名为signup的数据库表:

+----+---------+--------------+
| ID | user_id | meta_key1    |
+----+---------+--------------+
|  1 |       1 |    d         |
|  2 |       1 |    f         |
|  3 |       1 |    c         | 
|  4 |       2 |    g         | 
|  5 |       3 |    1         |
+----+---------+--------------+

这是我的代码:

<?php
$sql="SELECT meta key1 FROM signup WHERE user_id='1' OR user_id='2'";
$result=@mysql_query($sql);
$num=mysql_num_rows($result);

while($row=mysql_fetch_array($num))
{
    echo $row['meta_key1'];
}
?>

我没有从此代码中获取输出,有时会出现此错误:

PHP Warning:  mysql_fetch_array() expects parameter 1 to be resource, integer given in ...

为什么我收到此错误?

3 个答案:

答案 0 :(得分:1)

应该是

while($row=mysql_fetch_array($result)) // your query object not num_rows object

并更改

echo $row['meta key1'];

echo $row['meta_key1'];

答案 1 :(得分:0)

无效的查询。它失败了,因为你的表中甚至没有sign_id字段

$sql="SELECT meta key1 FROM signup WHERE sign_id='1' OR sign_id='2' ";  // wrong field name

正确

$sql="SELECT meta_key1 FROM signup WHERE user_id='1' OR user_id='2' ";

答案 2 :(得分:0)

我认为你需要提出这个问题:

 $sql="SELECT meta_key1 FROM signup WHERE user_id = ? ";


如果您的用户正在连接,您需要比较他的meta_key1和他的插入,其中user_id