如何从数据库PHP中的两个表中随机选择列

时间:2016-06-12 12:53:40

标签: php mysql

我想阅读toefl测试。我有两个名为'id_reading'和'soal_reading'的表。 id_reading表包含id和text。 soal_reading包含id,question,option a b c d和answer。所以我想显示那些表中的数据。但我想在soal_reading表中随机显示除id列之外的所有列。我尝试但它不会随机。请帮忙。

<?php 
        include "conection.php";

    $query = mysql_query("
    SELECT id_reading.id
         , text
         , id_reading.text
         , soal_reading.pertanyaan
         , a
         , b
         , c
         , d
         , jawaban 
      from id_reading
          , soal_reading 
      where id_reading.id = soal_reading.id
      ");
           if ($query) {
               while ($row = mysql_fetch_array($query)) {
                   echo "
                     <tr>
                       <td>".$row['id']."</td>
                       <td>".$row['text']."</td>";
                       $q = mysql_query("SELECT * from soal_reading order by rand()");
                       if ($q) {
                        while ($r = mysql_fetch_array($query)) {
                          echo "
                                <td>".$r['pertanyaan']."</td>
                                <td>".$r['a']."</td>
                                <td>".$r['b']."</td>
                                <td>".$r['c']."</td>
                                <td>".$r['d']."</td>
                                <td>".$r['jawaban']."</td>
                                <td>
                                 <a href=\"edit_reading.php?id=".$row['id']."\">Edit</a> |
                                 <a href=\"hapus_reading.php?id=".$row['id']."\">Delete</a>
                                </td>
                          </tr>";
                           }
                        }
                   }
           }
?>

1 个答案:

答案 0 :(得分:0)

您的查询以随机方式设置问题但不是问题中的字段。因此,如果您有3个问题,例如Q1,Q2,Q3,则会以随机方式排序,而不是字段。

我建议您将$r['a'] .... $r['d']放入数组中,然后从0 to count($array)中提取一个数字以获得可能的答案,并从数组中删除该元素。这样做直到提取所有可能的答案。 (count($array)==0)

总之,您的查询为您提供了问题的随机顺序,在PHP中,您可以随机输入您的字段。

对于某些代码,请发表评论。 再见