0

hi im a beginner on php and i just want to know if my codes is correct because when i try to update it it only saves the last value i hope some one can understand me.

    $id = ($_REQUEST['StudentNumber']);
    $result= mysql_query("SELECT NameofSiblings, Age, HEA, CivilStatus, Occupation FROM $tblname where StudentNumber='$id'");
    $child = $_REQUEST['NumberofChildren'];

    echo "<form method='post' >";

    for($n=1; $n<=$child; $n++)
    {       
    while($row=mysql_fetch_array($result))
    {
        echo "<table>
        <tr>
        <td class='siblings'><input type='text' name='sibname[]' style='width: 150px;' value=".$row['NameofSiblings']."></td>
        <td class='siblings'><input type='text' name='sibage[]' style='width: 35px;' value=".$row['Age']."></td>
        <td class='siblings'><input type='text' name='sibhea[]' style='width: 260px;' value=".$row['HEA']."></td>
        <td class='siblings'><input type='text' name='sibcs[]' style='width: 100px;' value=".$row['CivilStatus']."></td>
        <td class='siblings'><input type='text' name='siboccu[]' style='width: 100px;' value=".$row['Occupation']."></td>
        </tr>        
        </table>";
    }
}
<td><input type="hidden" name="n" value="<?php echo $child; ?>">

and this is my separate php for update

$n=intval($_POST['n']);
for($i=0;$i<$n;$i++)
{
  $sibname =$_POST['sibname'][$i];
  $sibage =$_POST['sibage'][$i];
  $sibhea =$_POST['sibhea'][$i];
  $sibcs =$_POST['sibcs'][$i];
  $siboccu =$_POST['siboccu'][$i];*/

    $query = "UPDATE $tblname SET NameofSiblings = '$sibname', Age = '$sibage', HEA = '$sibhea', CivilStatus = '$sibcs', Occupation = '$siboccu' WHERE StudentNumber='$sn' ";

    mysql_query($query);
}
5
Contributors
7
Replies
34
Views
3 Years
Discussion Span
Last Post by mike julius
0

Hmm I can't test it but i think it is all good, is StudentNumber unique?
If it is unique then it will update just 1 row because you have singe row with that value...

0

$tblname is where i put NameofSibling,Age... all in varchar and theres a primary key StudID but its on AUTO_INCREMENT

Edited by mike julius

0

my suggestion is:
1. use method "GET" instead of POST to populate data from database into form.
2. give the text name according to table column. No need to name it like an array ( name='sibname[]', name='sibage[]')

0

ok,i've tried using get method but it wont work and i think i need the array to get the value of the loop..can someone give me an example of how to do it correctly?

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.