在MYSQL中查询WHERE

时间:2014-03-18 21:02:06

标签: php mysql

我有两个MySQL表。一个名为members,名为users。另一个名为sex,有两列:user_ssex。 我正在尝试创建一个由成员表中的所有用户组成的数组   1)在性别表中2)在性别栏中选择“男性”。

当我print_r此数组时,即使我看到有符合这些条件的用户,也不会显示任何内容。有什么想法吗?

<?php 
 // test.php
include_once("header.php");
$iaminterestedin = "men"; 
$result = queryMysql("SELECT `user` FROM `members`
                WHERE `user` IN(SELECT `user_s` FROM `sex` WHERE sex='$iaminterestedin')"); 

$combination = array();
while(($row = mysql_fetch_assoc($result)))
{    
$combination = $row['user'];
}
print_r($combination);
?>

3 个答案:

答案 0 :(得分:1)

您应该使用$combination[] = $row['user']向组合添加值,否则您将始终在每次循环迭代时覆盖值

您还应该阅读有关JOIN表的内容,这将对您提供很多类似的查询。例如,您将使用:

SELECT user FROM members INNER JOIN sex ON sex.user_s = members.user
WHERE sex '$iamintererstedin'

如果您将性别中的外键(http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html)添加到用户,这将提高查询性能,当它变大并且时间成为问题时

答案 1 :(得分:1)

尝试替换

$combination = array();

使用

$combination[] = $row['user'];

这是插入到数组中的方法:

答案 2 :(得分:0)

我更换了$ combination = $ row ['user'];

$ combination [] = $ row ['user'];

这就是诀窍。