$res = mysql_query();
while($row = mysql_fetch_array($res))
{
echo $row['lala'];
}
То есть мне надо вывести все записи, но для последней применить особый стиль.
Пока есть мысль сделать подсчет через mysql_num_rows(); А потом считать через ++$i, пока не доберусь до последней, но так как слишком часто стал вопрос обращения именно к последней записи, интересуюсь, может есть более правильный способ?
Спустя 36 минут, 29 секунд (6.04.2011 - 07:37) ИНСИ написал(а):
inpost можно через foreach обойти цикл, примерно так:
$count = sizeof($rows);
foreach($rows as $key => $data) {
if($key == $count) {
// последняя запись
}
}
Спустя 3 минуты, 22 секунды (6.04.2011 - 07:41) inpost написал(а):
velbox
Тот же самый цикл и тот же самый подсчет. Может есть штатная функция для мускула?
Тот же самый цикл и тот же самый подсчет. Может есть штатная функция для мускула?
Спустя 20 минут, 22 секунды (6.04.2011 - 08:01) ИНСИ написал(а):
inpost штатной функции, для того чтобы узнать последнюю запись кажется нет. Можно лишь вычислением это узнать.
Спустя 43 минуты, 6 секунд (6.04.2011 - 08:44) kirik написал(а):
Вот такой вот какашкокод получился B)
Красивее наверное всё таки с mysql_num_rows выйдет (но зато лишний вызов функции) :)
UPD
Даже так:
Почти идеально :)
while(1)
{
if(!$row = mysql_fetch_array($res)) {
echo 'last: ' . $prow['blabla'];
break;
}
if(isset($prow)) {
echo $prow['blabla'];
}
$prow = $row;
}
Красивее наверное всё таки с mysql_num_rows выйдет (но зато лишний вызов функции) :)
UPD
Даже так:
while(1) {
$row = mysql_fetch_array($res);
if(isset($prow)) {
if($row) {
echo $prow['blabla'];
} else {
echo 'last: ' . $prow['blabla'];
break;
}
}
$prow = $row;
}
Почти идеально :)
Спустя 1 час, 4 минуты, 37 секунд (6.04.2011 - 09:49) YVSIK написал(а):
вот небольшой списочек
может пригодится
может пригодится
Спустя 10 минут, 27 секунд (6.04.2011 - 09:59) inpost написал(а):
YVSIK
Лучше уж смотреть на php.net =)
Лучше уж смотреть на php.net =)
Спустя 1 час, 41 минута, 52 секунды (6.04.2011 - 11:41) Trianon написал(а):
$ses = mysql_query($sql) or die("error in $sql <br> ".mysql_error());
if($row = mysql_fetch_assoc($res)) do
{ $next = mysql_fetch_assoc($res);
// здесь тело цикла
// признак последней строки --- !$next
}while($row = $next);
еще вариант:
$ses = mysql_query($sql) or die("error in $sql <br> ".mysql_error());
for($row = mysql_fetch_assoc($res); $row; $row = $next)
{ $next = mysql_fetch_assoc($res);
// здесь тело цикла
// признак последней строки --- !$next
}
Спустя 24 минуты, 15 секунд (6.04.2011 - 12:05) dima4321 написал(а):
$res = mysql_query();
while($row = mysql_fetch_array($res))
{
if($row['lala']<count($row)-1)
{
echo $row['lala'];
}
else
{
echo $row['lala']; // и выделение
}
Спустя 38 минут, 45 секунд (6.04.2011 - 12:44) inpost написал(а):
Всем спасибо, жаль, что нет конкретной функции, лишь всё подвязывается на правильной голове...
А ведь часто именно требуется выделить первый и последний элемент
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 24 минуты, 42 секунды (6.04.2011 - 13:09) Trianon написал(а):
inpost
запрос может быть буферизированный (обычный) и небуферизированный (mysql_unbuffered_query()).
Число строк в отклике буферизированного запроса известно из функции mysql_num_rows() , соответственно, для определения последней больше никакая функция не нужна - знай считай себе строки да сравнивай со значением.
Число строк небуферизированного запроса в принципе становится известным не раньше, чем будет предпринята попытка вытянуть строку сверх результата. А значит тоже места для функции нет.
Лишние функции вообще вред.
запрос может быть буферизированный (обычный) и небуферизированный (mysql_unbuffered_query()).
Число строк в отклике буферизированного запроса известно из функции mysql_num_rows() , соответственно, для определения последней больше никакая функция не нужна - знай считай себе строки да сравнивай со значением.
Число строк небуферизированного запроса в принципе становится известным не раньше, чем будет предпринята попытка вытянуть строку сверх результата. А значит тоже места для функции нет.
Лишние функции вообще вред.
_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).