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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Извлечь товарные позиции с ценой от ... и до ...
 
 автор: Night_Charter   (20.02.2007 в 18:06)   письмо автору
 
 

Добрый день, прошу помощи в запросе!
Допустим у меня есть в базе таблица, в это таблице записи. Есть колонка money.
Там хранятся числа, например : от 150, от 250, от 800 и т.п.
Я передаю постом два параметра (1 - цена от и 2 - цена до).
Как правильно организовать поиск?

   
 
 автор: cheops   (20.02.2007 в 19:23)   письмо автору
 
   для: Night_Charter   (20.02.2007 в 18:06)
 

Можно поступить следующим образом
<?php
  $_POST
['price1'] = intval($_POST['price1']);
  
$_POST['price2'] = intval($_POST['price2']);
  
$query "SELECT * FROM tbl WHERW money > $_POST[price1] AND money < $_POST[price2]";
  
$tbl mysql_query($query);
  ...
?>

   
 
 автор: DEM   (20.02.2007 в 19:27)   письмо автору
 
   для: cheops   (20.02.2007 в 19:23)
 

А разве массивы типа $_POST[''], $_GET[''], $_SESSION[''] и т.д. не надо отделять? Ну всмысле:

<?
$query 
"SELECT * FROM tbl WHERE money > ".$_POST[price1]." AND money < ".$_POST[price2].""
?>


ЗЫ. И у вас в запросе написано WHERW ;)

   
 
 автор: cheops   (20.02.2007 в 19:31)   письмо автору
 
   для: DEM   (20.02.2007 в 19:27)
 

Можно не отделять, если ключ не берётся в кавычки, если массивы отделяются, ключ следут брать в кавычки
<? 
$query 
"SELECT * FROM tbl WHERE money > ".$_POST['price1']." AND money < ".$_POST['price2'].""
?>

>ЗЫ. И у вас в запросе написано WHERW ;)
Есть такое дело.

   
 
 автор: DEM   (20.02.2007 в 20:19)   письмо автору
 
   для: cheops   (20.02.2007 в 19:31)
 

Хм... всё время брал ключ в кавычки и иногда удивлялся, почему в неокторых сркиптах работает гобальный массив без разделения, а у меня нет ))) Теперь буду знать, спасибо )))

   
 
 автор: Night_Charter   (20.02.2007 в 20:34)   письмо автору
 
   для: DEM   (20.02.2007 в 20:19)
 

С этим понятно, спасибо.
Теперь, чтобы не создавать новую тему, давайте смоделируем ситуацию, только в этот раз запросы надо производить по дате.
Дату забиваю в поле при помощи mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('y'));
Например хочу выбрать запси от 01.02.07 до 15.02.07.

   
 
 автор: cheops   (21.02.2007 в 00:28)   письмо автору
 
   для: Night_Charter   (20.02.2007 в 20:34)
 

Хм... т.е. дата хранится не в календарном столбце MySQL? Нет возможности изменить ситуацию - дело в том, что календарные столбцы очень удобны и MySQL предоставляет очень широкие средства для манипулирования ими.
Если возможности изменить таблицу нет, то придётся приводить даты 01.02.07 и 15.02.07 к формату UNIXSTAMP при помощи той же функции mktime() и строить WHERE условие по аналогии с ценой.

   
 
 автор: Night_Charter   (21.02.2007 в 14:16)   письмо автору
 
   для: cheops   (21.02.2007 в 00:28)
 

Понял, спасибо.
Дата храниться в поле "date TEXT"
Как лучше сделать?

   
 
 автор: cheops   (21.02.2007 в 15:53)   письмо автору
 
   для: Night_Charter   (21.02.2007 в 14:16)
 

Лучше хранить дату не в поле TEXT, а в поле DATETIME

   
Rambler's Top100
вверх

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