2013-04-17 92 views
0

我有2個查詢。 我正在應用第一個select查詢,並使用my_fetch_array通過while循環獲取結果,但是,在此期間,我正在使用另一個select查詢,但是在那時我收到一個錯誤。錯誤while while循環中使用mysql查詢獲取以前的查詢

我不能在這段時間內使用另一個選擇嗎?

$i = 1; 
$result1 = mysql_query("SELECT x, count(*) FROM table1 group by x ORDER BY count(*) desc"); 

while ($rowRes1= mysql_fetch_array($result1)) 
{ 
echo "<tr>"; 
echo "<td ALIGN=CENTER style=width:5%>" . $i . "</td>"; 
echo "<td ALIGN=CENTER style=width:40%>" . $rowRes1['0'] . "</td>"; 
echo "<td ALIGN=CENTER style=width:10%>" . $rowRes1['1'] . "</td>"; 

$result2 = mysql_query("SELECT x FROM data where x = $rowRes1['0'] ORDER BY y ASC LIMIT 1") 

while ($rowRes2= mysql_fetch_array($result2)) 
{ 
echo "<td ALIGN=CENTER style=width:10%>" .  $rowRes2['0'] . "</td>"; 
} 
$i++; 
} 
+4

一般提示:如果你得到一個錯誤,告訴我們錯誤是什麼。第二個查詢中的$ rowRes1 ['0']'是一個PHP語法問題 - 你不能在這樣的雙引號字符串中使用帶引號的數組鍵。你也生成可怕的HTML。 'CETER'不是有效的對齊值,並且您的樣式沒有引用。您的兩個查詢也可以輕鬆地重寫爲單個查詢。 –

+0

錯誤#1:在新代碼中使用'mysql_query'。不要這樣做。這是一個已被棄用的界面,將在未來版本的PHP中被刪除。如果可以,請使用[PDO](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。錯誤#2:錯誤[SQL轉義](http://bobby-tables.com/php)。 – tadman

+0

@MarcB非常感謝您的反饋。我是一名PHP新手,剛剛開始。 CENTER對齊值是一個得到糾正的錯字。我還修復了雙引號內的引用數組鍵。然而,你可以在單個查詢中寫兩個查詢(如果可能的話),因爲我想用它作爲參考。 – tony9099

回答

1

PHP無法在雙引號字符串中解釋包含數組訪問器的字符串,如$ rowRes1 ['1']。

將數據存儲在另一個變量中,如$ rowRes1Col = $ rowRes1 ['0'];並在字符串中使用它。

+0

這就是我做了什麼,它的工作。 – tony9099