mysqli_fetch_array(mysqi_query($db, $query))不会出现越来越从数据库中正确的信息,因此,PHP应用程序不工作,因为它应该。

下面是查询,

<?php
if($_GET){
$current = mysqli_fetch_array(mysqli_query($db, "SELECT * from `tbl_user` WHERE `userid` = '".$_GET['userid']."'"));
$currentperms  = mysqli_fetch_array(mysqli_query($db, "SELECT * from `tbl_perms` WHERE `userid` = '".$_GET['userid']."'"));
} 
?>

同时,if ($current['userid'] == "1") {echo(" selected ");}不输出任何东西,所以在SELECT标签未选择正确的选项。

所以,凡:我期望:     回波($ currentperms [ 'NEWAPP']); 不等于1,原因是其是在数据库中设置的话,其结果是“1”。我有呼应获得的字符串进行测试。 NEWAPP不在表中的列任一,因此它不应该被返回“1”作为结果。

通过这样的:

 if $current['userid'] == "1") {
 echo(" selected ");
 }

没有被回荡,但是,可变已经在脚本先前使用,并且其输出为“1”。

请帮我,我会通过屋顶:|

@sasa:输出: 成功!阵列([0] => 1 [用户ID] => 1 [1] => shamil.nunhuck [用户名] => shamil.nunhuck [2] =>沙米尔Nunhuck [userfullname] =>沙米尔Nunhuck [3] = > shamil.nunhuck@localhost [USEREMAIL] => shamil.nunhuck@localhost [4] => 6363d731bd7492fe4c33fc3d90fd61bc [userPassword的] => 6363d731bd7492fe4c33fc3d90fd61bc [5] => 1 [用户级] => 1 [6] =>管理员[usertitle] = >管理员[7] => 1 [TOS] => 1)阵列([0] => 1 [用户ID] => 1 [1] => 0 [ptodo] => 0 [2] => 0 [usercp] => 0 [3] => 0 [PM] => 0 [4] => 0 [错误] => 0 [5] => 0 [abug] => 0 [6] => 0 [admincp] => 0 [7] => 0 [intmgs] => 0 [8] => 0 [adduser的] => 0 [9] => 0 [通过] => 0 [10] => 0 [USEREDIT] => 0 [ 11] => 0 [LISTUSER] => 0 [12] => 0 [NEWAPP] => 0)

有帮助吗?

解决方案

试试这个代码:

//  I put some echo for testing
if(!empty($_GET['id'])) {
    $id = (int)$_GET['id'];
    $sql = mysqli_query($db, "SELECT * from tbl_user WHERE userid = $id LIMIT 1");
    if(mysqli_affected_rows($db) == 0) {
        echo "There is no user with that id";
    } else {
        $current = mysql_fetch_assoc($sql);
        $currentperms  = mysql_fetch_assoc(mysqli_query($db, "SELECT * from tbl_perms WHERE userid = $id"));
        echo "Success!";
        // Or try to print result
        print_r($current);
        print_r($currentperms);
    }
} else {
    echo "There is no user id";
}

或者只是一个语法错误:

  

通过这样的:

 if $current['userid'] == "1") {
 echo(" selected ");
 }

它应该是:

if($current['userid'] == 1) {
    echo(" selected ");
}

其他提示

如果该问题是,数据库返回不正确的信息,它可能最好你只是职位的代码(特别是查询),目前的结果的MySQL的部分,你希望看到什么样的结果。

也仅供参考,我希望你之前直接排放到查询解析您的$ _GET和$ _POST瓦尔。路过他们直入这样的SQL是不是一个好主意。

我不知道我按照问题100%,但你似乎是说,$current['userid'] == "1"的结果是假的,尽管$current['userid']打印出为“1”,是否正确?

如果是那样的话,有可能有一些空格或其他垃圾进入引起的比较失败的值,但我怀疑这就是如果userid是由数据库自动生成的情况。

可以通过更彻底地检查值,e.g验证这一点。

var_dump( $current['userid'] ); // Check for whitespace
echo strlen( $current['userid'] ); // Is this greater than 1?
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top