Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2010, 18:43   #1
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию обновление данных в БД

сделал форму, отображающую текущие значения элементов БД с возможностью редактировать поля name, set1, set2:
Код:
<?
$link=mysql_connect($host,$user,$pass) or die(mysql_errno($link).mysql_error($link));
$db=mysql_select_db($db_name,$link) or die(mysql_errno($link).mysql_error($link));
$res = mysql_query("SELECT * FROM list") or die(mysql_error()); 

echo '<table>';
echo '<form action="update.php" method="POST">';
for ($c=0; $c<mysql_num_rows($res); $c++)
{
$row=mysql_fetch_array($res);
    echo '<tr>'; 
    echo '<td>'.$row['id'].'</td>'; 
    echo '<td><input type="text" value="'.$row['name'].'" style="width:200px;" name="name"></td>'; 
    echo '<td><input type="text" value="'.$row['set1'].'" style="width:50px;" name="set1"></td>'; 
    echo '<td><input type="text" value="'.$row['set2'].'" style="width:50px;" name="set2"></td>'; 
    echo '</tr>';  
}
echo '</table>';
echo '<input type="submit" name="submit" value="Обновить">';
echo '</form>';

mysql_free_result($res);
mysql_close($link);
?>
как теперь обработать изменения и внести их в БД?
где-то на форуме уже видел подобный вопрос, но сейчас не могу найти.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 10.05.2010, 19:18   #2
Vertexxx
Заблокирован
 
Регистрация: 10.04.2010
Сообщений: 145
По умолчанию

Если я правильно понял:
PHP код:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    
/*
    **Фильтр
    */
    
$sql "UPDATE list 
            SET  name=
{$name},
                 set1=
{$set1},
                 set2=
{$set2}
            WHERE id=
{$id}";
    
mysql_query($sql) or die(mysql_error());
    echo(
'Данные успешно обновлены');


Последний раз редактировалось Vertexxx; 10.05.2010 в 19:20.
Vertexxx вне форума Ответить с цитированием
Старый 10.05.2010, 19:56   #3
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

ругается на неправильный синтаксис:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' set1=, set2= WHERE id=' at line 1

если оставляю UPDATE list SET name={$name} WHERE id={$id}, тогда ругается только на WHERE:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=' at line 1
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 10.05.2010, 20:06   #4
Vertexxx
Заблокирован
 
Регистрация: 10.04.2010
Сообщений: 145
По умолчанию

типы данных соблюдены? Все строки в кавычках?
на всякий пожарный во время отладки перед mysql_query() напишите: echo $sql; и посмотрите какой у вас запрос, все ли переменные существуют.

Похоже что нет. Под словом "Фильтр" я подразумевал то, что Вы должны обработать данные, пришедшие постом.
Vertexxx вне форума Ответить с цитированием
Старый 10.05.2010, 20:15   #5
dekameron
Форумчанин
 
Аватар для dekameron
 
Регистрация: 27.04.2010
Сообщений: 185
По умолчанию

PHP код:
    $sql "UPDATE list  
            SET  name='"
.$_REQUEST['set1']."', 
                 set1= '"
.$_REQUEST['set1']."', 
                 set2='"
.$_REQUEST['set2']."'
            WHERE id='"
.$_REQUEST['id']."';"
    
mysql_query($sql) or die(mysql_error()); 
    echo(
'Данные успешно обновлены'); 
Только переменные следовало бы отфильтрировать
Помог - тырк на весы
dekameron вне форума Ответить с цитированием
Старый 10.05.2010, 20:45   #6
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

все получилось, проблема была в том, что с формой не передавалось значение id (я его только публиковал, но не передавал).
Vertexxx, dekameron, большое спасибо! ))
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление данных S@fer БД в Delphi 12 17.10.2010 16:01
Обновление списка данных без потери данных в переменных VaBank БД в Delphi 13 03.06.2009 10:47
Обновление данных ЕленаС Microsoft Office Excel 3 11.02.2009 00:19
Обновление данных в БД EdNovice Общие вопросы .NET 2 16.10.2008 12:13
Обновление данных в БД EdNovice БД в Delphi 4 26.06.2007 14:35