$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
访问该网页的用户的名称。由于讲师和学生都可以访问该页面,我想在两个查询之间进行选择,这样如果是学生,则执行第一个查询,或者如果是讲师,则执行第二个查询。
答案 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的新表,如果是教师或学生则存储,然后将所有用户放在同一个表中。