0
我想顯示一個結果需要兩個以前的查詢;而當我試圖用新的Mysqli界面來做這些事情時,我不會以正確的方式工作。使用幾個MYSQLI準備並獲取
我都這樣了,輸出是:警告:mysqli的準備::()[mysqli.prepare]:新的語句之前準備的所有數據都必須取出發生
$qryRdmPh="SELECT `id` FROM `table` ORDER BY RAND() LIMIT 0,30";
$stmtRdmPh = $mysqli->prepare($qryRdmPh);
$stmtRdmPh->execute();
$stmtRdmPh->bind_result($id);
while($stmtRdmPh->fetch()) {
//Obtener el atributo Frase
$qryPhVal="SELECT `id_v` FROM `values` WHERE `id_p`='" . $id . "'";
$stmtPhVal = $mysqli->prepare($qryPhVal);
$stmtPhVal->execute();
$stmtPhVal->bind_result($idV);
while($stmtPhVal->fetch()){
echo $idV;
}
}
必須有是另一種顯示沒有如此複雜規則的結果的方式......我讀過使用Statement查詢非常重要,但爲什麼?它使我的代碼更長更復雜。
編輯:我真的很感謝,如果有人介紹我,如果報表是爲說如此重要,如果我要經常使用它們。
無論何時您正在執行嵌套查詢,其中內部查詢根據外部查詢的結果獲取內容時,應嚴格考慮使用[SQL連接](http://en.wikipedia.org/wiki/Join_ %28SQL%29) –
@MarcB在這種情況下,我需要由第一個查詢返回的每個SINGLE ID的結果集合。我不認爲我可以在那裏做任何參加。 – Kenedy
是嗎?任何兩個嵌套查詢都可以做,聯合查詢可以做得更好。 '從表中選擇id左連接值values.id_p = table.id order by rand()limit 0,30'。 –