使用单选按钮更新记录

时间:2015-09-09 06:29:32

标签: php mysql radio-button selection

我正在尝试使用单选按钮更新一些记录我只希望更新所选记录,但它会一直从头到尾更新记录。任何人都可以告诉我缺少什么

 <?php
  $query = mysql_connect("localhost","root","toor");
   mysql_select_db("busticket",$query);
   $result=mysql_query("Select * from ticket_reservation") or      die(mysql_error());
     while($row=mysql_fetch_array($result))
    {
    echo "<tr><td><input type='radio' name='name[]'   value='".$row['id']."'</td><td> '".$row['id']."'</td><td>".$row['userid']."</td> <td>".$row['busid']."</td><td>".$row['numberofseats']."</td></tr>";
     }
     echo "<tr><td><input type='submit' name='submit[]' value='validate'> </td></tr>";
    ?>
   <?php 
    $name=$_POST['name'];

    $qry="UPDATE ticket_reservation set validate_status='Yes'";
    mysql_query($qry);     

   ?>

1 个答案:

答案 0 :(得分:0)

上面的代码存在一些问题,主要问题是没有为where语句指定update子句 - 因此所有记录在提交表单时都会更新。 radio按钮未正确关闭,因此会导致html流程出现问题。 update子句需要一个POSTed变量name但是没有什么可以阻止服务器尝试在普通的GET请求中执行该语句 - 因此包含在IF语句中。

/* Create db connection */
$query = mysql_connect( "localhost", "root", "toor" );
mysql_select_db( "busticket", $query );

/* Update records */
if( $_SERVER['REQUEST_METHOD']=='POST' ){
    $name=$_POST['name'];
    /* Because the field `name` is called `name[]` - array - you need to specify the item in the array, should be the first one ie: index 0 */
    $qry="UPDATE `ticket_reservation` set `validate_status`='Yes' where `id`='".$name[0]."';";
    mysql_query( $qry );
}

/* Display records */
$result=mysql_query("Select * from `ticket_reservation`") or die( 'Error: There was a problem with the query' );

echo "<table>";
while( $row=mysql_fetch_array( $result ) ) {
    echo "
    <tr>
        <td><input type='radio' name='name[]' value='".$row['id']."'></td>
        <td>".$row['id']."</td>
        <td>".$row['userid']."</td>
        <td>".$row['busid']."</td>
        <td>".$row['numberofseats']."</td>
    </tr>";
}
echo "<tr><td><input type='submit' name='submit' value='validate'></td></tr>";
echo "</table>";