У меня есть скриптик календаря и есть таблица в бд с полем date
Необходимо выбрать из бд информацию за дату, которая выбрана в календаре. Проще говоря: выбираю в календаре 01.01.2006 и выводится инфа из бд за 01.01.2006
Что и как необходимо сделать, чтобы произвести выборку по дате?
Привидите примеры, если это возможно.
Моих знаний минимум.
Привожу код, выбираются все записи из таблицы
//подключение календаря
$fp = fopen('http://xxx.ru/tehnologiparam.html', 'r');
if (!$fp) {
die("файл не открыт");
}
//чтение строк файла
$line=fgets($fp);
//подключение к базе
if ($c = OCILogon("test" , "test" , "localhost")) {
echo "Successfully connected to Oracle. ";
OCILogoff ( $c );
} else {
$err = OCIError ();
echo "Oracle Connect Error " . $err [ text ];
}
//выбор из бд
if ($c = OCILogon("test" , "test" , "localhost")) {
$s = OCIParse($c, "select RN, BANK_DOCDATE, BANK_DOCNUMB from BANKDOCS ");
OCIExecute($s, OCI_DEFAULT);
while (OCIFetch($s)) {
echo "
RN = " . ociresult($s,"RN").
",DATE = " . ociresult($s, "BANK_DOCDATE") .
",NUMBER = " . ociresult($s, "BANK_DOCNUMB") ."
}
}
else
{
$err = OCIError(); echo "Oracle Connect Error " . $err[text];
}
OCILogoff($c);
//закрыть файл календаря
fclose($fp);
?>
Спустя 1 час, 10 минут, 24 секунды (22.01.2007 - 11:05) Leningrad00 написал(а):
Лена, я безмерно счастлив, что ваш Oracle позволяет подобное подключение к себе.
Для того, чтобы произвести выборку по дате необходимо знать, в каком виде дата хранится в базе. Некогда столкнувшись с подобной задачей, я обнаружил, что мой Oracle не хотел записывать дату в нужном виде; нужно было с точностью до секунды, Oracle писал только день. Пришлось поле с датой делать не DATE, а простым текстом, и работу в датами переложить на php.
Примеры:
select * from stat where datetime='11.12.2007'
Ничего не понятно. Спрашивайте дальше, обожаю Oracle.
Для того, чтобы произвести выборку по дате необходимо знать, в каком виде дата хранится в базе. Некогда столкнувшись с подобной задачей, я обнаружил, что мой Oracle не хотел записывать дату в нужном виде; нужно было с точностью до секунды, Oracle писал только день. Пришлось поле с датой делать не DATE, а простым текстом, и работу в датами переложить на php.
Примеры:
select * from stat where datetime='11.12.2007'
Ничего не понятно. Спрашивайте дальше, обожаю Oracle.
Спустя 4 часа, 53 минуты, 13 секунд (22.01.2007 - 15:58) Lena написал(а):
Спасибо за участие!
Как я понимаю, Oracle содержит дату в формате date dd.mm.yy
А вот как дать понять Oracle что необходимо сравнить даты (свои и из календаря) и выдать только необходимую информацию?
Результат работы предудущего кода:
подключение успешное к Oracle.
RN = 11554732,DATE = 26.03.04,NUMBER = 269-3
RN = 11554735,DATE = 16.03.04,NUMBER = 250-3
RN = 11394233,DATE = 26.02.04,NUMBER = 606/1
Как я понимаю, Oracle содержит дату в формате date dd.mm.yy
А вот как дать понять Oracle что необходимо сравнить даты (свои и из календаря) и выдать только необходимую информацию?
Результат работы предудущего кода:
подключение успешное к Oracle.
RN = 11554732,DATE = 26.03.04,NUMBER = 269-3
RN = 11554735,DATE = 16.03.04,NUMBER = 250-3
RN = 11394233,DATE = 26.02.04,NUMBER = 606/1
Спустя 18 часов, 24 минуты, 11 секунд (23.01.2007 - 10:22) Leningrad00 написал(а):
Как:
— обеспечить симпатичный интерфейс для ввода даты;
— обеспечить передачу введенной даты скрипту, обращающемуся к Oracle;
— составить запрос к базе данных.
Что знаем, что делали и что не получилось?
— обеспечить симпатичный интерфейс для ввода даты;
— обеспечить передачу введенной даты скрипту, обращающемуся к Oracle;
— составить запрос к базе данных.
Что знаем, что делали и что не получилось?
Спустя 6 часов, 7 минут, 21 секунда (23.01.2007 - 16:30) Lena написал(а):
Я умею подключаться к базе и выводить всю информацию из таблицы
Не умею выводить информацию по условию.
Мне необходимо только вывести информацию по условию из бд, без редактирования и добавления.
Не умею выводить информацию по условию.
Мне необходимо только вывести информацию по условию из бд, без редактирования и добавления.
Спустя 48 минут, 50 секунд (23.01.2007 - 17:19) Leningrad00 написал(а):
select * from TABLE_NAME where datetime='11.12.2007'
Спустя 1 день, 15 часов, 51 минута, 55 секунд (25.01.2007 - 09:11) Lena написал(а):
это понятно, но не каждый же день исправлять дату. А если тр*цензура*ется посмотреть за прошедшее чило? Или я чего-то не понимаю?
where datetime='11.12.2007'
where datetime='11.12.2007'
Спустя 1 час, 16 минут, 14 секунд (25.01.2007 - 10:27) Lena написал(а):
where datetime='11.12.2007' это-то все понятно - выводится информация за конкретную дату, прописанную в скрипте. Но необходимо выводить информацию за различные даты (как пользователь захочет). Как это осуществить?
Спустя 23 минуты, 5 секунд (25.01.2007 - 10:50) cage написал(а):
Ух ты класс.
Должно быть две странички. На первой располагается поле для ввода даты. Дату вводят либо руками, либо так всеми любимым календариком от Тигры, либо можно приделать интерфейс распознавание человеческой речи. После того, как проблема ввода даты решена, необходимо приступить к реализации кнопочки, нажатие на которую будет перенаправлять нас на страницу, совершающей обращение к базе в зависимости от введенных нами условий. И, наконец, надо сделать вторую страничку, которая будет обращаться к базе и отдавать нам то, что нужно.
Если это очень уж трудно, кричите. Вас услышат.
Должно быть две странички. На первой располагается поле для ввода даты. Дату вводят либо руками, либо так всеми любимым календариком от Тигры, либо можно приделать интерфейс распознавание человеческой речи. После того, как проблема ввода даты решена, необходимо приступить к реализации кнопочки, нажатие на которую будет перенаправлять нас на страницу, совершающей обращение к базе в зависимости от введенных нами условий. И, наконец, надо сделать вторую страничку, которая будет обращаться к базе и отдавать нам то, что нужно.
Если это очень уж трудно, кричите. Вас услышат.
Спустя 4 дня, 5 часов, 38 минут, 54 секунды (1.02.2007 - 16:29) Гость написал(а):
Цитата
надо сделать вторую страничку, которая будет обращаться к базе и отдавать нам то, что нужно.
Календарь осуществлен. База подцеплена и выбираются все данные за все даты (вторая страничка).
А как показать Oracle что необходимо выбрать за определенную дату
Как определить переменные?
Если так, то все катит:
$d=01;
$m=01;
$y=2007;
$s = OCIParse($c, "select RN, BANK_DOCDATE, BANK_DOCNUMB from BANKDOCS where BANK_DOCDATE='$d.$m.$y'");
_____________