Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не работает фильтрация по дате / 12 сообщений из 12, страница 1 из 1
20.09.2014, 01:07
    #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
20.09.2014, 01:14
    #38752221
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает фильтрация по дате
Сергей СтрогановНа старом хостинге все фильтровалось как надо, после переноса выводит только все транзакции и не фильтрует. Почему?дд.мм.гггг против mm/dd/yyyy.
...
Рейтинг: 0 / 0
20.09.2014, 20:24
    #38752574
Не работает фильтрация по дате
Вы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
...
Рейтинг: 0 / 0
21.09.2014, 18:27
    #38753007
Не работает фильтрация по дате
ап темы
...
Рейтинг: 0 / 0
21.09.2014, 19:15
    #38753023
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает фильтрация по дате
Сергей СтрогановВы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
Я в коде разбираться не стал, но могу сказать, что тебе указывали не на язык, а на формат даты.
...
Рейтинг: 0 / 0
21.09.2014, 20:09
    #38753043
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает фильтрация по дате
ПрограмёрСергей СтрогановВы хотите сказать что проблема в языке, но почему раньше тогда проблем не было?
Я в коде разбираться не стал, но могу сказать, что тебе указывали не на язык, а на формат даты.
+1
тоже не стал перечитывать код, - нехочу раз человек не может выделить код связаный с датой, а постит весь сайт сюда.

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

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

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

Вспомни какие ты вопросы задавал http://www.sql.ru/forum/914026/rabota-s-derevom-v-mysql?hl=
...
Рейтинг: 0 / 0
22.09.2014, 11:40
    #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
22.09.2014, 11:53
    #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
22.09.2014, 15:48
    #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
22.09.2014, 16:14
    #38753680
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает фильтрация по дате
Сергей Строганов,

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


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