Вчера, пока не прочитал ваши предложения придумал свое решение с помощью функции:
Цитата:
mysql_Result($result,$i,field)
Msql_Result отображает поле из возвращенной записи. Параметры - идентификатор результата, возвращенный функцией msql(), целое число, которое является индексом записи, которую нужно просмотреть и имя поля.
|
Однако оно доволно запутанно, поэтому хочу спосить, какой из данных отрывков кода будет функционировать быстрее
Это с помощью вашего запроса:
PHP код:
$request = "SELECT ntext, ntitle, date_format(ndate,'%e.%m.%y') as ndate1 FROM news"; /*Вынемаемвсю таблицу*/
$result = mysql_query($request);
$strnum=((mysql_numrows($result))-(10*$archivepage+3)); /*Такая уж у меня замысловатая формула формирования строки от которой происходит начало отсчета*/
$request = "SELECT ntext, ntitle, date_format(ndate,'%e.%m.%y') FROM news LIMIT $strnum, 10";
$result = mysql_query($request);
if (!mysql_error()) {
/*Цикл вынимающий строку, как массив с числовым индексом*/
while ($row = mysql_fetch_row($result)) {
print ("$row[1].$row[2].$row[0]);
}
}
else {
print ("Ошибка БД с запросе".$request. "MySQL пишет ". mysql_error());}
Это мой вариант:
PHP код:
$request = "SELECT ntext, ntitle, date_format(ndate,\'%e.%m.%y\') as ndate1 FROM news ORDER BY ndate DESC"; /*Также приодиться вынимать всю таблицу*/
$result = mysql_query($request);
if (!mysql_error()) {
for ($i=0;$i<=9;$i++) {/*Цикл вынимающий 10 строк начиная со $strnum*/
$strnum=((mysql_numrows($result))-$i-(10*($archivepage-1)+3));
print (mysql_Result($result,$strnum,1).mysql_Result($result,$strnum,2).mysql_Result($result,$strnum,0));
if ($strnum==0) {break;} /*При достижение начала таблице цикл прервется*/
}
else {
print ("Ошибка БД с запросе".$request. "MySQL пишет ". mysql_error());}
}
Во втором варианте еще хорошо, что когда цикл достигнет начала базы то перестанет выводить строки на экран.
В первом же варианте плохо, что вывод идет вниз по таблице начиная с определенной строчки и если вывод начать с несуществующей строки, то ничего не выйдет. Так будет при выводе последних записей.
Я уже сам запутался

.
Кстати, как проверить за сколько сгенерировалась страница? Я тогда сам и посмотрю что быстрее...