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

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

  Все выпуски  

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


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

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

Выпуск № 720
от 23.07.2007, 06:35

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


Вопрос № 95468: Здравствуй, уважаемый All! Подскажите, пожалуйста, решение такой проблемы, помучался, помучался, да так и не домучал :) Есть форма, с нее передаются массив улицы и номера домов, пусть будет как $_REQUEST[street] и, соответственно, $_REQUEST[h...
Вопрос № 95478: 1) где можно взять хорошую русскую документацию по php для офлайнового просмотра? 2) какой редактор посоветуете (у меня сейчас http://www.winsyntax.com/ этот, но он без хелпа по пхп)...
Вопрос № 95496: Здраствуйте, уважаемые эксперты! Пытаюсь изучать РНР, но вот эта программа никак не выходит. Сто раз перепроверял, но загружается пустое окно. Это должна быть игра "сколько лепестков у розы?". Может, вы подскажите, в чем тут дело?...

Вопрос № 95.468
Здравствуй, уважаемый All!
Подскажите, пожалуйста, решение такой проблемы, помучался, помучался, да так и не домучал :)
Есть форма, с нее передаются массив улицы и номера домов, пусть будет как $_REQUEST[street] и, соответственно, $_REQUEST[house]. Причем значения в них представляются как 0=Ленина, 1=Чучембекова (массив улиц); 0=12,14,16-30,41 (массив домов, дома можно вводить через запятую и тире). Как все это дело красиво запихнуть в БД? Намучался с foreach, но нет результата. В БД (мускул) есть табличка, где есть поля - street и house, куда, естественно, нужно записать названия улиц и соответствующие им номера домов. Как все это провернуть? Может, есть более элегантное решение? В приложении привожу код фрагмента JavaScript, к-ый по щелчке кнопки добавляет новые элементы input box (на случай. если улиц больше, чем одна)

Приложение:

Отправлен: 17.07.2007, 19:29
Вопрос задал: Porsche (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Flynn
Здравствуйте, Porsche!
Если ты хранишь только улицы и названия квартир - то как бы можно воспользоваться и одной таблицей, где на каждую улицу в соседней клетке идет запись квартир. Но это не рекомендуется правилами нормализации таблиц. А если например ты будешь хранить еще запись напирмер количество квартир в доме, или же будет реализован поиск есть ли такой дом на такой улице - то тогда надо делать две таблицы. первая - улицы (айди улицы, название улицы, ...параметры улицы), вторая - дома (айди дома, айди улицы на которой стоит дом, номер дома,...параметры дома). И соответственно вначале вставляешь в базу саму улицу, потом с помощью mysql_insert_id() получаешь её айди и каждый дом заносишь в базу данных (Insert Into houses (street_id,house_num) Values ('1','1'),('1','2')... Каждое значение в скобках - новый дома. Айди дома мускул должен вносить самостоятельно (auto_increment).

Если у тебя проблема с генерацией запросов (Намучался с foreach, но нет результата - судя по этому), то тогда посоветовал бы использовать кроме foreach еще explode(",",$value) - разбивает значение value в массив через указаный разделитель (запятая) и implode(",",$value) - обратный процес - массив собирает в строку, записывая значения через разделитель (тоже запятая). И соответственно в одном массива получить названия улиц ("0"-"Ленина", "1"-"Чучумбы") и во второй названия домов, но уже без всяких тире, а целый список ("0"-array(1,2,3,4,6,10,12,13), "1"-array(2,3,4,5,...)). Лично я в это особо сильно проблемы не вижу.
Ответ отправил: Flynn (статус: 2-ой класс)
Ответ отправлен: 17.07.2007, 20:49

Отвечает: Powoditch konstantin
Здравствуйте, Porsche!
В приложении исправленый вариант скрипта. Для добавления записей в таблицу делаете такую проверку:
$streets = $_REQUEST['street'];//получаем два масива с домами и улицами
$houses = $_REQUEST['house'];
if (!empty($streets) && !empty($houses)){
//записуем улицы
for($i=0; $i<count($streets);$i++){
$sql = "INSERT INTO table ?? (street) VALUES ".addslashes($streets[$i]);
}
//записуем дома
for($i=0; $i<count($houses);$i++){
//рязбиваем по запятым
$tmp=explode(",",$houses[$i]);
for ($j=0; $j>count($tmp);$j++){
if (!substr_count("-", $tmp[$j]) {
//если это просто число то записуем его
$sql = "INSERT INTO table ?? (house) VALUES ".addslashes($tmp[$j]);
}// если это два числа (12-14)
else {//то сначала разбиваем их в масив, а потом проходимся по нему и записываем значения в БД
$t = explode("-",$tmp[$j]);
for($k=$t[0]; $k<$t[1];$k++){
$sql = "INSERT INTO table ?? (house) VALUES ".addslashes($t[$k]);
}
}
$sql = "INSERT INTO table ?? (street) VALUES ".addslashes($streets[$i]);
}
Прошу прошения за возможные ошибки, писал на коленке. Вам следует еще проверять более тщательно входные данные. Удачи.

Приложение:

Ответ отправил: Powoditch konstantin (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 01:34


Вопрос № 95.478
1) где можно взять хорошую русскую документацию по php для офлайнового просмотра?
2) какой редактор посоветуете (у меня сейчас http://www.winsyntax.com/ этот, но он без хелпа по пхп)
Отправлен: 17.07.2007, 20:51
Вопрос задал: Иван Кодер (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gines
Здравствуйте, Иван Кодер!

1) http://softtime.ru/info/bookphp.php - рекомендую, это некая смесь учебника и справочника, не раз мне помогал.

2) Советую использовать Macromedia DreamWeaver последней версии, очень удобный, подсвечивает код и выдаёт подсказки, а также имеет хелп, но на английском.

Ответ отправил: Gines (статус: 2-ой класс)
Ответ отправлен: 17.07.2007, 22:27

Отвечает: Заикин Олег
Здравствуйте, Иван Кодер!
1. http://ru2.php.net/get/php_manual_ru.chm/from/this/mirror - официальная русская документация (CHM). Лучше нее может быть только английская версия, в которой есть комментарии пользователей с огромным количеством примером. (Так что рекомендую все-таки остановитсья на английской версии).

2. Перепробовал кучу редакторов и остановился на PHP Expert Editor. Умеет все, что должен делать отличный редактор (подсветка, подсказки, автодополнение, макросы и т.д.) + бесплатен. http://www.ankord.com/ru
Ответ отправил: Заикин Олег (статус: 1-ый класс)
Ответ отправлен: 18.07.2007, 00:39

Отвечает: Powoditch konstantin
Здравствуйте, Иван Кодер!
1. Довольно хорошая оффлайновая версия по php.
http://www.php.net/download-docs.php
ТАм сами выберете в каком формате Вам она нужна.
Ответ отправил: Powoditch konstantin (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 01:40

Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Иван Кодер!
1)Используй http://www.php.net/manual/ru/ .Этот ресурс часто мне помогал
2)В качестве редактора php-кода очень советую PHP Expert Editor. Прога бесплатная абсолютно. И лицензию можно получить бесплатно. Скачать:http://www.softportal.com/freesoftware/304
---------
Жить хорошо, а хорошо жить еще лучше!
Ответ отправил: Емельянов Данил Юрьевич (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 08:27

Отвечает: Santana
Здравствуйте, Иван Кодер!
на первый вопрос http://www.php.net/manual/ru/funcref.php и лучше нету
на второй подойдет любой текстовый редактор
Ответ отправил: Santana (статус: 9-ый класс)
Ответ отправлен: 18.07.2007, 09:08

Отвечает: Katyass
я 6 лет пишу на пхп и мне кажется, что:
1. для онлайна - http://www.php.net/docs.php там же и скачать можно если надо
2. если серьезно заниматься пхп то только Zend (dreamweaver больше для хтмл кодинга, текстовые редакторы - сами понимаете, можно конечно использовать PHP Expert Editor но он менее навороченный :))
вообщем - удачки!
Ответ отправила: Katyass (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 11:36

Отвечает: Sema
Здравствуйте, Иван Кодер!

Я на megalib.com нашел клевую книжку...по ПХП 5
и еще много интересного етсь на www.denwer.ru
Ответ отправил: Sema (статус: 1-ый класс)
Ответ отправлен: 18.07.2007, 16:34


Вопрос № 95.496
Здраствуйте, уважаемые эксперты!
Пытаюсь изучать РНР, но вот эта программа никак не выходит. Сто раз перепроверял, но загружается пустое окно. Это должна быть игра "сколько лепестков у розы?". Может, вы подскажите, в чем тут дело?

Приложение:

Отправлен: 18.07.2007, 00:29
Вопрос задал: Павел Владимирович (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Katyass
у Вас что-то неверно с кодировкой в 19 строке там где написано
print <<<HERE
просто скопируйте ее из другого места (или отсюда) и вставьте.
Ответ отправила: Katyass (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 10:56
Оценка за ответ: 5
Комментарий оценки:
Спасибо, как ни странно, это помогло


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

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

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

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

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


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


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

В избранное