2015-12-15 80 views
0

我有一个问题从表'问题'中选择问题,随机化它,只选择15个问题。我想出了下面的查询,这不是我希望的。随机,查询,限制

$singleSQL = mysql_query("SELECT * FROM questions WHERE id='$question' ORDER BY RAND() LIMIT 1"); 

    while($row = mysql_fetch_array($singleSQL)) 
    { 
     $id = $row['id']; 
     $thisQuestion = $row['question']; 
     $type = $row['type']; 
     $question_id = $row['question_id']; 
     $q = '<h2>'.$thisQuestion.'</h2>'; 

     $sql2 = mysql_query("SELECT * FROM answers WHERE question_id='$question' ORDER BY rand()"); 
     while($row2 = mysql_fetch_array($sql2)) 
     { 
      $answer = $row2['answer']; 
      $correct = $row2['correct']; 
      $answers .= '<label style="cursor:pointer;"><input type="radio" name="rads" value="'.$correct.'">'.$answer.'</label> 
      <input type="hidden" id="qid" value="'.$id.'" name="qid"><br /><br /> 
      '; 

     } 
     $output = ''.$q.','.$answers.',<span id="btnSpan"><button onclick="post_answer()">Submit</button></span>'; 
     echo $output; 
     } 
    } 
+0

,如果你有连基本的错误处理,你会被告知关于你的第一个查询中的语法错误。永远不要成功。总是检查错误:'mysql_query(...)或die(mysql_error());' –

+0

'ORDER BY'在WHERE子句之后,而不是之前。 RT * M http://dev.mysql.com/doc/refman/5.7/en/select.html –

+0

感谢您的关注,先生,看来我在输入查询时犯了一个粗心的错误,它会尽量避免它下次。 – user3286777

回答

-2
"SELECT * FROM questions ORDER BY RAND(), WHERE id='$question' LIMIT 1" 

替换:

"SELECT * FROM questions WHERE id='$question' ORDER BY RAND() LIMIT 1" 
+0

从表格中提出的问题不能随机化,我用你已经分享的查询替换后,我想知道它出错的地方... – user3286777

+0

它只从表中选择一个记录,也用于特定的问题ID。所以可能只有一个记录带有表中的问题ID。 –

+0

我理解它与表中的id匹配的部分,但它仍然让我感到困惑,'rand by()'应该完美运行,但它仍然不显示任何我想要的结果,我的第一个查询在我之前把'订单由rand()'是 mysql_query(“SELECT * FROM questions where'='$ question'LIMIT 1”); – user3286777