2015-12-15 117 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