dongtun1683 2015-12-06 19:36 采纳率: 0%
浏览 70
已采纳

如何从一个数据库中的多个表中获取多个值?

i have a serious problem!

I want to use different values from different tables in my database. My tables:

users

user_id | name | email | password | color | created

parents

parent_id | email | password

So, i want to connect these tables with email col. But passwords cols are different.

Here is my code:

        $_SESSION['logged_in2'] = false;
    if( !empty( $data ) ){

        // Trim all the incoming data:
        $trimmed_data = array_map('trim', $data);

        // escape variables for security
        $email = mysqli_real_escape_string( $this->_con,  $trimmed_data['email'] );
        $password = mysqli_real_escape_string( $this->_con,  $trimmed_data['password'] );

        if((!$email) || (!$password) ) {
            throw new Exception( PARENTS_FIELDS_MISSING );
        }
        $password = md5( $password );

        $query = "SELECT parent_id, email FROM parents where email = '$email' and password = '$password' union all SELECT name FROM users ";
        $result = mysqli_query($this->_con, $query);
        $data = mysqli_fetch_assoc($result);
        $count = mysqli_num_rows($result);
        mysqli_close($this->_con);
        if( $count == 1){
            $_SESSION = $data;
            $_SESSION['logged_in2'] = true;
            return true;
        }else{
            throw new Exception( PARENTS_FAIL );
        }
    } else{
        throw new Exception( PARENTS_FIELDS_MISSING );
    }

How can i use these tables in one code? Please help! By the way, the error is this:

mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given

  • 写回答

1条回答 默认 最新

  • dongzhouzhang8696 2015-12-06 19:41
    关注

    Perhaps use a combined query(join) like this :

    select a.*, b.* from table users as a join parents as b on a.email = b.email where a.email = "$email" and a.password = "$password"
    

    updated :

    SELECT b.user_id, a.email, b.email as parent_email, a.name, a.color, b.password as parent_password FROM users AS a INNER JOIN parents AS b ON a.email = b.email WHERE b.email = '$email' AND b.password  = '$password' ;
    
    $email = mysqli_real_escape_string( $this->_con, $trimmed_data['parent_email'] );
    $password = mysqli_real_escape_string( $this->_con, $trimmed_data['parent_password'] ); 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源