Вопрос № 53223: Уважаемые Эксперты! Я только учу php!
Два вопроса
1 в учебник код для просмотра содержимого таблицы она не работает в чем причина!
2 как можно показать конкретную строку например сделать поиск по фамилии и вывести его в таблицу.
спаси...Вопрос № 53267: Master
сообщение Сегодня, 18:03
Сообщение #1
Группа: Клиенты
Сообщений: 226
Регистрация: 27.5.2006
Из: Новочебоксарск - новый промышленный центр, возникший при строительстве Чебоксарской ГЭC.
Пользователь №: 43 532<...Вопрос № 53302: Господа эксперты, спасите чайника, не дайте погибнуть от собственной глупости?
Имеется таблица с тремя полями: ID, дата и текст. Календарь событий, вобщем. Нужно чтобы скрипт выдавал список событий на ближайшие, скажем, три дня. А я никак не могу...
Вопрос № 53.223
Уважаемые Эксперты! Я только учу php!
Два вопроса
1 в учебник код для просмотра содержимого таблицы она не работает в чем причина!
2 как можно показать конкретную строку например сделать поиск по фамилии и вывести его в таблицу.
спасибо.
Далее код для первого вопроса
Приложение:
Отправлен: 25.08.2006, 12:00
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Козлов Алексей Сергеевич
Здравствуйте, ERA!
1. Я бы переписал цикл вывода так:
2. Для выбора строк по определенной фамилии SQL запрос переписывается так:
$sql = "SELECT id, name, phone FROM $dtable WHERE 'Фамилия';";
Для удобства и возможности работы с формами переписываем следующим образом:
$str = "'Фамилия'"; // Сюда подставляем нужную фамилию
так как строковые значения должны обрамляться ' то применяем экранирование т.е. '
$sql = "SELECT id, name, phone FROM $dtable WHERE $str ";
--------- Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов Алексей Сергеевич (статус: 6-ой класс)
Ответ отправлен: 25.08.2006, 12:20 Оценка за ответ: 5 Комментарий оценки: Спасибо!!!
Отвечает: C4tnt
Здравствуйте, ERA!
Небольшое дополнение к предыдущему ответу:
$sql = 'SELECT `Поле1`,`Поле2` FROM `Таблица` WHERE `ПолеСФамилией` = ''.$Str.'''
Здесь Поле1, Поле2 и т.п - поля, которые вы хотите получить из таблицы в результате запроса (если нужны все - пишите так: SELECT * FROM ...)
Таблица - имя таблицы.
ПолеСФамилией - название поля, в котором находится фамилия.
$Str - сама фамилия.
Названия полей заключены в `` (для надёжности); текст - в ' '
Если не заключать названия полей в кавычки возможны ошибки sql запроса
при некоторых названиях (пример: 11, 2gfd, Big Bug)
Если не заключать текст в одиночные кавычки - те же проблемы
Вместо = можно написать LIKE - получим сравнение фамилий без учёта кодировки но с учётом настроек локали.
--------- Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: C4tnt (статус: 2-ой класс)
Ответ отправлен: 25.08.2006, 13:17 Оценка за ответ: 5 Комментарий оценки: Спасибо!!! За дополнение!!!
Вопрос № 53.267
Master
сообщение Сегодня, 18:03
Сообщение #1
Группа: Клиенты
Сообщений: 226
Регистрация: 27.5.2006
Из: Новочебоксарск - новый промышленный центр, возникший при строительстве Чебоксарской ГЭC.
Пользователь №: 43 532
заголовок поправте... mysql
Значит скачал с сайтов пас версии апача(2.2) и пхп(5.2). Так вот, все настроил, все нормально, php.ini тоже настроил и добавил в папку где windows, но вот остается добавить код
Код
AddType application/x-httpd-php phtml php
<Directory "c:/php">
Options ExecCGI
</Directory>
ScriptAlias "/php_dir/" "c:/php/"
Action aplication/x-httpd-php "/php_dir/php-cgi.exe"
Ладно, добавляю его в файл httpd.conf. Хорошо, перезапустил сервер. Пишу localhost, и пробую открыть предварительно закаченный пхп файл... Но почему то не работает интерпретатор, просто выходид сообщение типа сохранить, или открыть с помощью...
Никто не знает в чем проблема? Все таки сервак то тестовый нужно настроить...
Отвечает: Марк Крейн
Здравствуйте, Фадеев Руслан Сергеевич!
Модифицируйте код следующим образом: (см. приложение)
Приложение:
Ответ отправил: Марк Крейн (статус: Студент)
Ответ отправлен: 25.08.2006, 20:28 Оценка за ответ: 4
Вопрос № 53.302
Господа эксперты, спасите чайника, не дайте погибнуть от собственной глупости?
Имеется таблица с тремя полями: ID, дата и текст. Календарь событий, вобщем. Нужно чтобы скрипт выдавал список событий на ближайшие, скажем, три дня. А я никак не могу разобраться, как мне сравнивать даты и вычислять разницу :( И кроме того, как сделать, чтобы эта же таблица годилась и на следующий год?
Помогите, плиз? Хоть в нужную сторону пните... Заранее благодарна.
Отправлен: 26.08.2006, 01:40
Вопрос задала: Rori (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Cimus
Здравствуйте, Rori!
SELECT* FORM `Ваша таблица` WHERE `data` >=текущий день AND `data`<=текущий день + n-дней
Запрос по такой схеме выдаст все запися удовлетворяющие условию - сегодня и ближайшие n дней.
Я в свою очередь сделал бы поле дата типа int и записыал туда время в формате unixtime которое возвращает функция time(); (Эта функция возвращает количество секунд для текущей временной отметки прошедшие с 1 января 1970года)
Для определения даты на 3 дня вперёд можно поступить следующим образом
$date=time()+(60*60*24*3);
Для определения даты на 3 дня назад можно поступить следующим образом
$date=time()-(60*60*24*3);
Соответственно таким образом можно вычислить любую дату отличную от текущей путём сложения и вычитания колличества секунд.
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 26.08.2006, 02:27 Оценка за ответ: 4 Комментарий оценки: Спасибо, все понятно :) Не подскажете еще, как бы мне сделать, чтобы та же аблица годилась и на следующий год?.. ведь для 5 января 2006 и 5 января 2007 unixdate будет разным... перезаполнять ее 31 декабря, прибавляя ко всем датам год?а как?
Отвечает: din
Здравствуйте, Rori!
Таблица в какой БД? В SQL запросе сделать выборку за 3 последние дня легче некуда, вот пример запроса: "SELECT ID, DATA, TEXT WHERE DATA >= (Текущая_Дата - 3)".
Текущая_Дата - заменяется функцией получения системной даты в конкретной СУБД. Для Оракл это SYSDATE(), для MS SQL - GETDATE(), для MySQL - CURDATE() и так полный запрос для MySQL выглядит так: "SELECT ID, DATA, TEXT WHERE DATA >= (CURDATE() - 3)". Ну и собственно все, можно еще передавать дату. при таком подходе год не причем, удачи!
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: din (статус: Студент)
Ответ отправлен: 26.08.2006, 02:40 Оценка за ответ: 5 Комментарий оценки: Спасибо! Простите, забыла указать. БД - MySQL. Надо бы мне побольше про действия с датами почитать. И все же, как сделать чтобы календарь был универсальным? То есть одно и то же событие выводилось и для 5 января 2006, и для 5 января 2007 и т.д.?Ведь в базе даты хранятся вместе с годом?То есть, формат DATE предполагаети год, и месяц, и день?