查询在使用PHP时只返回一行

时间:2015-06-10 08:34:07

标签: php mysql

大家好,我有以下PHP代码。它的目的是从seviral组管理员,会计师ets中选择用户。问题是我只从一个组获得用户。但是想要全部选择它们。

<?
include 'connect/connect.php';
class Model_authorization extends Model
{
    public function get_data()
    {    
        $connect=new createCon();
        $login = "SELECT id, Email, Passwords
                FROM user u
                INNER JOIN user_GroupUser ug ON u.ID = ug.User_id
                WHERE ug.group_id in(1,2)
                ";
        $k= mysqli_query( $connect->connect(),$login);
            if (!$k) {
                echo 'MySQL Error: ' . mysqli_error();
                exit;
             }
             $data = mysqli_fetch_assoc($k);
echo var_dump($data);
             if ($_POST){
            if($data['Passwords'] === ($_POST['Pass']) &&  $data['Email'] === ($_POST['Email']))
            {

                //setcookie($data['id']);
               // header("Location: main_view.php"); exit();
                return array(
                        'Year' => $data['id']
                    // todo
                );
            }
            else {
                return array(
                        'Year' => 0

                    // todo
                );
            }
                }
    }
}
?>

我已经使用phpmyadmin检查了查询,并且它正常工作。所以我认为问题出在我的PHP代码中。但无法弄清楚在哪里。

3 个答案:

答案 0 :(得分:2)

private long lastTouchDown; private static int CLICK_ACTION_THRESHHOLD = 200; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastTouchDown = System.currentTimeMillis(); break; case MotionEvent.ACTION_UP: if (System.currentTimeMillis() - lastTouchDown < CLICK_ACTION_THRESHHOLD) { Log.w("App", "You clicked!"); } break; } return true; } 返回一行的关联结果。见here

你需要做这样的事情:

mysqli_fetch_assoc

将为您提供一组查询结果的关联数组。

答案 1 :(得分:0)

您目前只获取结果集中的第一行。 mysqli_fetch_assoc仅根据fetch-assoc man page返回一行,因此您需要一个循环来实际查看所有结果。

答案 2 :(得分:0)

您的查询返回了多少行? 如果您必须浏览多行,则应执行以下操作:

while ($data = $result->fetch_assoc()) {
    //do your stuff
}