|
|
|
| Есть таблица, отображающая содержимое базы (через value), ячейками которой являются элементы формы input, например:
- столбец1 -- -- столбец2 -- -- столбец3 --
[ форма-text ] [ форма-text ] [ форма-text ]
[ форма-text ] [ форма-text ] [ форма-text ]
[ форма-text ] [ форма-text ] [ форма-text ]
Задача: перезаписать значения всех пунктов 'форма-text' в базу.
Проблема: как отличить передаваемые формой значения "форма-text" первой строки от второй и т.д.
Мне кажется, что необходимо привязать каждую "форма-text" к id строки?
В моем случае, успешно перезаписывается только последняя строка, остальные строки остаются прежними.
<?php
// Сохраняем новые значения таблицы
if ($_GET['saveprice']) {
if ($_GET['id']) {
$a =$_GET['tech_mod'];
$b =$_GET['time_min'];
$c =$_GET['cost_time_min'];
$d =$_GET['cost_hour'];
$e =$_GET['cost_km'];
$f =$_GET['id'];
// Cоставляем запрос для вставки информации в таблицу
$query_save = "
UPDATE price
SET
tech_mod = '$a',
time_min = '$b',
cost_time_min = '$c',
cost_hour = '$d',
cost_km = '$e '
WHERE id = '$f'";
echo "Таблица обновлена! <p> \n";
// Выполняем запрос или выводим ошибку
mysql_query($query_save) or die(mysql_error());
}
}
// Cоставляем запрос о содержимом таблицы
$query = "
SELECT id, tech_mod, time_min, cost_time_min, cost_hour, cost_km
FROM price
WHERE tech_type = 1
ORDER BY cost_time_min ASC";
// Выполняем запрос или выводим ошибку
$res = mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_array($res)) {
echo "<input type=hidden name='id' value='".$row['id']."'>";
echo "<tr align=center>";
echo "<td><input type='text' name='tech_mod' value='".$row['tech_mod']."' size='30' maxlength='50'></td>\n";
echo "<td><input type='text' name='time_min' value='".$row['time_min']."' size='7' maxlength='10'> час</td>\n";
echo "<td><input type='text' name='cost_time_min' value='".$row['cost_time_min']."' size='7' maxlength='10'> .руб</td>\n";
echo "<td><input type='text' name='cost_hour' value='".$row['cost_hour']."' size='7' maxlength='10'> .руб</td>\n";
echo "<td><input type='text' name='cost_km' value='".$row['cost_km']."' size='7' maxlength='10'> .руб</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
echo "<p align=center><input type='submit' name='saveprice' value='Изменить'></p>\n";
echo "</form>\n";
?>
|
| |
|
|
|
|
|
|
|
для: MaxMeteor
(23.11.2010 в 13:55)
| | А где у Вас начало таблицы и формы?
Почему именно $_GET?
Зачем Вы сначала выводите сообщение echo "Таблица обновлена! <p> \n"; , а уж потом делаете запрос к базе?
В самом начале скрипта выставте уровень ошибок в E_ALL и вывидите дамп массива $_GET, а потом начинайте устранять свои ошибки. | |
|
|
|
|
|
|
|
для: Slo_Nik
(23.11.2010 в 16:15)
| | Шапка
<form action="price.php" method="GET">
<table width=100% border=1 bgcolor=#F5F5F5 cellpadding=3 cellspacing=0>
<tr align=center bgcolor=c0c0c0>
<td width=20%>Техника</td>
<td width=20%>Смена</td>
<td width=20%>Стоимость смены</td>
<td width=20%>Цена 1 часа</td>
<td width=20%>Цена 1 км</td>
</tr>
|
echo "Таблица обновлена! <p> \n"; идет после обновления страницы, если нажата кнопка и передан id.
Вопрос не в ошибках.
Хотелось бы понять метод, по которому происходит многострочное обновление содержимого базы из полей формы. | |
|
|
|
|
|
|
|
для: MaxMeteor
(23.11.2010 в 16:30)
| | попробуйте сделать намеренную ошибку в запросе, что бы запрос не мог выполниться ни при каких обстоятельствах и посмотрите, появится сообщение об обновлении таблицы или нет.
>Вопрос не в ошибках.
Да нет, вопрос как раз в ошибках. Если Вы пишите, что обновление не происходит или обновляется не так как надо, то где-то у Вас ошибка и её надо найти. | |
|
|
|