Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过设置mysql会话变量选择mysql表中的匹配数据?_Php_Mysql - Fatal编程技术网

Php 通过设置mysql会话变量选择mysql表中的匹配数据?

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

我试图向登录的用户显示本地用户的列表。因此,如果登录会话用户的邮政编码为“m3 4”,而其他5个用户的邮政编码以“m3 4”开头,则这些用户将显示给用户

我的桌子是这样布置的:

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会话表明这是您第一次尝试会话。最有可能的情况是,会话甚至不起作用-可能您忘记了
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”——这是我的表中的一列,那么它应该显示具有相同邮政编码的所有匹配用户