Im循環訪問一些mysql結果,並且需要將<span id=bottom></span>
添加到除最後一行之外的每個項目,最簡單的方法是什麼?將代碼應用於所有環形項目,但最後一個
我需要對行進行計數,然後使用計數器和if/else語句嗎?還是有更簡單的方法?
Im循環訪問一些mysql結果,並且需要將<span id=bottom></span>
添加到除最後一行之外的每個項目,最簡單的方法是什麼?將代碼應用於所有環形項目,但最後一個
我需要對行進行計數,然後使用計數器和if/else語句嗎?還是有更簡單的方法?
我不是PHP專家,但你可以把每一行放在一個數組中嗎?這樣才能知道長度,並且可以遍歷數組。
嘗試這樣:
$result = mysql_query($sql);
$list = array();
while($row = mysql_fetch_assoc($result))
{
$list[] = $row;
}
$lastItem = array_pop($list);
foreach($list as $item) {
echo sprintf('<span id="bottom">%s</span>', $item['value']);
}
// do something with the last item..
不是很短,但會做的伎倆。或者你可以做你的建議:
$result = mysql_query($sql);
$num = mysql_num_rows($result);
for($i = 0; $i < $num-1; $i++) {
$element = mysql_fetch_assoc($result);
// echo here..
}
$item = mysql_fetch_assoc($result); // fetch last item..
最良好的祝願, 費邊
刪除我的答案,因爲你的答案是一樣的,但是你先發布。 :d – jeffff 2009-12-05 02:15:20
$result = mysql_query($sql);
$list = array();
while($row = mysql_fetch_assoc($result))
$list[] = $row;
foreach(array_slice($list, 0, -1) as $item) {
echo sprintf('<span id="bottom">%s</span>', $item['value']);
}
// do something with the last item..
你能避免處理之前複製所有數據,如果你事先取一個記錄打印之前(或其他方式:處理先前提取的記錄)
foreach($pdo->query('SELECT x FROM foo') as $r) {
if (isset($row)) {
echo '<span>', $row['x'], '</span>';
}
$row = $r;
}
if (isset($row)) {
echo $row['x'];
}
html中的id字段應該是唯一的。考慮班級或名稱。 – Hogan 2009-12-05 02:04:49
是JavaScript或jQuery的選項? – 2009-12-05 02:15:13
你是什麼意思添加html到他們每個人? 它們剛剛被抓取? 他們在幾行,你必須追加一個字段到每一行? 是幾行,你必須包裝每一個? 你有沒有把所有的結果都包裹在一個單一的範圍內(這個解釋了id),但是最後一個? 請更清楚。 – Eineki 2009-12-05 02:26:56