[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с sql BETWEEN
Serg_php
Здравтсвуйте. Помогите пожалуйста. Вот уже сколько не могу понять почему не работает мой скрипт. Вернее он работает, но выдает не совсем то что нужно. Я его прошу "Выдай мне записи с такого то по такое то число" а он мне выдает все что есть (( помогите исправить баг
$do1 = $_POST['do1'];
$ot1 = $_POST['ot1'];
$st_id = $_POST['st_id'];

if($st_id == 10)
{
//$array1 = mysql_query ("SELECT * FROM `sklads` where status_sklads = '10' AND date_closse BETWEEN '".$ot1."' AND '".$do1."' group by date_closse")or die (mysql_error());
















$result = mysql_query("SELECT * FROM changes WHERE status = '10' AND date_closse BETWEEN '".$ot1."' AND '".$do1."' ORDER BY date_closse ASC") or die(mysql_error());
while( $m1 = mysql_fetch_assoc($result))
{

$result1 = mysql_query("SELECT * FROM rroutes WHERE id = '".$m1['id_rroutes']."'") or die(mysql_error());
$m = mysql_fetch_assoc($result1);


$result3 = mysql_query("SELECT * FROM oriflames WHERE id = '".$m1['id_oriflame']."'") or die(mysql_error());
$m3 = mysql_fetch_assoc($result3);

$result4 = mysql_query("SELECT * FROM sklads WHERE id_route = '".$m1['id_rroutes']."'") or die(mysql_error());
$m4 = mysql_fetch_assoc($result4);


$result5 = mysql_query("SELECT * FROM routes WHERE value = '".$m1['num_rout']."'") or die(mysql_error());
$m5 = mysql_fetch_assoc($result5);


if($m4['user_otvet'] == NULL)
{
$otvet = "<a href='#' id='".$m['id']."' class='add_otvet'>Ответ</a>";
}
else
{
$otvet = $m4['user_otvet'];
}

if($m4['time_plan'] == NULL)
{
$time_plan = "<a href='#' id='".$m['id']."' class='add_time'>Время</a>";
}
else
{
$time_plan = $m4['time_plan'];
}
$date = $m4['exp_otvet'];


// дата
$date_ = $date;

$parts_ = explode("-", $date_);

//до символа ,
$date_1 = $parts_[0];

$time_1 = $parts_[1];

?>

<tr>
<
td><?=$m3['spo']?></td>
<
td><?=$m4['batch']?></td>
<
td><?=$m['num_otpravki']?></td>
<
td><?=$m['count_mest']?></td>
<
td><?=$m['ves']?></td>
<
td><?=$m['cost']?></td>
<
td><?=$m3['zip']?></td>
<
td><?=$m3['name']?></td>
<
td><?=$m3['citi']." ".$m3['type']." ".$m3['adres']." ".$m3['apartment']?></td>
<
td><?=$m3['tel']?></td>
<
td><?=$st_id?></td>

<
td><?=$m['m3']?></td>
<
td><?=$m5['route_name']?></td>
<
td><?=$m4['date_4']?></td>
<
td><?=$m4['date_closse']?></td>
<
td><?=$time_1?></td>

<
td><?=$m3['name']?></td>
<
td></td>
</
tr>







<?}




















}




Спустя 36 минут, 17 секунд (4.07.2012 - 10:25) Tadochi написал(а):
бога ради
$do1 = inval($_POST['do1']);
$ot1 = intval($_POST['ot1']);
$st_id = is_numeric($_POST['st_id'])?intval($_POST['st_id']):htmlspecialchars($_POS['st_id']);

Спустя 17 минут, 40 секунд (4.07.2012 - 10:43) Serg_php написал(а):
Цитата (Tadochi @ 4.07.2012 - 07:25)
бога ради
$do1 = inval($_POST['do1']);
$ot1 = intval($_POST['ot1']);
$st_id = is_numeric($_POST['st_id'])?intval($_POST['st_id']):htmlspecialchars($_POS['st_id']);

Спасибо. Но выдает ошибку функции "Call to undefined function inval() "

Спустя 8 минут, 56 секунд (4.07.2012 - 10:52) Placido написал(а):
intval()

Спустя 24 минуты, 48 секунд (4.07.2012 - 11:17) Serg_php написал(а):
Цитата (Placido @ 4.07.2012 - 07:52)
intval()

Спасибо. ЩАс попробую

Спустя 2 минуты, 51 секунда (4.07.2012 - 11:20) alexbel2404 написал(а):
Нафига там приведение к числу? Я больше чем уверен, там приходят даты в виде строки.

Спустя 1 минута, 1 секунда (4.07.2012 - 11:21) Serg_php написал(а):
Цитата (alexbel2404 @ 4.07.2012 - 08:20)
Нафига там приведение к числу? Я больше чем уверен, там приходят даты в виде строки.

Да, в виде строки. А как сровнить правильно?

Спустя 1 час, 23 минуты, 47 секунд (4.07.2012 - 12:44) killer8080 написал(а):
Цитата (Serg_php @ 4.07.2012 - 11:21)
Да, в виде строки. А как сровнить правильно?

дата должна быть в формате YYYY-MM-DD

Спустя 53 минуты, 35 секунд (4.07.2012 - 13:38) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 09:44)
Цитата (Serg_php @ 4.07.2012 - 11:21)
Да, в виде строки. А как сровнить правильно?

дата должна быть в формате YYYY-MM-DD

Она так и приходит. НО скрипт все равно выводит в=мне все записи

Спустя 2 минуты, 15 секунд (4.07.2012 - 13:40) killer8080 написал(а):
поле date_closse какого типа?

Спустя 11 минут, 8 секунд (4.07.2012 - 13:51) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 10:40)
поле date_closse какого типа?

date

Спустя 15 минут, 32 секунды (4.07.2012 - 14:07) killer8080 написал(а):
значит дата все таки неправильная, выведи содержимое переменных $ot1 и.$do1

Спустя 7 минут, 18 секунд (4.07.2012 - 14:14) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 11:07)
значит дата все таки неправильная, выведи содержимое переменных $ot1 и.$do1

ЩАс пробую

Спустя 5 минут, 54 секунды (4.07.2012 - 14:20) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 11:07)
значит дата все таки неправильная, выведи содержимое переменных $ot1 и.$do1

Вот то что отправляю
do1	2012-07-03
ot1 2012-07-02
st_id 10


а вот что принял
2012-07-02 2012-07-03 

Спустя 2 минуты, 11 секунд (4.07.2012 - 14:22) killer8080 написал(а):
должно работать, покажи sql запрос. Ошибок не выдает?

Спустя 2 минуты, 16 секунд (4.07.2012 - 14:25) Serg_php написал(а):
в том то и дело что нет, я уже не знаю что думать. Все просто но не работает
$result = mysql_query("SELECT * FROM changes WHERE status = '10' AND date_closse BETWEEN '".$ot1."' AND  '".$do1."' ORDER BY date_closse ASC") or die(mysql_error());
while( $m1 = mysql_fetch_array($result))
{

Спустя 11 минут, 4 секунды (4.07.2012 - 14:36) killer8080 написал(а):
сдается мне, что поле date_closse все таки varchar. Покажи create table

Спустя 13 минут, 17 секунд (4.07.2012 - 14:49) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 11:36)
сдается мне, что поле date_closse все таки varchar. Покажи create table

Вот
CREATE TABLE IF NOT EXISTS `changes` (
`id_rroutes` int(11) NOT NULL,
`id_oriflame` int(11) NOT NULL,
`batch` varchar(255) NOT NULL,
`sort` int(15) NOT NULL,
`num_rout` varchar(255) default NULL,
`date_4` date NOT NULL,
`status` int(11) NOT NULL default '1',
`date_closse` date NOT NULL,
`time_plan` time NOT NULL,
`status_bag` int(11) NOT NULL default '0',
PRIMARY KEY (`id_rroutes`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8; ;

Спустя 3 минуты, 27 секунд (4.07.2012 - 14:52) killer8080 написал(а):
Serg_php
а в этом поле вообще даты есть? Может оно по факту пустое?

Спустя 1 минута, 32 секунды (4.07.2012 - 14:54) Serg_php написал(а):
Да, да ты есть, есть конечно такие поля там где нету, но восновном есть из чего выбрать

Спустя 12 минут, 29 секунд (4.07.2012 - 15:06) killer8080 написал(а):
Странно, должно работать. :blink:
А если этот запрос вставить в PMA? То же самое выдает?
SELECT * 
FROM `changes`
WHERE `status` = '10' AND `date_closse` BETWEEN '2012-07-02' AND '2012-07-03'
ORDER BY `date_closse` ASC

Спустя 10 минут, 21 секунда (4.07.2012 - 15:17) Serg_php написал(а):
Это пипец.....да, тоже самое. Мож с кодировкой проблемы? Нотя все нормально...

Спустя 5 минут, 11 секунд (4.07.2012 - 15:22) killer8080 написал(а):
Что, выводит все записи подряд?

Спустя 6 минут (4.07.2012 - 15:28) Serg_php написал(а):
ДА. Это мистика, или у меня уже мозг тронулся. Но ошибки быть не может грубой. Где она

Спустя 9 минут, 51 секунда (4.07.2012 - 15:38) killer8080 написал(а):
сделал таблицу по твоей структуре, вставил несколько строчек с разными датами.
Запрос работает корректно. Даже не знаю что у тебя может быть не так unsure.gif

Спустя 3 минуты, 57 секунд (4.07.2012 - 15:42) Serg_php написал(а):
Это какой то пипец...уверен что где то мелкая закавычка сидит. Хорошо, спасибо за сотруднечиство. Буду дальше мудрить. Перестрою запрос немного,

Спустя 8 минут, 3 секунды (4.07.2012 - 15:50) killer8080 написал(а):
Serg_php
ну как разгадаешь в чем ошибка отпишись, самому интересно smile.gif

Спустя 20 минут, 51 секунда (4.07.2012 - 16:11) Serg_php написал(а):
Цитата (killer8080 @ 4.07.2012 - 12:50)
Serg_php
ну как разгадаешь в чем ошибка отпишись, самому интересно smile.gif

ОК:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.