RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 445
от 31.08.2006, 12:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 340, Экспертов: 44
В номере:Вопросов: 3, Ответов: 5


Вопрос № 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. Я бы переписал цикл вывода так:

while($rw = mysql_fetch_array($result))
{
echo "<tr><td width=0>" . $rw['id'] . "</td><td width=166>" . $rw['name'] . "</td><td width=98>" . $rw['phone'] . "</td></tr>";
}

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, 18:06
Вопрос задал: Фадеев Руслан Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Марк Крейн
Здравствуйте, Фадеев Руслан Сергеевич!
Модифицируйте код следующим образом: (см. приложение)

Приложение:

Ответ отправил: Марк Крейн (статус: Студент)
Ответ отправлен: 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 предполагаети год, и месяц, и день?


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное