如何在两个查询之间进行选择

时间:2015-02-25 09:32:40

标签: php mysql

$user_query = mysql_query("select * from student where student_id='$session_id'") or die(mysql_error());
$user_query = mysql_query("select * from teacher where teacher_id='$session_id'") or die(mysql_error());
$user_row = mysql_fetch_array($user_query);
$params["nick"] = $user_row['firstname']." ".$user_row['lastname'];

我正在聊天论坛上,讲师和学生都可以访问该页面。 $params["nick"]是分配给根据session_id访问该网页的用户的名称。由于讲师和学生都可以访问该页面,我想在两个查询之间进行选择,这样如果是学生,则执行第一个查询,或者如果是讲师,则执行第二个查询。

2 个答案:

答案 0 :(得分:0)

目前你正在覆盖你的变量,所以总是从teacher表中获取它。

如果用户是教师或学生,您需要做的就是区分。

然后执行if声明。

if ($session_id >= 100000){
    $user_query = mysql_query("SELECT * FROM teacher WHERE teacher_id='$session_id'");
} else {
    $user_query = mysql_query("SELECT * FROM student WHERE student_id='$session_id'");
}

然后$user_query不会被覆盖,而是一个或另一个。

然后你可以做$user_row = mysql_fetch_array($user_query);

作为旁注:

不要再使用mysql_*了!这不是好代码!请查看mysqli_*PDO以及准备好的声明!

答案 1 :(得分:0)

这样做的一种不好的方法,但可以工作,因为在你进行查询之前,你听起来并不像是知道用户是教师还是学生。

$user_query = mysql_query("select * from student where student_id='$session_id'") or die(mysql_error());
$user_row = mysql_fetch_array($user_query);
if (mysql_num_rows($user_query) == 1) {
    $params["nick"] = $user_row['firstname']." ".$user_row['lastname'];
} else {
    $user_query = mysql_query("select * from teacher where teacher_id='$session_id'") or die(mysql_error());
    $user_row = mysql_fetch_array($user_query);
    if (mysql_num_rows($user_query) == 1) {
        $params["nick"] = $user_row['firstname']." ".$user_row['lastname'];
    }
}

如果我是你,我会创建一个具有用户ID的新表,如果是教师或学生则存储,然后将所有用户放在同一个表中。