我八方通落得這樣如何從MySQL查詢
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r){
/* iterate just one withem */
$j = $i['whatIwant'];
}
echo $j;
這是怎麼完成的,通常只取一排? (我只是想避免不必要的循環)
我八方通落得這樣如何從MySQL查詢
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r){
/* iterate just one withem */
$j = $i['whatIwant'];
}
echo $j;
這是怎麼完成的,通常只取一排? (我只是想避免不必要的循環)
除了正確的答案,有多種方法來處理這個問題:
如果添加LIMIT 1
,結果集將只包含一行,並且while
循環將在一次迭代後終止:
$q = "select whatIwant FROM table where id = 'myId' LIMIT 1";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
}
echo $j;
如果調用mysql_fetch_array
沒有一個循環,你會得到的結果集的第一行:
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
$j = $i['whatIwant'];
echo $j;
如果添加break
循環體,循環將一個迭代後終止。
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
break;
}
echo $j;
您也可以將這些方法(雖然使用break
是不是真的優雅在這種情況下)。
最好的方法是使用LIMIT
並省略while
循環,因爲@zaf shows in his answer。這使得代碼更清晰並避免了數據庫中不必要的操作。
添加LIMIT X, Y
其中X是你的起始行和Y是返回
//will always return 1 row. note your orders
$q = "SELECT whatIwant FROM table WHERE id = 'myId' limit 0, 1";
選擇whatIwant FROM表其中id = 'MYID' LIMIT 1;
select whatIwant FROM table where id = 'myId' limit 1
好,然後離開了循環:
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
$j = $i['whatIwant'];
echo $j;
這將只取第一行。
您可以使用'LIMIT'語法指定sql查詢中的行數。另外,你可以刪除while循環,並得到第一行返回 - 如果這就是你想要的。
例如(無返回值檢查):
$q = "select whatIwant FROM table where id = 'myId' LIMIT 1";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
print_r($i);
mysql_fetch_assoc()
正是你要找的。
$sql224="select * from z_category order by id asc LIMIT 1";
$res224=mysql_query($sql224);
$rw224=mysql_fetch_array($res224);
$activeid2= $rw224['pkid'];
歡迎堆棧溢出!儘管這段代碼片段是受歡迎的,並且可能會提供一些幫助,但它會[如果它包含解釋](/ meta.stackexchange.com/q/114762)* [如何解決該問題,將會大大改進]。沒有這些,你的答案就沒有什麼教育價值了 - 記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 – 2017-05-09 13:08:52