[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка данных по дате
Kukaramba
Столкнулся с проблемой. Для работы с БД PostgreSQL сделал вывод таблицы. Теперь стоит задача - делать выборку из БД. Мне необходимо изменять какую нибудь константу, в которой будет записываться нужная дата - через поле input=text, затем значение этого текстового поля подставлялась в запрос из БД и таблица обновлялась.
Прочитал что можно сделать это через AJAX, но не могу разобраться как именно.


$date_today = date("Y.m");
$dy="2010.04";


$query = "SELECT date_control,cut,numb_in1,numb_out1,organization,subject,name,file,date_month FROM $table WHERE date_month = '$dy' ORDER BY numb_in1";


$result = pg_query($connection, $query) or die("Error in query: $query.
"
. pg_last_error($connection));



$result = pg_query($query) or die('Query failed: ' . pg_last_error());



Запрос выполняется через php. Мне необходимо сделать форму ввода даты с кнопкой, при нажатии на которую менялось бы значение константы $dy и запрос выполнялся бы повторно, но с измененной $dy

Помогите реализовать это



Спустя 20 минут, 3 секунды (20.04.2010 - 08:42) sergeiss написал(а):
Во-первых, используй при вводе кода специальные тэги. Тэги можно ввести, выделив текст и нажав кнопку PHP, SQL, HTML..., которые находятся прямо над полем ввода текста сообщения.
Во-вторых, AJAX, мне кажется, лучше для начала не использовать. Когда поймешь общий принцип, то тогда и его используешь.

Далее. Сделай форму, в которой размести input типа text, пусть его имя будет date_month. И сделай кнопку с именем go. Метод передачи данных - POST.
Тогда получится на принимающей стороне такой код:
if( isset($_POST['go'] ) )
{
$dy=$_POST['date_month']; // НО!!! Тут нет проверки на корректность даты, и вообще на наличие даты
}

а дальше используй полученные данные; и еще надо будет обеспечить защиту от SQL-инъекции при создании запроса.

Спустя 31 минута, 37 секунд (20.04.2010 - 09:14) Kukaramba написал(а):
А каким образом обновлять таблицу, которая выводится с помощью запроса?

Спустя 13 минут, 33 секунды (20.04.2010 - 09:27) Kukaramba написал(а):
И форму нужно делать следующим образом???:

<FORM>

<INPUT type="text" size="6" value="2010.04" name="date_month">
<input name="SendDate" type="submit" onClick="POST()" value="Обработать" id="go">

</FORM>

Хотя понимаю что неправильно.... Вот не знаю - как же правильно то объявить?

Спустя 43 минуты, 8 секунд (20.04.2010 - 10:11) sergeiss написал(а):
Типа такого

<form id="mainform" name="mainform" method="post" action="" >

<INPUT
type="text" name="date_month" id="date_month" size="10" value="2010.04" >
<input
name="go" id="go" type="submit" value="Обработать" >

</form>


id и name лучше ставить одинаковые... Иначе можно запутаться. Да и size="6" - маловато будет smile.gif

Спустя 4 часа, 25 минут, 22 секунды (20.04.2010 - 14:36) Kukaramba написал(а):
Спасибо! Все работает!! Огромаднейшее спасибо smile.gif!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Спустя 8 минут, 13 секунд (20.04.2010 - 14:44) Kukaramba написал(а):
Можно задать еще вопрос?

У меня в одном столбце выходные данные такие:

2137в-10.tif#\\dc-01\ST_ROLL\Images\0105758.tif

Можно ли фильтровать и показывать только то, что после #?

Спустя 32 минуты, 53 секунды (20.04.2010 - 15:17) sergeiss написал(а):
См. функцию strstr()

Спустя 41 минута, 8 секунд (20.04.2010 - 15:58) Kukaramba написал(а):
Сделал такую строку

PHP
echo "<td>";
echo 
strstr($row[7],'#');
echo 
"</td>";


появляется вместо 2137в-10.tif#\\dc-01\ST_ROLL\Images\0105758.tif -#\\dc-01\ST_ROLL\Images\0105761.tif

Можно ли как то избавиться от #?

Спустя 2 минуты, 22 секунды (20.04.2010 - 16:01) Kukaramba написал(а):
Sorry, затупил. Просто нужно было поставить условием не #, а \\...

Спустя 1 минута, 27 секунд (20.04.2010 - 16:02) Kukaramba написал(а):
Кстати, а есть ли в php функция с помощью которой можно "подсветить" каждую вторую строку таблицы?

Спустя 3 минуты, 16 секунд (20.04.2010 - 16:05) maxims написал(а):
Цитата (sergeiss @ 20.04.2010 - 12:17)
См. функцию strstr()

ещё можно substr()

Спустя 10 минут, 44 секунды (20.04.2010 - 16:16) sergeiss написал(а):
Цитата (maxims @ 20.04.2010 - 17:05)
ещё можно substr()

Да, можно. Но тогда придется сначала находить позицию символа через strpos(). А это будет больше действий.

Цитата (Kukaramba @ 20.04.2010 - 17:02)
Кстати, а есть ли в php функция с помощью которой можно "подсветить" каждую вторую строку таблицы?

В ПХП? Нет и не может быть. Потому что это - фича CSS. Там смотри.
ПХП может только помочь вывести данные о том, какие классы (стили) использовать.

Спустя 1 час, 4 минуты, 26 секунд (20.04.2010 - 17:20) maxims написал(а):
Цитата (sergeiss @ 20.04.2010 - 13:16)
Да, можно. Но тогда придется сначала находить позицию символа через strpos(). А это будет больше действий.

тем не менее....... wink.gif

Спустя 5 часов, 5 минут, 6 секунд (20.04.2010 - 22:26) sergeiss написал(а):
Цитата (maxims @ 20.04.2010 - 18:20)
тем не менее....... wink.gif

Ага, можно и свою функцию написать, которая сделает всё то же самое smile.gif Но не лучше ли взять готовые функции, и причем те, которые за минимум телодвижений всё делают?

Спустя 9 часов, 52 минуты, 39 секунд (21.04.2010 - 08:18) Kukaramba написал(а):
А можно ли используя эту функцию - достать данные, например, до знака #?

Спустя 2 минуты, 25 секунд (21.04.2010 - 08:21) sergeiss написал(а):
Цитата (Kukaramba @ 21.04.2010 - 09:18)
А можно ли используя эту функцию...


(устало так) : скачай хэлп из моей подписи, и найди подходящую функцию. Их там МНОГО. В том числе и для обработки строк. Ну нельзя одной и той же функцией сделать всё в скрипте!

Спустя 31 минута, 17 секунд (21.04.2010 - 08:52) Kukaramba написал(а):
Ok. Спасибо.

Кстати, появился еще вопрос. Можно ли изменять цвет шрифта по параметрам. То есть - если до даты осталось меньше 5 дней, то она выводится красным, если 15 дней - зеленый, и т.д.?
Делаю примерно такое:

PHP
if( date($date)) >= (Y,m,d+5)
{
  
$date=

Спустя 35 минут, 24 секунды (21.04.2010 - 09:27) sergeiss написал(а):
Kukaramba - для сравнения дат лучше использовать объекты DateTime (подробнее см. хэлп).

Спустя 42 минуты, 37 секунд (21.04.2010 - 10:10) maxims написал(а):
Цитата (sergeiss @ 20.04.2010 - 19:26)
Цитата (maxims @ 20.04.2010 - 18:20)
тем не менее....... wink.gif

Ага, можно и свою функцию написать, которая сделает всё то же самое smile.gif Но не лучше ли взять готовые функции, и причем те, которые за минимум телодвижений всё делают?

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

Спустя 23 часа, 20 минут, 27 секунд (22.04.2010 - 09:30) Kukaramba написал(а):
И все же. Перепробовал ряд параметров, но так и не смог получить данные ДО знака #....

Спустя 1 минута, 5 секунд (22.04.2010 - 09:31) sergeiss написал(а):
Цитата (Kukaramba @ 22.04.2010 - 10:30)
Перепробовал ряд параметров...

Какие именно?

Спустя 5 минут, 36 секунд (22.04.2010 - 09:37) Kukaramba написал(а):
strstr
stristr
strrchr

Спустя 5 минут, 13 секунд (22.04.2010 - 09:42) sergeiss написал(а):
Это ты функции перечислил... А с какими параметрами их использовал-то??? Покажи код.

Спустя 6 минут, 38 секунд (22.04.2010 - 09:49) Kukaramba написал(а):

PHP
strstr($row[7],'\\');

Например такое - выводит данные после \\, включая и \\...

Спустя 8 минут, 55 секунд (22.04.2010 - 09:58) sergeiss написал(а):
Цитата (Kukaramba @ 22.04.2010 - 10:49)
strstr($row[7],'\\');

Ты хочешь получить данные ДО знака #.

А прочитать ты не пробовал в хэлпе, что делает функция strstr()????? Да и в этой теме уже шла речь об этом же.

Плюс к этому, обратный слэш - это специальный знак. Поэтому два обратных слэша '\\' в итоге преобразуются в строку, состоящую из одного слэша... Для получения строки из двух слэшей надо ввести их 4 штуки: '\\\\'

Спустя 1 минута, 54 секунды (22.04.2010 - 10:00) maxims написал(а):
Цитата (Kukaramba @ 22.04.2010 - 06:30)
И все же. Перепробовал ряд параметров, но так и не смог получить данные ДО знака #....

пробуй explode или strpos.

Спустя 29 дней, 4 часа, 9 минут, 57 секунд (21.05.2010 - 14:10) Kukaramba написал(а):
А есть ли возможность "забирать" определенное количество символов от конца или сначала?
Быстрый ответ:

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