powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает фильтрация по дате
12 сообщений из 12, страница 1 из 1
Не работает фильтрация по дате
    #38752219
Скрипт вывода всех транзакций содержит 2 поля даты по которым он должен отфильтровать транзакции

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
<script type="text/javascript" src="js/jquery.datetimepicker.js"></script>
	
		<script>
			$(document).ready(function(){
				$('#date1,#date2').datetimepicker({
					timepicker:false,
					format:'Y-m-d',
					lang:'ru',
				});
				
				$("#date1,#date2").change(function(){
					$.ajax({
						url:"ajax/get_tr.php",
						type:"post",
						data:"date1="+$("#date1").val()+"&date2="+$("#date2").val()+"&cmp="+$("#cmpId").val(),
						success:function(rdata)
						{
								$(".ord_prev").html(rdata);
						}
					});
				});
			});
		</script>
	</head>
	<body>
<h1>Транзакции</h1>
			<input id="cmpId" type="hidden" value="<?=$res[0]?>" />
			<?
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$res[0]' ORDER by time DESC");
			if(mysql_num_rows($q) > 0)
			{?>
				От: <input id="date1" style="width:100px" />&nbsp;&nbsp;&nbsp;&nbsp;До: <input id="date2" style="width:100px" /><br>
				<table class="table1" border="1">
					<tr>
						<th>№ транзакции</th>
						<th>Тип</th>
						<th>№ заказа / ID водителя</th>
						<th>Сумма прихода</th>
						<th>Сумма расхода</th>
						<th>Время</th>
					</tr>
					<?
					while($res = mysql_fetch_row($q))
					{
						echo "<tr><td>$res[0]</td>
						<td>$res[1]</td>
						<td>$res[2]</td>";
						if($res[6] =='in')
							echo "<td><font size=3 color=green>$res[4] руб.</font></td>
							<td></td>";
						else
							echo "<td></td>
							<td><font size=3 color=red>$res[4] руб.</font></td>";
						$datetime = explode(" ",$res[5]);
						$datemas = explode("-",$datetime[0]);
						$date = $datemas[2].".".$datemas[1].".".$datemas[0];
						$time = substr($datetime[1],0,5);
						echo "<td><font size=2 color=blue>$date</font>, <font size=3 color=red>$time</font></td></tr>";
					}?>
				</table>
				<?}
				else
					echo "<p class='no_orders'>Нет транзакций</p>";
					?>



Обработчик ajax/get_tr.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<?php
	if($_POST)
	{
		include("../baza.php");
		if($_POST["date1"] == "" && $_POST["date2"] == "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' ORDER by time DESC");
		else if($_POST["date1"] != "" && $_POST["date2"] != "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time>'$_POST[date1]' AND time<'$_POST[date2]' ORDER by time DESC");
		else if($_POST["date1"] == "" && $_POST["date2"] != "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time<'$_POST[date2]' ORDER by time DESC");
		else if($_POST["date1"] != "" && $_POST["date2"] == "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time>'$_POST[date1]' ORDER by time DESC");

			echo '<tr>
						<th>№ транзакции</th>
						<th>Тип</th>
						<th>№ заказа / ID водителя</th>
						<th>Сумма прихода</th>
						<th>Сумма расхода</th>
						<th>Время</th>
					</tr>';
			while($res = mysql_fetch_row($q))
			{
				echo "<tr><td>$res[0]</td>
				<td>$res[1]</td>
				<td>$res[2]</td>";
				if($res[6] =='in')
					echo "<td>$res[4]</td>
					<td></td>";
				else
					echo "<td></td>
				<td>$res[4]</td>";
				$datetime = explode(" ",$res[5]);
				$datemas = explode("-",$datetime[0]);
				$date = $datemas[2].".".$datemas[1].".".$datemas[0];
				$time = substr($datetime[1],0,5);
				echo "<td>$date, $time</td></tr>";
			}
		
	}
?>


На старом хостинге все фильтровалось как надо, после переноса выводит только все транзакции и не фильтрует. Почему?
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38752221
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей СтрогановНа старом хостинге все фильтровалось как надо, после переноса выводит только все транзакции и не фильтрует. Почему?дд.мм.гггг против mm/dd/yyyy.
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38752574
Вы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753007
ап темы
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753023
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей СтрогановВы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
Я в коде разбираться не стал, но могу сказать, что тебе указывали не на язык, а на формат даты.
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753043
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрСергей СтрогановВы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
Я в коде разбираться не стал, но могу сказать, что тебе указывали не на язык, а на формат даты.
+1
тоже не стал перечитывать код, - нехочу раз человек не может выделить код связаный с датой, а постит весь сайт сюда.

и таки да - нахождение проблем с датами, а оно практически всегда связано с форматом или таймзоной - дело не ума а времени ....по шагам пройтись по коду дебажа значение, найти где оно пошло косо, вывев там все переменные увидеть где не распозналось верно значение.
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753087
Формат даты везде одинаковый формат столбца в mysql идентичный правда тип не date а timestamp. Но я менял и на date и на datetime но ничего не помогает.
ПС Ребят если вы такие профи и не хотите помочь смысл набивать посты??? Если вы посмотрите дату выставления и дату апа поста, то заметите что у меня было достаточно времени чтобы найти ошибку, но я ее не нашел. Поэтому если нет нормального ответа то идите плиз лесом, если есть желание разобраться то посмотрите код внимательно. Только походу мозгов не хватает разобратся, только трешеть
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753089
alex564657498765453Програмёрпропущено...

Я в коде разбираться не стал, но могу сказать, что тебе указывали не на язык, а на формат даты.
+1
тоже не стал перечитывать код, - нехочу раз человек не может выделить код связаный с датой, а постит весь сайт сюда.

и таки да - нахождение проблем с датами, а оно практически всегда связано с форматом или таймзоной - дело не ума а времени ....по шагам пройтись по коду дебажа значение, найти где оно пошло косо, вывев там все переменные увидеть где не распозналось верно значение.

Вспомни какие ты вопросы задавал http://www.sql.ru/forum/914026/rabota-s-derevom-v-mysql?hl=
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753318
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Строгановalex564657498765453пропущено...

+1
тоже не стал перечитывать код, - нехочу раз человек не может выделить код связаный с датой, а постит весь сайт сюда.

и таки да - нахождение проблем с датами, а оно практически всегда связано с форматом или таймзоной - дело не ума а времени ....по шагам пройтись по коду дебажа значение, найти где оно пошло косо, вывев там все переменные увидеть где не распозналось верно значение.

Вспомни какие ты вопросы задавал http://www.sql.ru/forum/914026/rabota-s-derevom-v-mysql?hl=

и, ты заметил ключевые отличия???

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

ты не верно понял всех, дело не втом что много, а много лишнего - того что точно не поможет в поиске решения.
вот штмл как поможет понять что не так с датой?

и взять моё решение...я не накидал кучу пхп скл кода своих решений, мол разбирайтесь, и напишите код как лудше.


=====
а насчёт помощи - дык она не возможна... опять же ты напостил лишнего но нету всего кода
который способен влиять на это(таже структура базы). Я не ктому что надо запостить, а к слову.

Видишь ли, тут на форуме часто получаеться, что в строчке кода, даже очень опытные не
видят ошибку, так как мало кто наизусть знает идеально все тонкости работы всего языка и его функций и расширений, поэтому в тонне кода, визуально это находиться, только если сам недавно с подобным кодом имел дело.

это основная причина, почему никто не может помочь сходу.
datetimepicker() - вот ключевой момент. догадываюсь что это джейквери юи, но понятия не имею что он ждёт на вход, - и думаю половина сдесь не скажет - что он понимает на входе а что нет. не будет же человек ваять у страничку, крутить туда пикер этот и изучать его досконально чтобы помочь тебе, тем более что шансы что именно там причина не велики.

извини что много текста, просто хочу чтоб ты понял, что на форумах люди тусуються для поддержания знаний своих и улудшении, видят пост, могут сразу помочь, помогают, нет ...ну как ты верно заметил...просто чтото напишут. лично меня раз в месяц гдето торкнет, что я найду интересный вопрос, не зная ответа, начну у себя кодить воссоздавая проблему и искать решение...

=======

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

1) смотрим какой запрос посылаеться на сервер, верен ли он логически(не вышло там так, что чтото не передаёться, или передаёться не верно)
2)раз после переезда хостинга, думаю на шаге 1 будет что верный.
поэтому ити в пхп код
2-1)проверить что в переменых ПОСТ(тайм) то что ты ожидаешь.
2-2)в серии елс иф идёт выбор действительно нужного варианта запроса в базу.
2-3)получить текст запроса в базу, что именно код реально отправляет
2-4)на клиенте выполнить такой запрос в базу, посмотреть толи база возвращает что ты хочешь


Не поверишь, у меня тоже такие ошибку случаються, и аш зло берёт, но только так они по большому щёту находяться. гдето чтото не то.

И раз уж мы тебя обидели, ради тебя..счас перечитаю код твой внимательно...не обещаю но
если увижу чтото напишу
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753326
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
if($_POST["date1"] == "" && $_POST["date2"] == "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' ORDER by time DESC");
		else if($_POST["date1"] != "" && $_POST["date2"] != "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time>'$_POST[date1]' AND time<'$_POST[date2]' ORDER by time DESC");
		else if($_POST["date1"] == "" && $_POST["date2"] != "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time<'$_POST[date2]' ORDER by time DESC");
		else if($_POST["date1"] != "" && $_POST["date2"] == "")
			$q = mysql_query("SELECT * FROM transactions WHERE dr_cmp='company' AND dest='$_POST[cmp]' AND time>'$_POST[date1]' ORDER by time DESC");



ошибку не видно но думаю надо смотреть сюда

везде вместо $q = my....
поставь
типо echo "sql="."select .... $_POST...";
что бы увидеть какие запросы отрабатывают.
может по какойто причене в масиве пост уже не то что ты ждёшь, и у тебя всегда отраба
тывает первый вариант запроса - без фильтра по дате.(фаербагом в мозиле можно будет увидеть и при аджаксе что там сервер вывел)

предполагаем что запрос нужный, тогда проверит этот текст в базе напрямую...

и на всякий случай, т.к. time слово не простое, а для мускла смысловое - возьми всётаки его
в кавычки `time` (врядли , у меня и без кавычек работает но мало ли)
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753641
На ajax приходит все как надо
POST:date1 => 2014-09-14
POST:date2 => 2014-09-15
POST:cmp => 77
PHP_INPUT:date1=2014-09-14&date2=2014-09-15&cmp=77
TIME:20.09.2014 21(4220Europe/Moscowpm)(62014Sat, 20 Sep 2014 21:42:20 +0400Sat, 20 Sep 2014 21:42:20 +040014)
IP:127.0.0.1

в мускуле формат идентичный

столбец
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
имеет вид
2014-09-12 00:00:00
...
Рейтинг: 0 / 0
Не работает фильтрация по дате
    #38753680
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Строганов,

ну и где ключевой момент? замена выполнения запроса, на вывод текстом запроса, который предполагаеться выполнять, и выполнить этот запрос в базе напрямую???
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает фильтрация по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]