Много вопросов...

Varg

Guest
Много вопросов...

У меня вопрос! (банально) :)

1. В общем мне надо узнать к-во строк в базе, и вывести с N по M браузеру.

SELECT COUNT(*) FROM TABLE;
SELECT * FROM TABLE LIMIT N,M;

Это понятно, а вот как это реализовать одним запросом?

2. И как это потом обработать?

3. И ВСЕГДА ли нужно пытаться свести всё к одному запросу?

4. И один запрос это одна строка mysql_query ?

5. И второй вопрос. auto_increment. Если есть номера 1,2 и 3. И сделать номер (UPDATE) например 1000. Следующий раз запрос INSERT добавит номер 1001 или 4 ?
 

Demiurg

Guest
Re: Много вопросов...

Автор оригинала: Varg
У меня вопрос! (банально) :)
1. В общем мне надо узнать к-во строк в базе, и вывести с N по M браузеру.
SELECT COUNT(*) FROM TABLE;
SELECT * FROM TABLE LIMIT N,M;
Это понятно, а вот как это реализовать одним запросом?
2. И как это потом обработать?
3. И ВСЕГДА ли нужно пытаться свести всё к одному запросу?
4. И один запрос это одна строка mysql_query ?
5. И второй вопрос. auto_increment. Если есть номера 1,2 и 3. И сделать номер (UPDATE) например 1000. Следующий раз запрос INSERT добавит номер 1001 или 4 ?
1. Одним никак, не извращайся.
2. Так как тебе надо.
3. Нет.
4. Вопрос не понял. mysql_query делает запрос(один) к mysql.
5. Попробуй ...

PS очень порадовал пункт 5, где после кучи вопросов задается "второй" вопрос :)
 

Hijacker

Guest
Можно все сделать и одним запросом, но мускул итак очень быстрая субдэшка, в принципе оно не надо, так что....

Автоинкремент - почитай (не помешает) или попробуй (как уже посоветовали). В мануале написано -> max()+1
Ну а остальное....
 

Varg

Guest
Re: Re: Много вопросов...

Автор оригинала: Demiurg
PS очень порадовал пункт 5, где после кучи вопросов задается "второй" вопрос :)
Ладно ладно :)
Изначально их было два :)

А запрос типа

mysql_query("SELECT COUNT(*) FROM table; SELECT * FROM table LIMIT N,M");

Разве не является одним запросом?
 

Varg

Guest
Re: Re: Re: Много вопросов...

PS: Я имею ввиду, что быстрая то она быстрая, но и база бывает немаленькая. И хоть небольшое но ускорение - мелочь, а приятно :)
 

Demiurg

Guest
Re: Re: Re: Много вопросов...

Автор оригинала: Varg
Ладно ладно :)
Изначально их было два :)
А запрос типа
mysql_query("SELECT COUNT(*) FROM table; SELECT * FROM table LIMIT N,M");
Разве не является одним запросом?
Является. Один запрос с синтаксической ошибкой :)
 

Varg

Guest
Re: Re: Re: Re: Много вопросов...

Автор оригинала: Demiurg
Является. Один запрос с синтаксической ошибкой :)
Хм... :) Допустим он без синтаксической ошибки.

И его надо обрабатывать так:
$A = mysql_fetch_array();
где $A[0] будет к-вом строк, а все прочие A[] будут выборкой?
 

Demiurg

Guest
Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Varg
Хм... :) Допустим он без синтаксической ошибки.
И его надо обрабатывать так:
$A = mysql_fetch_array();
где $A[0] будет к-вом строк, а все прочие A[] будут выборкой?
сделай так
mysql_query("SELECT COUNT(*) FROM table; SELECT * FROM table LIMIT N,M");
echo mysql_error();
 

Varg

Guest
Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Demiurg
сделай так
mysql_query("SELECT COUNT(*) FROM table; SELECT * FROM table LIMIT N,M");
echo mysql_error();
Вот лишь бы ответить, а по существу или нет, это никого не волнует :)

Мне интересно как обрабатывать, а не как отлаживать :)
 

Demiurg

Guest
Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Varg
Вот лишь бы ответить, а по существу или нет, это никого не волнует :)
Мне интересно как обрабатывать, а не как отлаживать :)
Ладно ... скажу прямо ...
mysql_query() посылает один запрос на сервер, а ты пытаешься послать сразу 2. Поэтому и возникает синтаксическая ошибка.
 

Varg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Demiurg
Ладно ... скажу прямо ...
mysql_query() посылает один запрос на сервер, а ты пытаешься послать сразу 2. Поэтому и возникает синтаксическая ошибка.
SELECT COUNT(*) , count(if(date_add > NOW() - INTERVAL 24 HOUR,1,0)) , count(if(TO_DAYS(NOW()) - TO_DAYS(date_add) <= 3,1,0)) FROM avto_sale

А вот это разве не три запроса в одной строке?
 

Demiurg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Varg
SELECT COUNT(*) , count(if(date_add > NOW() - INTERVAL 24 HOUR,1,0)) , count(if(TO_DAYS(NOW()) - TO_DAYS(date_add) <= 3,1,0)) FROM avto_sale
А вот это разве не три запроса в одной строке?
нет, это один запрос.
 

Demiurg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Varg
Ничего не понял. А где принципиальная разница?
В данном случае в количестве слова "select" в строке.
 

Varg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Demiurg
В данном случае в количестве слова "select" в строке.
Понял, а если что-то типа этого:

SELECT COUNT(*), * FROM table LIMIT N,M

не прокатит? :)
 

Demiurg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Varg
Понял, а если что-то типа этого:
SELECT COUNT(*), * FROM table LIMIT N,M
не прокатит? :)
нет.
Еще раз говорю, не извращайся.
select count(*) from table работает _очень_ быстро. Так что 2 запроса сдесь самое что надо.
 

Varg

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Автор оригинала: Demiurg
нет.
Еще раз говорю, не извращайся.
select count(*) from table работает _очень_ быстро. Так что 2 запроса сдесь самое что надо.
Ладно, я понял :)
 

[=COM=]

Guest
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Много вопросов...

Originally posted by Varg
Понял, а если что-то типа этого:
SELECT COUNT(*), * FROM table LIMIT N,M
не прокатит? :)
Ну впринципе его можно записать еще как :
SELECT COUNT(*) as t, * FROM table LIMIT N,M

Тогда прокатит
 
Сверху