Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
myPHP If语句始终以int number作为true启动_Php - Fatal编程技术网

myPHP If语句始终以int number作为true启动

myPHP If语句始终以int number作为true启动,php,Php,我正在尝试查询我的数据库,以获得一个1或0的结果。用户当前已登录,如果结果返回为0,我希望将用户重定向到另一个页面,但如果返回的结果为1,则我希望执行其余代码 由于某种原因,我收到的结果似乎总是0 非常感谢您的建议。您需要从行中获取值,然后进行比较: $q = "SELECT currentlevel FROM users WHERE users={$_SESSION[user_id]}" ; $r = mysqli_query( $link, $q ) ; if ($r == 0) {

我正在尝试查询我的数据库,以获得一个1或0的结果。用户当前已登录,如果结果返回为0,我希望将用户重定向到另一个页面,但如果返回的结果为1,则我希望执行其余代码

由于某种原因,我收到的结果似乎总是0


非常感谢您的建议。

您需要从行中获取值,然后进行比较:

$q = "SELECT currentlevel FROM users WHERE users={$_SESSION[user_id]}" ;
$r = mysqli_query( $link, $q ) ;
if ($r == 0)
{
    header("Location: EXAMPLE-WEBSITE.co.uk");
}
else{

最简单的方法是通过添加
和currentlevel=0
在SQL语句中创建条件,然后检查查询是否返回true:

$currentLevel = 1;
$res = $link->query($query) or die($link->error);

if ($row = $res->fetch_object()) {
    $currentLevel = $row->currentlevel;
}

if ($currentLevel == 0) {
    // It's 0
} else {
    // Non-zero or no record found
}

$r是查询的成功(或否),而不是itSo返回的值。因此,我需要如何创建一个变量来存储从数据库返回的值,然后在if语句中使用它来比较它是1还是0?…但是混合和匹配面向对象接口和过程接口不是好的做法。哦,我不知道对于像你这样的代表来说,看到你回答“最佳”实践会很好。谢谢你的jspcal,但我想我可能理解了(对不起,我是新来的)。我正在尝试那个代码,但我还是遇到同样的问题?在你的代码上还有什么我需要做的吗?请尝试
var\u dump($row)
来验证记录
$q = "SELECT currentlevel FROM users WHERE users = {$_SESSION[user_id]} AND currentlevel = 0";
if ( mysqli_query( $link, $q ) ) { //rows returned, currentlevel = 0
    header("Location: EXAMPLE-WEBSITE.co.uk");
}
else { //no rows returned