PHP - 循环两列,一次一个

时间:2014-02-05 01:22:51

标签: php mysql

我有几个问题和答案存储在同一个表中。 Q栏和A栏。

----ID----Q----A----
   1   |  Q1  | A1 |
   2   |  Q2  | A2 |
   3   |  Q3  | A3 |

我希望将所有问题都回显到div滑块,并将所有问题回答到另一个div滑块。

这样的事情:

<div>
<ul>
<li>Question 1</li>
<li>Question 2</li>
<li>Question 3</li>
</ul>
</div>

<div>
<ul>
<li>Answer 1</li>
<li>Answer 2</li>
<li>Answer 3</li>
</ul>
</div>

我选择所有行按RAND排序,否则我会再次运行选择(n00b样式)。 如何执行此循环,从第一列开始继续正确的顺序? 我在PHP方面的知识非常有限。

代码(我以前如何打印表格):

<ul id="fade">
<?php
$num = "100";
$questions = "SELECT * FROM quiz ORDER BY RAND() LIMIT $num";


$result = mysql_query($questions, $dbconnection);

for ($i=0; $i < mysql_num_fields($result); $i++) {
$rank = 1;
}

  while($myRow = mysql_fetch_array($result)){
  echo "<li>" .$myRow['q']. "</li>";
  echo "<li>" .$myRow['a']. "</li>";
  rank++;       
  }
  ?>
  </div>

2 个答案:

答案 0 :(得分:1)

您可以这样做:

$q = "";
$a = "";
while($myRow = mysql_fetch_array($result))
{
  $q .= "<li>" .$myRow['q']. "</li>";
  $a .= "<li>" .$myRow['a']. "</li>";
}

echo "<div><ul>$q</ul></div>";
echo "<div><ul>$a</ul></div>";

答案 1 :(得分:1)

而不是echo他们马上就可以将问题添加到一个数组中并将答案添加到另一个数组中:

$questions = Array();
$answers = Array();

while($myRow = mysql_fetch_array($result)){
  $questions[] = $myRow['q'];
  $answers[] = $myRow['a']; 
 }

然后构建ul s:

foreach($question as $q){
    echo "<li>" . $q . "<li>";
}

...

foreach($answer as $a){
    echo "<li>" . $a . "<li>";
}

根据您的需要进行类似的事情。