Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как узнать сколько строк в наборе данных?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: вопрос по mySql_query
as_pushkin
Отправлено: 19 Мая, 2010 - 16:54:29
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Помогите новичку, пожалуйста.
Для выбора данных из таблицы использую запрос:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM ".$table_name."  LIMIT 0, 30", $link);
  3.  

понятно, что он содержит только первые 30 записей. Вопрос, как узнать сколько записей в БД удовлетворяют условию этого запроса, чтоб потом вывести с 31 по 60, с 61 по 90 и.т.д.
 
 Top
ZeiZ
Отправлено: 19 Мая, 2010 - 17:22:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009  
Откуда: Москва


Помог: 0 раз(а)




пагинация?

PHP:
скопировать код в буфер обмена
  1.  
  2. $a = 0; // стартовая позиция
  3. $b = 30; // сколько выводить
  4.  
  5. if (isset($_GET['page']) $a = $b*($_GET['page']-1);
  6.  
  7.  $sql = "SELECT * FROM ... LIMIT $a, $b; ";
  8.  


!!! переменную $_GET['page'] надо защитить !!!

это первое что пришло в голову, усложнить можно всегда.
не претендую на лучшее решение Закатив глазки

(Отредактировано автором: 19 Мая, 2010 - 17:22:51)

 
 Top
valenok
Отправлено: 19 Мая, 2010 - 17:55:04
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Придется делать две выборки.
Одну из них можно сделать один раз и результат куда нибудь записать.
Можно выбирать 31 запись. Если их 31, значит есть следующая страница.


-----
Truly yours, Sasha.
 
My status
 Top
as_pushkin
Отправлено: 19 Мая, 2010 - 22:33:02
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




valenok пишет:
ПЕсли их 31, значит есть следующая страница.

умнО, нечего сказать. А если их 1000031?
 
 Top
AdMeen
Отправлено: 20 Мая, 2010 - 07:39:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 370
Дата рег-ции: Сент. 2009  
Откуда: Воронеж


Помог: 1 раз(а)




я мб чего не понял, но что мешает сделать выборку количества записей в таблице, потом просто смотреть, большее ли чем всего есть мы хотим выбрать. И если это не так, значит страница есть
 
 Top
Djin_dj
Отправлено: 20 Мая, 2010 - 08:15:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Июнь 2008  
Откуда: Россия


Помог: 0 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SET @a=(SELECT count(0) AS TotalRows FROM `Event`);
  2. SELECT *,@a FROM `Event`
  3. LIMIT 0,30
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB