|
|
|
| Вообщем я не люблю когда долго генерируется страница. (а кто любит?)
Я делаю запрос в бд:
<?php
$row=mysql_query("SELECT * FROM news");
?>
|
А теперь вопрос: как сделать, чтобы работать с этим запросом?
К примеру я хочу сначала сделать так с этим запросом:
<?php
order by date desc limit 10
?>
|
тут код
А потом:
<?php
mysql_fetch_row($row);
?>
|
тут код
Потом сделать так:
Тоесть с одним запросом к бд воротить что угодно. Я знаю что так можно (помой с помощью static), но точно не помню.
Подскажите как это сделать и привидите пожалуйста примеры кода.
С уважением, Арсеньев Алексей. | |
|
|
|
|
|
|
|
для: JIEXA
(10.02.2005 в 23:12)
| | Хм... т.е. имеется ввиду проделать операции
order by date desc limit 10
|
средствами PHP из запроса
? | |
|
|
|
|
|
|
|
для: JIEXA
(10.02.2005 в 23:12)
| | Все же, возможно, будет более эффективно сделать несколько запросов, чем делать обработку на PHP.
Если у вас уже есть результат запроса всех новостей, то вывести с 10 по 20 можно с помощью функции mysql_data_seek().
mysql_data_seek -- Перемещает внутренний указатель в результате запроса
bool mysql_data_seek ( resource result_identifier, int row_number)
Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки.
mysql_data_seek() перемещает внутренний указатель в результате запроса к ряду с указанным номером. Следующий вызов mysql_fetch_row() вернёт именно его.
Параметр Row_number должен быть значением от 0 до mysql_num_rows - 1.
|
Таким образом, вы можете сразу переместить указатель на 10 запись и отсчитать 10 рядов. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(10.02.2005 в 23:36)
| | Спасибо, но не могли бы рассказть про static | |
|
|
|
|
|
|
|
для: JIEXA
(11.02.2005 в 00:00)
| | Это не совсем static, но смысл тот же - в SQL-запросах можно определить переменные, которые далее можно использовать в других запросах. Имя переменной предваряется символом @ (аналог $ в PHP)
SELECT @fio := name FROM tbl WHERE id = 45
|
В следующем запросе можно использовать данную переменную и она будет иметь значение, которое ей будет присвоено в предыдущем запросе
SELECT * FROM tbl1 WHERE name = @fio
|
Обобщением данного подхода является создание временных таблиц - в этом случае можно передавать от запроса к запросу не отдельные значения, а целые выборки - подробности по ссылке.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=278 | |
|
|
|