id | str1 | str2 |
---|---|---|
1 | saa | bbb |
2 | saa | bbc |
3 | sss | 123 |
要求:無重複列出“str1”段的內容。
本來是很簡單的也就幾行搞定,但我覺得代碼還可以壓縮一下,這樣看起來比較濃縮,於是杯具就發生了,錯誤代碼如下:
<?php
mysql_select_db("test", mysql_connect("localhost","******","******"));
while($row = mysql_fetch_array(mysql_query("SELECT DISTINCT str1 FROM table1")))
{
echo $row['str1'];
echo "<br>";
}
?>
第一眼看出其中的問題了麼?這貨居然引發了死循環。。。T_T
於是我又一步一步還原,死循環又不見了。顯然不是提交語句的問題,應該是語法結構出問題了。
果然,問題出在while裏。每次檢測成立條件的時候都會執行一次mysql_query。然後就杯具了。
只要保證mysql_query僅執行一次就好,正確代碼如下:
<?php
mysql_select_db("test", mysql_connect("localhost","******","******"));
$result = mysql_query("SELECT DISTINCT str1 FROM table1");
while($row = mysql_fetch_array($result))
{
echo $row['str1'];
echo "<br>";
}
?>
優化代碼,萬惡之首……各位淡定,淡定!