2013-04-17 2 views
0

Я пытаюсь обновить таблицу с помощью того, что вы выберете из раскрывающегося меню, а затем вы поместите текст в текстовое поле и обновите конкретный столбец (fixture_result). Результат говорит мне, что он обновлен, но когда я смотрю на базу данных, он этого не сделал.Как правильно обновить мою базу данных

Не знаю, был ли этот вопрос задан раньше. Я просмотрел несколько форм, связанных с обновлением, и они мало помогли; но если вы видите, что я делаю неправильно, я был бы признателен.

<html> 
<head> 
    <title>The Score</title> 
</head> 
<body> 
    <form id="form1" name="form1" method="post"> 
    Fixture: 
     <select name='NEW'> 
      <option value="">--- Select ---</option> <br> 
      <?php 
       if(isset($db_name)&&$db_name!=""){ 
        $select=$_POST['NEW']; 
       } 
      ?> 
      <?php 
       $list=mysql_query("select * from Fixture_Information order by fixture_id asc"); 

       while($row_list=mysql_fetch_assoc($list)){ 
      ?> 
      <option value="<?php echo $row_list['fixture_id']; ?>"> 
       <?php if($row_list['fixture_id']==$select){ echo "selected"; } ?> 
       <?php echo $row_list['fixture_name']; ?> 
      </option> 
      <?php 
       } 
      ?> 
     Input Score: <input type="text" name="myusername"> 
     <input type="submit" value="Submit"> 
     <?php 
      $data =$_POST['myusername']; 
      $select=$_POST['NEW']; 
      $sql=("UPDATE Fixture_Information 
       set fixture_result = '$data' 
       where fixture_name = '$select'"); 
      $checkresult = mysql_query($sql); 
      if ($checkresult) echo 'update query succeeded'; 
       else echo 'update query failed'; 
      mysql_close(); 
     ?> 
     </select> 
    </form> 
</body> 
</html> 
+1

[Пожалуйста, не используйте '' * mysql_ функции в новом коде] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [Красная рамка] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). –

+0

FYI, вы также широко открыты для [SQL-инъекций] (http://stackoverflow.com/q/60174) –

+0

Да, я знаю об инъекциях, но это небольшой проект колледжа, так как это так хочет лектор. Можете ли вы просто сказать, где я ошибся, пожалуйста, – user2267041

ответ

2

Вы только проверить успешность обновления заявления, которое находится в вашем случае true. Но вы не проверяете, сколько строк обновляется. Вы можете использовать для этого mysql_affected_rows

if (mysql_affected_rows() > 0) 
    echo 'update query succeeded'; 
else 
    echo 'update query failed'; 
+0

А теперь его высказывание по обновлению не получилось. Попытайтесь выяснить, что делать дальше. – user2267041