Отправляет email-рассылки с помощью сервиса Sendsay

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

  Все выпуски  

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 891
от 12.02.2008, 17:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 122010: Здравствуйте товарищи программисты. Я только пытаюсь изучить PHP и столкнулся вот с такой проблемкой: существует база данных mysql с таблицей телефоны, в которой есть поля: фамилия, имя, телефон, адрес и т.п., у меня получаестся делать разны...
Вопрос № 122071: Здравствуйте, пишу каталог предприятий. Сайт предприятия добавляется только при условии, что на сайте есть ссылка на мой каталог. Каким образом я могу проверить наличие ссылки на мой сайт, приведите пожалуйста пример скрипта, необходим ли на сервере ...

Вопрос № 122.010
Здравствуйте товарищи программисты. Я только пытаюсь изучить PHP и столкнулся вот с такой проблемкой:

существует база данных mysql с таблицей телефоны, в которой есть поля: фамилия, имя, телефон, адрес и т.п., у меня получаестся делать разные sql запросы к базе и получать результаты, но как сделать форму (форму поиска, что ли) точнее форму я понимаю как сделать в html, а вот обработчик этой формы на PHP не понимаю.;-(
подскажите пожалуйста.

код формы ниже

Приложение:

Отправлен: 06.02.2008, 22:09
Вопрос задал: Шкаляров Максим (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Товарищ Бородин
Здравствуйте, Шкаляров Максим!
На самом деле ничего сложного здесь нет. Вам надо в обработчике формы выполнять запрос следующего вида:

"SELECT `phone` FROM `Ваша таблица` WHERE `фамилия` = '".$_POST['last_name']."' OR `адрес` = '".$_POST['address']."' ORDER BY `phone` ASC";

Я переименовал Ваши поля для адреса и фамилии, как address и phone, соответственно. У Вас в Вашей форме два текстовых поля с одинаковыми именами. Понятное дело, что корректно Ваше приложение работать не будет.

Остается вопрос, зачем нужны галочки. Если Вы таким образом хотите сказать, что скрипт должен искать точные совпадения фамилии и адреса, то галочки следует использовать таким образом (объясняю на метаязыке):

- при посыле формы скрипту строится запрос. В любом случае, независимо от того, будут отмечены галочки или нет, будет использоваться следующая конструкция:

"SELECT `phone` FROM `table` WHERE $last_name OR $address ";

- при проверке отмеченности галочек мы будем присваивать переменным $last_name и $address различные значения:
если отмечена первая галочка, то $last_name = "`last_name` = '$_POST['last_name']'", в противном случае $last_name = "`last_name` RLIKE '%".$_POST['last_name']."%'";
если отмечена вторая галочка, то делаем таким же образом:
$address = "`address` = '".$_POST['address']."'", в противном случае:
$address = "`address` RLIKE '%".$_POST['address']."%'".

В чем заключается основная мысль? В том, что при точном поиске мы ищем в таблице точное совпадение значения текстового поля с соответствующим полем таблицы, а при "неточном" поиске мы ищем все соответствующие поля, в которые входит подстрока - значение текстового поля, то есть, проверяем поля на соответствие регулярному выражению '%$_POST['address']%' или '%$_POST['last_name']%'.

После того, как запрос сформирован, остается его выполнить. Как выполнять запрос, я думаю, Вы знаете.

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

После того, как запрос выполнен, надо вытащить все записи на свет Божий(то есть, вывести в окно браузера). Думаю, Вы должны знать, как это делается, поэтому объяснять не буду.

Нет нужды напоминать, что есть внутренняя почта, куда Вы можете задать вопрос, если что-то непонятно.
Удачи! С уважением, Товарищ Бородин

Приложение:

---------
Ничто не сближает людей так, как совместное преступление.

Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 07.02.2008, 08:17
Оценка за ответ: 5
Комментарий оценки:
БОЛЬШОЕ СПАСИБО! ВСЁ ПРОСТО И ДОСТУПНО

Отвечает: Давыденко Андрей
Здравствуйте, Шкаляров Максим!

Хотелось бы добавить, что в строке
<form name="form_poisk" method="post" action="">
необходимо добавить страницу - обработчик, т.е. action="obrabotchik.php", где obrabotchik.php - Ваша страница, в которой будет выполняться код, описанный тов. Бородиным.

С наилучшими пожеланиями.
Ответ отправил: Давыденко Андрей (статус: 2-ой класс)
Ответ отправлен: 07.02.2008, 14:11


Вопрос № 122.071
Здравствуйте, пишу каталог предприятий. Сайт предприятия добавляется только при условии, что на сайте есть ссылка на мой каталог. Каким образом я могу проверить наличие ссылки на мой сайт, приведите пожалуйста пример скрипта, необходим ли на сервере cron чтобы скрипт проверял наличие ссылки с определенной периодичностью?
Заранее благодарю.
Отправлен: 07.02.2008, 12:30
Вопрос задал: Акопов Сергей Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Товарищ Бородин
Здравствуйте, Акопов Сергей Сергеевич!
Проверять наличие ссылки можно по регулярному выражению или с помощью функций PHP для работы с текстом. Как это можно сделать. Например, у Вас есть в каталоге страница для пользователей других сайтов, на которой они могут добавить свой сайт в Ваш каталог. Они вводят точный адрес сайта "www.theirsite.com", описание сайта, а затем посылают форму обработчику. Обработчик с помощью функций для работы с файлами получает HTML-код главной страницы сайта, проверяет наличие в коде ссылки на Ваш сайт, и в зависимости от результата поиска либо добавляет сайт в каталог, либо говорит пользователю, что ему надо сначала добавить ссылку на свой сайт. При этом было бы хорошо, если HTML-код ссылки ему сразу и выдавался. Чтобы осталось только HTML-код скопировать и вставить, куда следует.

На что следует обратить внимание... Надо узнать, позволяют ли настройки PHP на Вашем сервере открывать URL. Директива, если мне память не изменяет, allow_url_open должна быть в значении on(или 1), но не off, и не 0. Она, эта директива, в PHP.INI точно есть, так что если есть доступ к нему, посмотрите. Либо выведите на экран PHPINFO() и посмотрите там.

Далее... Простые строковые с бОльшим трудом, чем функции для работы с регулярными выражениями, позволяют учесть такой момент - пользователь может закомментировать ссылку на Ваш сайт. Таким образом, ссылка будет видна PHP-скрипту, но не будет видна пользователю(если, конечно, он не догадается посмотреть HTML-код страницы, что для обычных пользователей - то еще "удовольствие"). Регулярные выражения позволяют учесть этот момент. Но выражение будет сильно осложняться.

Привожу возможное решение в приложении. Не поручусь за то, что работает регулярное выражение, его бы потестировать, а у меня такой возможности, к сожалению, нет сейчас. Но направление работы настоятельно рекомендую такое.
С уважением, Товарищ Бородин
---
-=ПРИЛОЖЕНИЕ=-
---

Для сохранения полноценного ответа код перенесен в отдельный текстовый файл по просьбе эксперта.
-----
∙ Отредактировал: deepTeNk (Академик)
∙ Дата редактирования: 07.02.2008, 15:11

---------
Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 07.02.2008, 13:39
Оценка за ответ: 4


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное