Вопрос № 45716: Добрый день!
Для редактирования таблицы "Работники цеха" базы данных, на главной странице сделал форму, где вводится номер цеха, который передается в PHP-программу.
Программа выбирает все записи данного цеха из таблицы базы и записы...Вопрос № 45719: Здравствуйте, уважаемые экперты! Сделанная мной админка для сайта вообще не показывается в Forefox. Подскажите, пожалуйста, с чем это может быть связано? Ведь от сервера браузер "получает" html-код и в программной части тут вряд ли дело. Мо...Вопрос № 45768: Здраствуйте!
Как на пхп проверить есть ли определенный html код на странице??...Вопрос № 45776: Здравствуйте!
Такой вопрос:
Если я поставлю пароль на папку(напр. через cPanel), а потом из Php скрипта попробую функцию include("папка_на_пароле/файл") Произойдёт ли вставка файла(что-то я сомневаюсь:))? Как это можно сделать(естес...Вопрос № 45807: Здравствуйте эксперты. У меня вот такая проблема:
У меня проект состоящий из 50 страниц(примерно), причем на каждой есть повторяющийся код – это «меню» на страницах, так вот как вынести этот повторяющийся код в отдельный файл или на отдельную стр...
Вопрос № 45.716
Добрый день!
Для редактирования таблицы "Работники цеха" базы данных, на главной странице сделал форму, где вводится номер цеха, который передается в PHP-программу.
Программа выбирает все записи данного цеха из таблицы базы и записывает в таблицу с формой и отображает на экране.
На экране могу редактировать любое поле, но при отправке на сервер
для внесения изменений в базу данных, отправляется всегда последняя
запись.
Фрагмент на PHP прилагаю.
Подскажите, как правильно сделать.
Спасибо.
Приложение:
Отправлен: 09.06.2006, 10:21
Вопрос задал: Eliz (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Stamm
Здравствуйте, Eliz!
Надо в тегах input ставить имена так: N1[] и N2[] и X1[]. Тогда, при вносе в базу данных надо пройдись по всем массивам:
for($i=0;$i
//вставить в БД $_REQUEST['N1'][$i], $_REQUEST['N2'][$i], $_REQUEST['X1'][$i]
}
Приложение:
--------- В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 09.06.2006, 11:06 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: Madproger
Здравствуйте, Eliz!
ВСе дело в этом:
echo "<td> <input type=text name=N1 value='$row[ceh_id]'>
</td>";
echo "<td> <input size=20 type=text name=N2 value='$row[rab_name]'>
У тебя все поля называются одинаково (для каждой записи) - естественно что в POST приходит последняя.
Для того чтобы такого не было во-первых кури массивы а во вторых сделай где то так
echo "<td> <input type=text name=N1[] value='$row[ceh_id]'>
</td>";
echo "<td> <input size=20 type=text name=N2[] value='$row[rab_name]'>
(и где там у тебя еще поля свои для каждой записи)
При сабмите тебе в ПОСТе придет следующее
$_POST['N1'] - массив
$_POST['N2'] - тоже массив
И уже прохождением по этим массивам ты получишь свои данные измененные или нет.
Так же для однозначности советую давать индексы т.е.
.... name=N1[$i] ......
... name=N2[$i] ......
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 7-ой класс)
Ответ отправлен: 09.06.2006, 11:11 Оценка за ответ: 5 Комментарий оценки: Конечно,все-поля-одинаковые. Спасибо.
Отвечает: Константин
Здравствуйте, Eliz!
А что если посмотреть, какая получается результате форма? Получается так:
<input type=text name=N1 value='иванов'>
<input size=20 type=text name=N2 value='Иван'>
<input type=checkbox name=X1>
<input type=text name=N1 value='Петров'>
<input size=20 type=text name=N2 value='Петр'>
<input type=checkbox name=X1>
...
Переменные-то называютс одинаково! Как же ты хочешь чтобы PHP их отличал?
Сделать надо так:
mysql_select_db('compik');
$query = "select * from rab where ceh_id = '$cehid'";
$result = mysql_query($query);
echo "</tr>";
}
Так при сабмите на сервер отправятся 3 массива:
N1, N2, X1. Только вот в массиве X1 будут только те значения которые были отмечены.
Я бы на твоем месте вообще не делал никаких галочек, а просто вывел бы hidden-поле для каждой записи, тоже указав [], чтобы был массив(<input type="hidden" name="ids[]" value="$ID">). А потом прошелся бы по этому массиву, и, используя в виде ключа значение, которое является ID для каждой записи. И все, все что надо - обновлено :)
Хочешь - можешь подумать, как это делать с галочками. Там тебе надо будет тоже делать hidden-поле, и действовать аналогично, но замену проводить только там где была выбрана галочка.
Полезная функция для этого - in_array(), про нее - на php.net почитай
--------- Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 6-ой класс)
Ответ отправлен: 09.06.2006, 13:56 Оценка за ответ: 5 Комментарий оценки: Огромное Спасибо за урок!!!!!
Вопрос № 45.719
Здравствуйте, уважаемые экперты! Сделанная мной админка для сайта вообще не показывается в Forefox. Подскажите, пожалуйста, с чем это может быть связано? Ведь от сервера браузер "получает" html-код и в программной части тут вряд ли дело. Может, для возможности отобр. в разных браузерах нужно использовать вместо одних тегов - другие, или какие-то вообще не использовать? Можете ли что-нибудь посоветовать. В IE показывается нормально. Заранее благодарен!
Отвечает: PVS
Здравствуйте, Андрющенко Вячеслав Васильевич!
Возможно Вы используете JavaScript. Тогда надо анализировать (средствами JavaScripta) какой броузер используется и в зависимости от этого использовать синтаксис, который поддерживает этот броузер. Можно условно поделить броузеры на группы:
- Internet Explorer - совместимые
- Netscape 4 - совместимые (Firefox здесь!)
- Netscape 6 и выше - совместимые
- Старые Netscap'ы, Explorer'ы и прочие не поддерживающие JavaScript или поддерживающие очень слабый его вариант
В зависимости от того к какой группе принадлежит броузер пользователя он будет "понимать" JavaScript по-разному (или вообще не понимать).
Ответ отправил: PVS (статус: 3-ий класс)
Ответ отправлен: 09.06.2006, 15:59 Оценка за ответ: 5
Отвечает: Wolfis
Здравствуйте, Андрющенко Вячеслав Васильевич!
Вот тут былобы неплохо увидеть код одной из страничек админки(html естественно) могу предположить, что ты переборщил с java скриптами или или со слоями css. Тоесть ты мог задать координаты слоя таким образом, что в Firefox они отображаются за пределами экрана, случай был. Вообще в админке лучше использовать табличную верстку и минимум наворотов.
Ответ отправил: Wolfis (статус: 1-ый класс)
Ответ отправлен: 10.06.2006, 05:58
Вопрос № 45.768
Здраствуйте!
Как на пхп проверить есть ли определенный html код на странице??
Отправлен: 09.06.2006, 19:28
Вопрос задал: SKC (статус: 2-ой класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Селев Валерий
Здравствуйте, SKC!
$htmlCodeToFind = "<span>то, что надо найти</span>";
$sFile = file_get_contents("http://www.php.net");
$pos = strpos($mystring, $findme);
echo $pos?"Код присутствует":"Код отсутствует";
Ответ отправил: Селев Валерий (статус: 1-ый класс)
Ответ отправлен: 09.06.2006, 19:39 Оценка за ответ: 5 Комментарий оценки: Спасибо! Попробую.
Отвечает: Cimus
Здравствуйте, SKC!
Вам поможет функция strpos(data , string substring,integer offset)
data - строка в которой производиться поиск
string substring - то, что надо искать
integer offset - (необязательный аргумент)начать поиск с указанного положения
Эта функция возвращает положение аргумента string substring в аргументе data,
если string substring появляеться более одного раза будет возвращено положение первого появления в стороке, если не найденно то, что искали то функция возвращает false.
Пример использования:
$poisk='то, что ищем';
$html='html код считаный в одну строку';
if(strpos($html,$poisk))
{
нашли
}
else
{
не нашли
}
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 1-ый класс)
Ответ отправлен: 09.06.2006, 21:45
Отвечает: Cybernetic_Creature
Здравствуйте, SKC!
if (strpos(join('',file('file.html')),'<table')!==false) echo "Tag table jest v etom fayle"
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 10.06.2006, 13:07
Вопрос № 45.776
Здравствуйте!
Такой вопрос:
Если я поставлю пароль на папку(напр. через cPanel), а потом из Php скрипта попробую функцию include("папка_на_пароле/файл") Произойдёт ли вставка файла(что-то я сомневаюсь:))? Как это можно сделать(естественно, зная пароль:))?
Отвечает: Селев Валерий
Здравствуйте, Dushin Igor!
А попробовать? ;)
Поставив пароль на папку через cPanel, ты ограничиваешь доступ к ней при отдаче файла сервером (.htaccess).
При использовании функции include(), доступ к файлу осуществляестся средствами API OS, .htaccess-файл в этом случае никак не влияет на процесс, и скрипт будет успешно подключен.
Ответ отправил: Селев Валерий (статус: 1-ый класс)
Ответ отправлен: 09.06.2006, 21:51
Отвечает: Cybernetic_Creature
Здравствуйте, Dushin Igor!
да произойдет
потому что контрол панель не сможет дать пароль на уровне ОС.
и вообще такое не возможно.
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 10.06.2006, 13:05
Вопрос № 45.807
Здравствуйте эксперты. У меня вот такая проблема:
У меня проект состоящий из 50 страниц(примерно), причем на каждой есть повторяющийся код – это «меню» на страницах, так вот как вынести этот повторяющийся код в отдельный файл или на отдельную страницу, чтоб он подставлялся в страницы (меню подставлялось на страницы), как сделать это с помощью PHP? А если мне понадобиться изменить «меню», то не хотелось бы менять меню на всех страницах, а проще сделать меню на одной и там его изменять. Я сам только начинаю изучать PHP, и поэтому не могу пока сделать то что
описано выше, поэтому просьба помогите в этом деле нужен работающий скрипт на php. Если что скрипт собираюсь поставить суда http://khandyga.ya1.ru/
Заранее благодарен.
Отправлен: 10.06.2006, 09:02
Вопрос задал: Озон (статус: 3-ий класс)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 21)
Отвечает: dns
Здравствуйте, Озон!
Делается это очень просто
на каждой странице прописывать следующие строки (см. Приложение)
Приложение:
Ответ отправил: dns (статус: 5-ый класс)
Ответ отправлен: 10.06.2006, 09:07 Оценка за ответ: 5 Комментарий оценки: Эти строки насколько я понял из статейт по PHP можно также поместить в таблице. про это я более менее понял, а вот что должно быть написано в самом файле menu.php какие данные php? если можно простой пример напишите.... я его потом попробую под свой сайт немного изменить, и желательно с пояснением что к чему.
Отвечает: Ерёмин Андрей
Здравствуйте, Озон!
Кроме require() ещё можно использовать include(). Разницы между ними существенной нет, но как правило include() используют для вставки содержимого, а require() - для подключения модулей с дополнительными переменными.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 10.06.2006, 09:30 Оценка за ответ: 4 Комментарий оценки: а точнее какой из них? и что писать в самом подключаемом файле?
Отвечает: Антонов Никита Вячеславович
Здравствуйте, Озон! Для подобных действий обычно используется четыре функции
1 - include обычно служит для подключений разных модулей и содержимого, вообщем того, что отображаетс на экране. Если файла нет, или он недоступен выводит ошибку, и скрипт продолжает работу
2 - require обычно служит для подключения важных модулей, которые не выводятся на экран. Если файла нет или он недоступен - ваш скрипт прекращает работу.
3, 4 - include_once и require_once используются для того, что бы подключить файл ОДИН раз. При повторном подключении функции require и include выдают ошибки. Я обычно этими функцями не пользуюсь, так как у моих скриптов есть твёрдая хорошая структура. Но новичкам иногда эта функция будет полезна при отлове ошибок (в конечном варианте можно _once удалить)
--------- Прежде чем идти к цели, подумай, стоит ли она того
Ответ отправил: Антонов Никита Вячеславович (статус: 1-ый класс)
Ответ отправлен: 10.06.2006, 10:53 Оценка за ответ: 4 Комментарий оценки: а точнее какой из них? и что писать в самом подключаемом файле?
Отвечает: Jeka911
Здравствуйте, Озон!
Я делаю немного по-другому. Создаю простенький шаблон (с меню, счетчиками и т.д.), а в нем место, куда будет подставляться тело документа (текст, картинки...) помечаю специальными символами (напр. %body%), а в рнр загружаю этот шаболон, а затем меняю спец. символы на содержимое документа. echo str_replace("%body%","текст страницы",$htm);, где $htm - загруженый из файла шаблон.
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус: 4-ый класс)
Ответ отправлен: 10.06.2006, 12:11 Оценка за ответ: 3
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Озон!
Там, где вы хотите, чтобы было Ваше меню необходимо, как вам уже и написали, вставить строки:
include("menu.html");
?>
а в сам файл menu.html нужно писать то, что должно быть вместо строк вставки для того, чтобы правильно отображалось меню. Для твоего случая в нем должна быть только табличка в которой находятся ссылки. Чтобы лучше понять действие скрипта, представь что перед обработкой файла php вместо этих трех строк будет вставлено содержимое файла menu.html и ты поймешь, что должно быть в нем написано.
--------- Ответы на все вопросы - на сайте www.ya.ru :)