Php MYSQL中的WHERE查询

Php MYSQL中的WHERE查询,php,mysql,Php,Mysql,我有两个MySQL表。一个名为members,有一个名为users的列。另一个叫做sex,有两列:user_和sex。 我正在尝试创建一个数组,该数组由members表中 1人在性别表中,2人在性别栏中选择了男性 打印此数组时,不会显示任何内容,即使我可以看到有符合这些条件的用户。有什么想法吗 <?php // test.php include_once("header.php"); $iaminterestedin = "men"; $result = queryMysql("SE

我有两个MySQL表。一个名为members,有一个名为users的列。另一个叫做sex,有两列:user_和sex。 我正在尝试创建一个数组,该数组由members表中 1人在性别表中,2人在性别栏中选择了男性

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

<?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);
?>

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

您还应该阅读一些关于联接表的内容,这将对您处理类似的查询有很大帮助。例如,您将使用:

SELECT user FROM members INNER JOIN sex ON sex.user_s = members.user
WHERE sex '$iamintererstedin'
如果您向用户添加sex的外键,当它变得更大且时间成为问题时,这将提高查询性能

尝试替换该行

$combination = array();


这是插入数组的方法:

我替换了$combination=$row['user']

$composition[]=$row['user']


这就成功了。

什么是queryMysql?你是说mysql\u查询吗?queryMysql执行mysql\u查询。当我包含header.php时,它作为一个全局函数包含。这部分工作正常-我已经测试过了。如果您像在SELECT user_s FROM sex WHERE sex='men'中的SELECT user FROM members WHERE user中的SELECT user那样运行它,它在数据库中工作吗?在您的QUERYMSQLQUERY函数中,当您打印查询时,您看到了什么?我想在函数中发生的字符串内替换可能看不到$iaminterestedin,但更好的方法是使用准备好的语句并传入$iaminterestedin作为参数。Jason,我认为在发送到queryMysql函数之前,$iminterestedin将被替换。var不应该在非IDE queryMysql的情况下使用,无论如何,mysql已经被弃用,您应该开始使用mysqli,所以这是真的,但我怀疑这是OP遇到的第二个问题。
$combination[] = $row['user'];