Вопрос № 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
--------- Жить хорошо, а хорошо жить еще лучше!
Отвечает: 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
Здраствуйте, уважаемые эксперты!
Пытаюсь изучать РНР, но вот эта программа никак не выходит. Сто раз перепроверял, но загружается пустое окно. Это должна быть игра "сколько лепестков у розы?". Может, вы подскажите, в чем тут дело?
Отвечает: Katyass
у Вас что-то неверно с кодировкой в 19 строке там где написано
print <<<HERE
просто скопируйте ее из другого места (или отсюда) и вставьте.
Ответ отправила: Katyass (статус: 2-ой класс)
Ответ отправлен: 18.07.2007, 10:56 Оценка за ответ: 5 Комментарий оценки: Спасибо, как ни странно, это помогло