Jump to content

Update Rows - Checkbox - Array?


InfernalEternal

Recommended Posts

Hi there. I have a page that lists the records of a table. On this page I want to be able to edit/update two attributes of these records by a checkbox - e.g., being able to update multiple records at once. I thought the smartest way to achieve this would be by using arrays. I've implemented one checkbox array and have two fields. Currently when I change both fields and hit submit, the height value changes and the name value is changed to the last record displayed in the table.

 

E.g.

 

Height - 170 -> 160 -> UPDATED TO 160

Name - Test1 -> Test2 -> UPDATED TO VICTORY (last record listed in table; displayed alphabetically)

 

My code is as follows:

<?php
include("connection.php");
$conn = oci_connect($UName,$PWord,$DB) or die("Database Error - Contact Admin - ");
if (empty($_POST["check"]))
{
    $query = "SELECT * FROM HORSE ORDER BY HORSE_NAME";
    $stmt = oci_parse($conn,$query);
    oci_execute($stmt);
$Horses = oci_fetch_array ($stmt);
?>
    <form method="post" action="horse_multi.php">
      <table border="1" id="customers">
      <tr>
        <th>ID</th>
        <th>EDIT</th>
        <th>NAME</th>
        <th>HEIGHT</th>
      </tr>
<?php
while ($Horses = oci_fetch_array ($stmt))
{
?>
        <tr>
          <td><?php echo $Horses["HORSE_ID"]; ?></td>
          <td align="center"><input type="checkbox" name="check[]" value="<?php echo $Horses["HORSE_ID"]; ?>"></td>
          <td align="center"><input type="text" size="5" name="<?php echo $Horses["HORSE_ID"]; ?>" value="<?php echo $Horses["HORSE_HEIGHT"]; ?>"></td>
          <td align="center"><input type="text" size="20" name="HORSE_NAME" value="<?php echo $Horses['HORSE_NAME']; ?>"></td>
        </tr>
<?php
}
?>
      </table><p />
        <h4><input type="submit" value="Update Selected Horses"></h4>
    </form>
<?php
oci_free_statement($stmt);
}
else
{

foreach($_POST["check"] as $horse_id)
{
$query = "UPDATE HORSE SET HORSE_NAME= '$_POST[HORSE_NAME]', HORSE_HEIGHT = ".$_POST[$horse_id]." WHERE HORSE_ID ='".$horse_id."'";
$stmt = oci_parse($conn,$query);
oci_execute($stmt);
}
}
?>
</body>
</html>
Any ideas?  :shrug:
Link to comment
https://forums.phpfreaks.com/topic/212757-update-rows-checkbox-array/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.