Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поштучная листалка записей с неуникальной датой и уникальным id

Сообщения:  [1-8] 

 
 автор: Trianon   (21.01.2011 в 22:03)   письмо автору
 
   для: tAleks   (21.01.2011 в 21:33)
 

наверное можно. Где - не знаю.
в мануале mysql только краткая таблица синтаксиса выражения, в которой список полей имеет место быть.
http://dev.mysql.com/doc/refman/5.1/en/expressions.html

  Ответить  
 
 автор: tAleks   (21.01.2011 в 21:33)   письмо автору
 
   для: Trianon   (21.01.2011 в 16:41)
 

Спасибо!

  Ответить  
 
 автор: tAleks   (21.01.2011 в 21:33)   письмо автору
 
   для: Trianon   (21.01.2011 в 16:29)
 

Где-нибудь об этом по подробнее можно почитать? Дайте ссылку, если есть. Спасибо.

  Ответить  
 
 автор: Trianon   (21.01.2011 в 16:41)   письмо автору
 
   для: tAleks   (21.01.2011 в 16:17)
 

Код с LIMIT 1 , кстати, не лучший вариант.
Хоть сервер его и опримизирует, правильнее писать SELECT MAX()... WHERE... и SELECT MIN()... WHERE...

  Ответить  
 
 автор: Trianon   (21.01.2011 в 16:29)   письмо автору
 
   для: tAleks   (21.01.2011 в 16:17)
 

a1< b1 и a2 < b2 <===>  если (a1>=b1) то ложь 
                          иначе если (a2 < b2) то истина 
                          иначе ложь

(a1,a2) < (b1,b2) <===>  если (a1< b1)  то истина  
                          иначе если a1 > b1 то ложь 
                          иначе если (a2 < b2) то истина 
                          иначе ложь

  Ответить  
 
 автор: tAleks   (21.01.2011 в 16:17)   письмо автору
 
   для: Trianon   (21.01.2011 в 15:59)
 

То что надо! Спасибо! Работвает!

Но такую запись я раньшен не встречал. Я делал так:


AND date_order < '$date_order' 
AND id_order < $id_order
ORDER BY date_order, id_order 


Но это не прокатывало.

Поясните плиз, логику вашей записи, чем она отличается от моей. Нутром чую что отличается, практика показывает что отличается, а догнать чем, че-то не могу....

  Ответить  
 
 автор: Trianon   (21.01.2011 в 15:59)   письмо автору
 
   для: tAleks   (21.01.2011 в 15:50)
 

AND (date_order, id_order) < ('$date_order' , $id_order)
ORDER BY date_order, id_order

- чем не?

  Ответить  
 
 автор: tAleks   (21.01.2011 в 15:50)   письмо автору
 
 

Есть таблица:

CREATE TABLE users_orders(
  id_order INT(11) NOT NULL AUTO_INCREMENT,
  id_user INT(11) NOT NULL,
  date_order DATE DEFAULT NULL,
  volume DECIMAL(7, 2) NOT NULL,
  type ENUM('personal', 'organization') NOT NULL,
  PRIMARY KEY (id_order),
  INDEX id_user (id_user)
)
ENGINE = MYISAM;


Нужно сделать листалку записей, типа постраничной навигации, только по штучно. Сортировка по date_order. Но тут есть одно "НО". Если бы date_order был уникальный - нет проблем. НО в данном случае, date_order не уникальный, т.е. могут быть 2 или более записей с одинаковой датой.

Есть у меня несколько др. подобных скриптов, но там именно ДАТА была уникальной, и я вычислял id следующей и предыдущей записи так:

Вычислить id_order следующей записи (при условии что date_order уникальный) :


$sql_back = "
    SELECT id_order FROM users_orders
    WHERE id_user = $id_user 
        AND date_order > '$date_order'
    ORDER BY date_order DESC
    LIMIT 1";


Вычислить id_order предыдущей записи (при условии что date_order уникальный) :


$sql_back = "
    SELECT id_order FROM users_orders
    WHERE id_user = $id_user 
        AND date_order < '$date_order'
    ORDER BY date_order
    LIMIT 1";


А сейчас задача, вычислить id_order следующей и предыдущей записи, при условии что date_order не уникальный. Чувствую, что как-то дату можно связать с id_order, но как, че-то не догоняю. :)

  Ответить  

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования