1

I am trying to update only checked rows in the table but nothing is happening Here is my code

<?php
    //database connect select
    $result=mysql_query("Select * from ticket_reservation WHERE 
    validate_status='No'") or die(mysql_error());
    while($row=mysql_fetch_array($result))
    {
        echo "<tr><td><input type='checkbox' id='name'  name='name[]'value=".$row['id']."</td><td>".$row['userid']."</td> <td>".$row['busid']."</td><td>".$row['numberofseats']."</td></tr>";
        echo "<br>"; 
    }
    echo"<tr><td><input type='submit' name='submit' Value='Validate Tickets'>    </td></tr>";
    if(isset($_POST['submit']))
    {
        if(is_array($_POST['name']))
        {
            $qry = "UPDATE ticket_reservation SET validate_status='Yes' WHERE id IN (".implode(',', $_POST['name']).")";
            // echo $qry; // For checking the generated sql statement; can be removed
            mysql_query($qry);
        }
    }

?>
</table>
</form>
Artjom B.
  • 61,146
  • 24
  • 125
  • 222
Bilal Zia
  • 41
  • 1
  • 8

4 Answers4

2
$checkbox=$_POST['name'];
for($i=0;$i<count($checkbox);$i++)
{
    $id = $checkbox[$i];

    $sql1 = "UPDATE ticket_reservation set     validate_status='Yes' where id = '".$id."' ";
    mysql_query($sql1);
}
Shailesh Katarmal
  • 2,757
  • 1
  • 12
  • 15
1

You got also a typo here: is_array($POST['name']) should be is_array($_POST['name']).

mario.van.zadel
  • 2,919
  • 14
  • 23
user098
  • 89
  • 6
0

You can use MySQL IN function to update all datasets in one query. So you don't need to iterate over all IDs using foreach loop.

if(isset($_POST['submit']))
{
    if(is_array($_POST['name']))
    {
        $qry = "UPDATE ticket_reservation SET validate_status='Yes' WHERE id IN (".implode(',', $_POST['name']).")";
        echo $qry; // For checking the generated sql statement; can be removed
        mysql_query($qry);
    }
}

To prevent SQL Injection you should use prepared statements (see PDO)

You should also add a space between your HTML attributes: name='name[]' value= instead of name='name[]'value=.

mario.van.zadel
  • 2,919
  • 14
  • 23
0
if(isset($_POST['name']))
{
 $Name=$_POST['name'];
foreach($Name as $N)
{

$qry="Update ticket_reservation SET validate-status='Yes' Where id='$N'";       echo $qry; // For checking the generated sql statement; can be removed
 mysql_query($qry);



}

}
Ethic Or Logics
  • 111
  • 1
  • 13