За последние 24 часа нас посетил 62081 программист и 1781 робот. Сейчас ищут 839 программистов ...

Обновить записи БД через форму

Тема в разделе "PHP для новичков", создана пользователем Sice, 15 июн 2014.

  1. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Доброго времени суток друзья. Не получается почему-то обновить данные, которые вытаскиваю из бд по средствам формы.

    Вот код:
    Код (Text):
    1.  
    2. <html>
    3. <head>
    4.     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    5.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    6.     <title>title</title>
    7.     <link rel="stylesheet" href="style.css" type="text/css"  />
    8. </head>
    9. <body>
    10. <center>
    11. <?php
    12. //Хост подключения к БД
    13.  define('PHP_HOST', 'localhost');
    14.  
    15.  //Пользователь
    16.  define('PHP_USER', 'root');
    17.  
    18.  //Пароль
    19.  define('PHP_PASS','11111');
    20.  
    21.  //Базаданных
    22.  define('PHP_DB', 'database');
    23.  
    24.  // Подключение к СУБД
    25.  $link = mysql_connect(PHP_HOST, PHP_USER, PHP_PASS) or die (mysql_error());
    26.  
    27.  // Выбираем базу данных
    28.  mysql_select_db(PHP_DB, $link);
    29.  
    30.  mysql_query ("SET NAMES utf8");
    31.  mysql_query ("set character_set_client='utf8'");
    32.  mysql_query ("set character_set_results='utf8'");
    33.  mysql_query ("set collation_connection='utf8_general_ci'");
    34.  
    35.  if (isset($_POST["edit"])) {
    36.      
    37.     $_POST['id'] = $id;
    38.     $_POST['date'] = $date;
    39.     $_POST['news'] = $news;
    40.     $_POST['comments'] = $comments;
    41.     $_POST['kef'] = $kef;
    42.     $_POST['result'] = $result;
    43.    
    44.     //Редактируем данные
    45.  $update_sql = "UPDATE live SET date='$date', news='$news', comments='$comments', kef='$kef', result='$result' WHERE
    46.  
    47. id='$id'";
    48.  mysql_query($update_sql) or die("Ошибка вставки" . mysql_error()); echo '<p>Запись успешно обновлена!</p>';
    49.  
    50.  }
    51.  
    52.  $sql= "SELECT * FROM live ORDER BY id DESC";
    53.  
    54.  // Скармливаем наш запрос MySQL
    55.  $result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
    56.  
    57.  // Рисуем табличку
    58.  $table = "<table class=simple-little-table cellspacing=0 align=center>\n";
    59.  
    60.  $table .= "<tr>\n";
    61.  $table .= "<th><center>ID</center></th>\n";
    62.  $table .= "<th><center>Время</center></th>\n";
    63.  $table .= "<th><center>Событие</center></th>\n";
    64.  $table .= "<th><center>Комментарии</center></th>\n";
    65.  $table .= "<th><center>КФ</center></th>\n";
    66.  $table .= "<th><center>Результат</center></th>\n";
    67.  $table .= "<th><center>Редактировать</center></th>\n";
    68.  
    69.  $table .= "<form method=post action=edit.php>\n";
    70.  while ($row = mysql_fetch_assoc($result))
    71.  {
    72.  
    73.      $table .= "<tr>\n";
    74.  
    75.      $table .= "<td><input type=text size=2 name=id value=\"$row[id]\"></td>\n";
    76.      $table .= "<td><input type=text size=2 name=date value=\"$row[date]\"></td>\n";
    77.      $table .= "<td><input type=text size=54 name=news value=\"$row[news]\"></td>\n";
    78.      $table .= "<td><input type=text size=18 name=comments value=\"$row[comments]\"></td>\n";
    79.      $table .= "<td><input type=text size=2 name=kef value=\"$row[kef]\"></td>\n";
    80.      $table .= "<td><input type=text size=6 name=result value=\"$row[result]\"></td>\n";
    81.      $table .= "<td><input name=edit type=submit value=Изменить></td>\n";
    82.      
    83.      $table .= "</tr>\n";
    84.      
    85.  }
    86.  $table .= "</form>\n";
    87.  $table .= "</table>\n";
    88.  
    89.  // Выводим заполненую таблицу на экран
    90.  echo $table;
    91.  ?>
    92.  </center>
    93.  </body>
    94.  </html>
    В итоге мне выдаёт
    Подскажите пожалуйста, в чём проблема, понять не могу..
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
  3. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Я только учусь, prognoz, match - эти переменные раньше были, я их поменял.. подскажите пожалуйста в чём проблема, уже пол дня сижу.. Для меня сейчас степень защищенности скрипта не важна, мне сначала нужно, чтобы это хотя бы заработало)
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    У тебя sql дает ошибку. Выведи на экран echo $update_sql и выполни в базе. Думаю сразу увидишь ошибку.
     
  5. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    В упор не вижу в чём проблема :( бд этот запрос естественно не выполняет, тоже самое пишет(
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    выкладывай, не скрывай что там
     
  7. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Я подозреваю, что я не правильно подставляю значения в запросе..
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Выведи на экран sql с данными которые ты подстаавляешь и сюда выложи.
     
  9. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А где данные которые ты подставил?
     
  11. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Подставил одинарные кавычки к переменным. и теперь мне пишет, что Данные успешно добавлены, но на самом деле они не изменяются.. что теперь не так?))..
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
  13. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    У тебя хотя бы элементарные знания имеются?
    Покажи sql с данными на пр. UPDATE `live` SET `id`=1,`date`='2014-06-02',`match`='dasd',`prognoz`=''dd',`kef`='sdasd',`result`='2' WHERE `id`= 1
    Только не говори что ты пытаешься обновить данные не подставляя данные(((
    Зачем id обновлять?
    Может стоит книжку почитать?
     
  14. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Ну вообще имелись три года назад :) id убрал, запрос вот:

    UPDATE `live` SET `date`='2014-06-15',`match`='Финал. Теннис.',`prognoz`=''Победа Надаля',`kef`='1.86',`result`='Выигрыш' WHERE `id`= 1

    Значения берутся из бд, заносятся в текстбоксы, там я их редактирую и пытаюсь обновить.. но теперь они просто не обнавляются, а ошибок нет).. но ведь я подставляю переменные в запрос
     
  15. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Теперь видно?
     
  16. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Дружище, ошибка пропала. Но данные почему-то не изменяются.. Остаются теже.. без изменений.. (
     
  17. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    (((

    Sice, я верю в твои способности в тебе сокрыт удивительный талант развивай его и ты постигнешь великий дзен.
     
  18. Sice

    Sice Активный пользователь

    С нами с:
    16 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Сейчас понял, вот что. У меня 4 записи. Редактирование Работает только с первым айди. Нажимая кнопки на другие записи, он везде подставляет id=1. почему ?

    Добавлено спустя 3 минуты 39 секунд:
    Всё, разобрался. Нужно было форму внутри цикла засунуть. Спасибо всем большое :)