imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 20.03.2004, 00:47     # 1
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
[mysql] как получить количетво?

Как получить количествой записей в таблице?
Допустим, есть таблица

      ТЕКСТ | ВИДИМЫЙ
1 - lalala    | 0
2 - lalala    | 1
3 - lalala    | 1

Вот, здесь мне надо количество записей, где ВИДИМЫЙ = 1. Какой QUERY здесь нужен?
Psionic Vision вне форума  
Старый 20.03.2004, 01:22     # 2
Saruman
::VIP::
 
Аватар для Saruman
 
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285

Saruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman ГуруSaruman Гуру
Neo
SELECT COUNT( * ) FROM mytablename WHERE ВИДИМЫЙ = 1
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti
Saruman вне форума  
Старый 20.03.2004, 01:40     # 3
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Saruman
Понятно. А что возвращает этот запрос? Число или array?
$a = DB->query("SELECT COUNT * FROM mytable WHERE visible = 1");

чему теперь равно $a?

Добавлено через 11 минут:
При этом:

PHP код:
require './inc/global.php';
$cnt $DB_site->query("SELECT COUNT(*) FROM neo_comments WHERE visible = '1'");
var_dump ($cnt); 

Получается это:

resource(15) of type (mysql result)

И что теперь?
Psionic Vision вне форума  
Старый 20.03.2004, 01:49     # 4
AleXXXSoft
Guest
 
Сообщения: n/a

PHP код:
# запросик
$cnt mysql_query("SELECT COUNT(*) AS cnt FROM neo_comments WHERE visible = 1"); 
# на выходе массив
$cnt mysql_fetch_array($cnt);
# из него достали количество
$cnt $cnt['cnt']; 
 
Старый 20.03.2004, 03:56     # 5
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
А я нашел вариант попроще.

$countcomms=$DB_site->query('SELECT COUNT(*) AS comms FROM neo_comments WHERE visible=0');
$newcomms=number_format($countcomms['comms']);
Psionic Vision вне форума  
Старый 21.03.2004, 21:04     # 6
Psionic Vision
Full Member
 
Аватар для Psionic Vision
 
Регистрация: 05.02.2002
Адрес: Underground
Сообщения: 2 110

Psionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собойPsionic Vision Имеются все основания чтобы гордиться собой
Хотя, мой вариант не действует...
AlexXXsoft, спасибо
Psionic Vision вне форума  
Старый 28.03.2004, 01:52     # 7
ZoKeR
Banned
 
Аватар для ZoKeR
 
Регистрация: 30.01.2004
Адрес: WSbank>BIZ
Сообщения: 203

ZoKeR Мелкий засранец
$result = mysql_query("SELECT * FROM vklad WHERE id_user = '$user_id' and sostoyanie='0'") or die("Ошибка") ;
$num=mysql_num_rows($result);

Это на мой взгляд самый удобный способ... а главное работает...
ZoKeR вне форума  
Старый 28.03.2004, 01:58     # 8
Vaulter
Guest
 
Сообщения: n/a

ZoKeR
он медленнее чем count(*)
Neo
используй это:
PHP код:
list($cnt)=mysql_fetch_array(mysql_query("SELECT COUNT( * ) FROM mytablename WHERE ВИДИМЫЙ = 1")); 
 
Старый 28.03.2004, 03:21     # 9
ZoKeR
Banned
 
Аватар для ZoKeR
 
Регистрация: 30.01.2004
Адрес: WSbank>BIZ
Сообщения: 203

ZoKeR Мелкий засранец
Намного бысрее или не существенно? А то если на 0,000001 сек быстрее то мне программу не надо переделывать...
ZoKeR вне форума  
Старый 29.03.2004, 09:53     # 10
AleXXXSoft
Guest
 
Сообщения: n/a

намного быстрее, т.е. не происходит выборка всей таблицы, и не создается временная таблица, чтобы отсортировать результат)) быстрее эдак раз в 100, а если таблица огромная, то и раз в 1000 =)
 
Старый 29.03.2004, 10:33     # 11
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
Neo
если хочешь узнать, насколько у тебя хорошо написан запрос пользуйся командочкой explain
практически все современные субд в той или иной степени понимают эту команду
для сравнения:
explain select * from table говорит, что просмотрены были все строки таблицы (около 10000) и выполнялся что-то около 5-6 секунд
а explain select count(*) from table вообще не просматривает табличку и выполняется где-то 10^(-6) секунд
вот... :-) надеюсь помог.
__________________
Nunc est bibendum
is_absent вне форума  
Старый 29.03.2004, 11:37     # 12
AleXXXSoft
Guest
 
Сообщения: n/a

кстати насчет EXPLAIN: у меня на сервере на
хостинге он выдает Access Denied .... =( на локалхосте поэксперементирвоал - да)) реально) не знал такого, спасиб, лови пятак) штука МНЕ ПОЛЕЗНАЯ.
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:01.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.