Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись данных из динамической формы в базу.
 
 автор: MaxMeteor   (23.11.2010 в 13:55)   письмо автору
 
 

Есть таблица, отображающая содержимое базы (через 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"
?>

  Ответить  
 
 автор: Slo_Nik   (23.11.2010 в 16:15)   письмо автору
 
   для: MaxMeteor   (23.11.2010 в 13:55)
 

А где у Вас начало таблицы и формы?
Почему именно $_GET?
Зачем Вы сначала выводите сообщение echo "Таблица обновлена! <p> \n"; , а уж потом делаете запрос к базе?
В самом начале скрипта выставте уровень ошибок в E_ALL и вывидите дамп массива $_GET, а потом начинайте устранять свои ошибки.

  Ответить  
 
 автор: MaxMeteor   (23.11.2010 в 16:30)   письмо автору
 
   для: 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.

Вопрос не в ошибках.

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

  Ответить  
 
 автор: Slo_Nik   (23.11.2010 в 16:47)   письмо автору
 
   для: MaxMeteor   (23.11.2010 в 16:30)
 

попробуйте сделать намеренную ошибку в запросе, что бы запрос не мог выполниться ни при каких обстоятельствах и посмотрите, появится сообщение об обновлении таблицы или нет.

>Вопрос не в ошибках.

Да нет, вопрос как раз в ошибках. Если Вы пишите, что обновление не происходит или обновляется не так как надо, то где-то у Вас ошибка и её надо найти.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования