Php 通过设置mysql会话变量选择mysql表中的匹配数据?
我试图向登录的用户显示本地用户的列表。因此,如果登录会话用户的邮政编码为“m3 4”,而其他5个用户的邮政编码以“m3 4”开头,则这些用户将显示给用户 我的桌子是这样布置的:Php 通过设置mysql会话变量选择mysql表中的匹配数据?,php,mysql,Php,Mysql,我试图向登录的用户显示本地用户的列表。因此,如果登录会话用户的邮政编码为“m3 4”,而其他5个用户的邮政编码以“m3 4”开头,则这些用户将显示给用户 我的桌子是这样布置的: id | user_id | user_postcode 1 2 M3 4 2 3 SM2 7 3 4 M3 4 因此,在这个场景中,用户2将显示给登录的用户4,因为他们的邮政编码匹配 我正试图在mysq
id | user_id | user_postcode
1 2 M3 4
2 3 SM2 7
3 4 M3 4
因此,在这个场景中,用户2将显示给登录的用户4,因为他们的邮政编码匹配
我正试图在mysql中实现这一点,当我手动输入邮政编码时,它会起作用,如下所示:
AND ptb_stats.user_postcode='M3 4'
但是我试图使其特定于用户会话,因此如果登录的用户/$\u会话[user\u id']与其他用户具有相同的邮政编码
我试着这样做,但它显示了所有没有邮政编码的用户
function get_local_users() {
global $connection;
global $_SESSION;
$query = "
SELECT *
From ptb_stats, ptb_users
WHERE ptb_stats.user_id=ptb_users.id
AND ptb_stats.user_postcode='".$_SESSION['user_postcode']."'";
$local_set = mysql_query($query, $connection);
confirm_query($local_set);
return $local_set;
}
我认为这样做是因为“$\u SESSION['user\u postcode']没有设置,而且我没有将“$\u SESSION['user\u postcode']设置为变量或任何东西,因为我不知道如何做,但是“$\u SESSION['user\u id']设置为一个变量,因为这是我的一个朋友做的,他从来没有教过我怎么做。所以我不知道如何解决这个问题,我是否可以使用“$\u SESSION['user\u id']
我不能简单地向$\u会话['columnHere']添加任何列名吗
我已经在这方面工作了一天多了,我想不出来,我对php和mysql真的很陌生,我知道这似乎是一个愚蠢的问题,但请有人告诉我,因为我正在尝试各种各样的方法,但却一无所获。php和SQL是不同的语言。您正在使用PHP生成SQL代码,但仅此而已。因此,归根结底,重要的是
$query
包含什么。只要检查一下它的价值
var_dump($query);
。。。并使用您最喜欢的MySQL客户端运行生成的SQL代码。这将告诉您错误在哪里
事实上,我们可以看到global$\u会话代码中的code>表明这是您第一次尝试会话。最有可能的情况是,会话甚至不起作用-可能您忘记了session\u start()
-并且$\u session['user\u postcode']
正在触发此通知:
Notice: Undefined variable: _SESSION
要查看此类通知,您需要在PHP中配置完整的错误报告。这是一个例子
另外,我建议。您为什么声明global$\u会话
?您正在尝试获取会话变量$\u session['user\u postcode']
?是在别的地方吗?。。。旁注:mysql.*
函数已被弃用。请参阅以了解更多详细信息。我实际上不需要全局$session,我只是将它设置为int以进行双重检查。我只是想告诉查询,如果登录/$\u会话['user\u id']的用户(设置为变量)有自己的“user\u postcode”——这是我的表中的一列,那么它应该显示具有相同邮政编码的所有匹配用户