从多个表中获取具有相同名称的列

时间:2016-08-14 11:34:08

标签: php html mysql sql mysqli

我有两张桌子: 用户(身份证,姓名,电子邮件,密码) 问题(id,用户ID,类型,问题,日期,时间)

我必须将questions.id的值作为qid传递。 我无法使用以下代码获得所需的结果。而不是采取' id' QUESTIONS表的值,它取的是' id' USERS表的值,以及产生错误输出的产品。     

$query = "
SELECT *
     , q.id qid 
  FROM questions q
  JOIN users u
    ON u.id = q.userid 
 WHERE type = 'technical' 
 ORDER 
    BY date
     , time DESC
 ";
$result = mysqli_query($conn,$query);
while ($row = mysqli_fetch_array($result)) {

$id = $_SESSION['id'];  
$ques=$row['question'];
$user = $row['username'];

    echo strtoupper($user);

    echo "<a href='allview.php?qid=$row[id]' class='class4'> $ques </a>";

}
?>

3 个答案:

答案 0 :(得分:0)

此代码:

$id = $_SESSION['id'];  

id中的select列。 id来自用户表。

您已将问题ID重命名为qid,因此请尝试:

$qid = $_SESSION['qid'];

建议:只获取您实际要使用的列:

SELECT u.username, q.id as qid
FROM questions q JOIN
     users u
     ON u.id = q.userid
WHERE type = 'technical' 
ORDER BY date, time DESC;

*在调试时非常方便,但由于基础表结构发生变化,代码可能会在某些时候出现意外行为。

答案 1 :(得分:0)

尝试使用此代码

$query = "
SELECT *
     , q.id AS qid,
       q.id AS id
  FROM questions q

答案 2 :(得分:0)

尝试使用此

$query = "
SELECT *
     , questions.id qid 
  FROM questions q
  , users u
 WHERE q.userid = u.id
 AND type = 'technical' 
 ORDER 
    BY date
     , time DESC
 ";
相关问题