[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Форма в цикле.
OlegSuhov
Как правильно решить проблему: форма выводиться в цикле - количество строк для заполнения определяется пользователем $amount.
Сама форма:
Свернутый текст
echo "
<form action='add_menu12.php' method='post' name='menu12' id='menu12'>
"
;
$i = 1;
do {
echo "
<p><label>Наименование <input name='title[
$i]' type='text' value='' size='80' maxlength='500' /></label>
<label>Вес <input name='mass[
$i]' type='text' value='' size='10' maxlength='50' /></label>
<label>Цена <input name='cena[
$i]' type='text' value='' size='5' maxlength='20' /></label>
</p><br />

"
;
}

while (++$i <= $amount);
echo "
<input name='amount' type='hidden' value='
$amount' />
<input name='day' type='hidden' value='
$day' />
<p><input name='submit' type='submit' id='submit' value='Добавить новые позиции' /></p>
"
;

В файле обработчике:
if (isset($_POST['amount'])) {$amount = $_POST['amount'];}
if (isset($_POST['day'])) {$day = $_POST['day'];}
if (isset($_POST['title'])) {$title_m = $_POST['title'];}
if (isset($_POST['mass'])) {$mass = $_POST['mass'];}
if (isset($_POST['cena'])) {$cena = $_POST['cena'];}


$i = 1;
do {
$result = mysql_query ("INSERT INTO menu12 (day,title,mass,cena) VALUES ('$day','$title','$mass','$cena')");

}
while (++$i <= $amount);


В результате в базу правильно летит только day.
Я понимаю что надо правильно занести данные в массив и правильно извлечь, но не умею это делать. Помогите кто разбирается.
Спасибо

 ! 

М
Обрамляйте код тегами [php][/php]
PHPprogramer




Спустя 1 час, 38 минут, 25 секунд (13.07.2011 - 20:50) Gradus написал(а):
видимо особо даже свой собственный код и не смотрел.
$result = mysql_query ("INSERT INTO menu12 (day,title,mass,cena) VALUES ('$day','$title_m','$mass[$i]','$cena[$i]')");

и то $title_m скорее всего имелось ввиду массив.Не код, а бред :)

Спустя 3 минуты, 1 секунда (13.07.2011 - 20:53) Игорь_Vasinsky написал(а):
массив в БД, я бы не советывал (придётся 2 раза работать с массивом - просто сформировал бы таблицу с правильной структурой.), но если всётаки выбран этот путь - то в мануале и в интернете емть много инфы про
array()

как оформлять запросы в БД и что такое конкатенация - у меня в подписи и в журнале моём.

Спустя 1 час, 46 минут, 55 секунд (13.07.2011 - 22:40) OlegSuhov написал(а):
[quote]$result = mysql_query ("INSERT INTO menu12 (day,title,mass,cena) VALUES ('$day','$title_m','$mass[$i]','$cena[$i]')");[/quote]

Это бред из моих попыток создать массив, но в моем сообщении

$result = mysql_query ("INSERT INTO menu12 (day,title,mass,cena) VALUES ('$day','$title','$mass','$cena')");

Хотелось бы увидеть нормальный пример кода, а не обсуждение моих ошибок.
:rolleyes:

Спустя 54 минуты, 29 секунд (13.07.2011 - 23:34) OlegSuhov написал(а):
Цитата
придётся 2 раза работать с массивом - просто сформировал бы таблицу с правильной структурой

Если можно поподробней

Спустя 2 часа, 53 минуты, 16 секунд (14.07.2011 - 02:28) Gradus написал(а):
OlegSuhov, что бы увидеть нормальный пример кода нужно заглянуть в документацию или учебник где есть примеры(не подумайте что я вас посылаю просто это начальные азы и в книжках на первых страницах расположены).У меня большие сомнения что вы вообще вникали в суть написанного так как даже не удосужились сравнить "название" переменных, о чём говорит не понимание моего сообщения выше и вот этот кусок:
$title_m = $_POST['title'];
//и использование $title вместо $title_m

ну если я не прав то извините :)
Цитата

Хотелось бы увидеть нормальный пример кода, а не обсуждение моих ошибок.

т.е. не указывать на ваши ошибки, а сделать за вас работу ? тогда это не в тот раздел.
Цитата
Я понимаю что надо правильно занести данные в массив и правильно извлечь, но не умею это делать.

Ссылки вам дали (вот ещё полезная), с удовольствием помогу если вам нужно будет подсказать алгоритм или разобраться в собственных ошибках, а не готовый код предоставить в виде "примера".

Спустя 1 день, 13 часов, 12 минут, 4 секунды (15.07.2011 - 15:40) OlegSuhov написал(а):
Доброго времени суток. В результате изучения первоисточников и практического метода "тыка" получился код:
Файл заполнения формы
<?php 
echo "<p>Вами выбрано добавление $amount позиций </p><br />

<form action='add_menu12.php' method='post' name='menu12' id='menu12'>
"
;

$i = 1;
do {
echo "
<p><label>Наименование <input name='title[
$i]' type='text' value='' size='80' maxlength='500' /></label>
<label>Вес <input name='mass[
$i]' type='text' value='' size='10' maxlength='50' /></label>
<label>Цена <input name='cena[
$i]' type='text' value='' size='5' maxlength='20' /></label>
</p><br />

"
;
}

while (++$i <= $amount);
echo "
<input name='amount' type='hidden' value='
$amount' />
<input name='day' type='hidden' value='
$day' />
<p><input name='submit' type='submit' id='submit' value='Добавить новые позиции' /></p>
</form>
"
;
?>
Файл обработчика
<?php
$i = 1;
do {
$title_p = $_REQUEST['title'][$i];
$mass_p = $_REQUEST['mass'][$i];
$cena_p = $_REQUEST['cena'][$i];
$result = mysql_query ("INSERT INTO menu12 (day,title,mass,cena) VALUES ('$day','$title_p','$mass_p','$cena_p')");
}
while (++$i <= $amount);
if ($result == 'true') { echo "<p>Новая запись ( $amount ) успешно добавлена в базу!</p>";}
else { echo "<p>Новая запись ( $amount ) не добавлена в базу!</p>";


}
?>

На практике все работает - данные в базу заносятся.
В виду своей неопытности я попрошу более опытных товарищей прокоментировать мое творчество и если есть ошибки - помочь мне их исправить.
Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.