Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用JOIN从两个表中获取数据_Php_Mysql_Join - Fatal编程技术网

Php 如何使用JOIN从两个表中获取数据

Php 如何使用JOIN从两个表中获取数据,php,mysql,join,Php,Mysql,Join,我的查询 $i=1 question **question_id question option1 option2 option3 option4** 15 AAA a1 a2 a3 a4 38 BBB b1 b2 b3 b4 39 CCC c1 c2 c3 c4 44

我的查询 $i=1

question
**question_id  question  option1 option2 option3 option4** 
    15          AAA         a1     a2      a3       a4
    38          BBB         b1     b2      b3       b4
    39          CCC         c1     c2      c3       c4
    44          DDD         d1     d2      d3       d4
    45          EEE         e1     e2      e3       e4

exam_question_list
**id**  **exam_paper_id** **category_id** **job_id**   **q1  q2  q3  q4  q5**
  1          1                    3         1            15  38  39  44   45 
$sql=“从考试问题列表中选择*
左连接问题qu1上的问题qu1。问题id=eq.q1
左连接问题qu2上的问题qu2。问题_id=eq.q2
左连接问题qu3上的问题qu3。问题id=eq.q3
左连接问题qu4上的问题qu4。问题_id=eq.q4
左连接问题qu5上的问题qu5。问题_id=eq.q5”;
$result=mysqli_查询($dbcon,$sql);?>

这只给出了最后一个问题(q5)。我想分别显示q1、q2、q3、q4、q5问题及其选项。如何做到这一点?

使用别名来区分问题表的每个实例。如果愿意,您可以将可选的
作为
关键字

 $sql="SELECT * FROM exam_question_list eq 
LEFT JOIN question qu1 ON qu1.question_id =eq.q1 
LEFT JOIN question qu2 ON qu2.question_id =eq.q2 
LEFT JOIN question qu3 ON qu3.question_id =eq.q3 
LEFT JOIN question qu4 ON qu4.question_id =eq.q4 
LEFT JOIN question qu5 ON qu5.question_id =eq.q5";

$result=mysqli_query($dbcon,$sql); ?>
    <table>

<?php 
    while($row = mysqli_fetch_array($result)){
?>
    <tr>
     <tr data-label="Question"><td><input name="q<?php echo $i++; ?>" value="<?php  echo $row['question'];?>" readonly /></td></tr>
      <tr data-label="Question"><td><input type="radio"  name="a" value="1"/><?php echo $row['option1']; ?></td></tr>
      <tr data-label="Question"><td><input type="radio"  name="a" value="2"/><?php echo $row['option2']; ?></td></tr>
      <tr data-label="Question"><td><input type="radio"  name="a" value="3"/><?php echo $row['option3']; ?></td></tr>
      <tr data-label="Question"><td><input type="radio"  name="a" value="4"/><?php echo $row['option4']; ?></td></tr>  

    </tr>   
<?php
    }
    ?>
</table>
来源

在获取选项

SELECT * FROM exam_question_list AS eq 
LEFT JOIN question AS qu1 ON qu1.question_id =eq.q1 
LEFT JOIN question AS qu2 ON qu2.question_id =eq.q2 
LEFT JOIN question AS qu3 ON qu3.question_id =eq.q3 
LEFT JOIN question AS qu4 ON qu4.question_id =eq.q4 
LEFT JOIN question AS qu5 ON qu5.question_id =eq.q5

看看[]第一季度到第五季度是从哪里来的?在第一个表中是否有列被命名为?外键(q1)引用问题(问题id),外键(q2)引用问题(问题id),外键(q3)引用问题(问题id),外键(q4)引用问题(问题id),外键(q5)引用问题(问题id),现在更新我的答案检查…可以举个例子,我不明白。如何使用'As'关键字,可以给出一些示例查询链接就可以了。但我仍然无法将所有的问题、选项都放到页面中,while循环中的错误是什么?我如何预览q1-q5所有5个带选项的问题。所以您也需要从问题表中获取所有问题?不是全部,问题,选项1,选项2,选项3,选项4从“问题”表尝试此代码
从问题中选择*作为q左键加入考试问题列表作为eq.q1=q.QUEST\U id和eq.q2=q.QUEST\U id和eq.q3=q.QUEST\U id和eq.q4=q.QUEST\U id和eq.q5=q.QUEST\U id
SELECT *,question.option1,question.option2,question.option3,question.option4 FROM exam_question_list AS eq 
LEFT JOIN question AS qu1 ON qu1.question_id =eq.q1 
LEFT JOIN question AS qu2 ON qu2.question_id =eq.q2 
LEFT JOIN question AS qu3 ON qu3.question_id =eq.q3 
LEFT JOIN question AS qu4 ON qu4.question_id =eq.q4 
LEFT JOIN question AS qu5 ON qu5.question_id =eq.q5