|
|
|
| Исходные данные: В таблице REQUESTS расположено N записей, причем id у них может
идти не по порядку (могли удаляться записи). N - неизвестное число.
СТРУКТУРА БД
--REQUESTS-------
->[id][name][extra]
| -xx--xxxx--xxxxx-
^ -----------------
|
^-<-<-<-<-<-
|
|
--OFFERS-----------------------
[id][price][extra][id_requests]
-xx--xxxxx--xxxxx-------xx-----
-------------------------------
|
Задача: Сделать для каждой записи из REQUESTS
"INSERT INTO offers
VALUES (DEFAULT, $_POST[price], $_POST[price], $_POST[requests_id]);"
Порядок действий:
1. Подключаюсь к базе;
2. Запрашиваю данные таблицы REQUEST;
2. Делаю fetch_array в цикле, в котором вывожу таблицу расположенную между комментаторами;
// HTML код
<form name="add_offer" method="post" action="xxx.php">
<table border='0' cellspacing='1' cellpadding='3'>
<!-- !!!Эта часть HTML повторяется для каждой записи!!! -->
<tr>
<td> [name] </td>
<td> [extra] </td>
<td> <input name=price type=text value= size=8></td>
<td> <input name=extra type=text value= size=30></td>
<td> <input name=request_id type=hidden value=[id]></td>
</tr>
<!-- !!!Эта часть HTML повторяется для каждой записи!!! -->
</table>
<input name="submit" type="submit" value="Сделать предложение">
</form>
|
Подскажите пожалуйста, каким образом мне записывать поле name, чтобы
я потом смог вытащить их из $_POST и занести в таблицу offers без ошибок. | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 09:26)
| |
<?
while($row=array_fetch($res))
{
?>
<form name="add_offer" method="post" action="xxx.php">
<table border='0' cellspacing='1' cellpadding='3'>
<!-- !!!Эта часть HTML повторяется для каждой записи!!! -->
<tr>
<td> [<? echo $row['name']; ?>] </td>
<td> [<? echo $row['extra']; ?>] </td>
<td> <input name=price[<? echo $row['id']; ?>] type=text value= size=8></td>
<td> <input name=extra[<? echo $row['id']; ?>] type=text value= size=30></td>
</tr>
<!-- !!!Эта часть HTML повторяется для каждой записи!!! -->
<?
}
</table>
<input name="submit" type="submit" value="Сделать предложение">
</form>
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 10:22)
| | разве можно в хтмл массивы указывать???
даже если можно, как я их из $_POST потом вытащю если я незнаю их ID (соответственно их номера ячеек массива)...? | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 10:53)
| | Можно и нужно. Примерно так.
<?
$querylist = array();
if(isset($_POST['price']))
{
foreach($_POST['price'] as $id => $price)
{
$extra = $_POST['extra'][$id]
$querylist[] = "UPDATE $table (price,extra) VALUES('$price', '$extra') WHERE id = $id";
}
}
foreach($querylist as $query)
mysql_query($query);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 11:20)
| | а зачем вот это:
<td> [<? echo $row['name']; ?>]</td>
<td> [<? echo $row['extra']; ?>]</td>
|
[ ][ ]
?? | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 11:27)
| | Я думал - для наглядности. Не нужно - уберите.
Правда я не рискнул бы такую таблицу вслепую заполнять. | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 11:30)
| | в смысле всепую?
перед занесением в бд ясное дело обрабатываю данные, или вы ни это имеет ввиду? | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 11:33)
| | не могли бы вы прокоментировать ваш код? | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 11:33)
| | А... зачем квадратные скобки? Незачем. Они у Вас были - я и оставил :)))
Могу, конечно. Прокомментировать первый или второй фрагмент? | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 11:48)
| | =)
второй | |
|
|
|
|
|
|
|
для: kaoz
(30.03.2006 в 11:57)
| |
<?
$querylist = array(); // сюда мы будем складывать запросы к БД на изменение записей.
if(isset($_POST['price'])) // если в форме встретились данные по ценам
{ // ожидается, что будет два массива с ценами и с экстрами
// оба массива параллельно проиндексированы первичными ключами от таблицы
// в которой нам придется вносить изменения.
// Если это не так - логику ключей можно и нужно исправить
foreach($_POST['price'] as $id => $price) // для каждого price[]-элемента формы
// берем индекс массива в качестве ключа
// и значение поля формы в качестве цены
{
$extra = $_POST['extra'][$id]; // из параллельного массива экстр - вытаскиваем значение экстры
// формируем очередной запрос на изменение в таблице $table
// в записи с id равным ключу
// полей price и extra на значения взятые из полей формы
// строку запроса добавляем в список запросов.
$querylist[] = "UPDATE $table (price,extra) VALUES('$price', '$extra') WHERE id = $id";
}
}
foreach($querylist as $query) // выполняем каждый запрос в списке.
mysql_query($query);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 12:26)
| | огромное спасибо =) | |
|
|
|