mysql - insert multiple rows of data by single submit button using php -
how retrieve data sql table, modify data , store in database table multiple rows & columns , single submit button want insert every rows @ time don't know how hidden value , work that
<?php include"connect_database.php"; if(isset($_post['submit'])) { $amt = $_post['total']; if($amt > 0) { $qry = "insert attendance(rollno, name, year, attendance, reason) values "; // split mysql_query for($i=1; $i<=$amt; $i++) { $qry .= "('".$_post["rollno$i"]."', '".$_post["name$i"]."', '".$_post["year$i"]."', '".$_post["attendance$i"]."', '".$_post["reason$i"]."' ),"; // loop mysql_query values avoid more server loding time } $qry = substr($qry, 0, strlen($qry)-2); $insert = mysqli_query($dbcon, $qry); // execute mysql_query } // redirect each cases if($insert) { $msg = '<script type="text/javascript">alert("added");</script>'; } else { $msg = '<script type="text/javascript">alert("server error, kindly try again");</script>'; } }; if (isset($_post['select'])) { $sql = "select * data year='" . $_post['yr'] . "'"; $mydata = mysqli_query($dbcon, $sql); $num = mysqli_num_rows($mydata); echo "<table border=1> <tr> <th>rollno</th> <th>name</th> <th>year</th> <th>attendance</th> <th>reason</th> </tr>"; ($i=0; $i <$num; $i++) { $record = mysqli_fetch_array($mydata); echo "<form action=smanage.php method=post>"; echo "<tr>"; echo "<td>" . "<input type=text name=rollno$i value=" . $record['rollno'] . " </td>"; echo "<td>" . "<input type=text name=name$i value=" . $record['name'] . " </td>"; echo "<td>" . "<input type=text name=year$i value=" . $record['year'] . " </td>"; echo "<td> "."<select name=attendance$i > <option value=present >present</option> <option value=absent >absent</option> </select>"."</td>"; echo "<td>". "<textarea cols=15 rows=2 name=reason$i placeholder=enter reason ...></textarea>" . "</td>" ; echo "<td>" . "<input type=hidden name=total value=" . $i-1 . "</td>"; echo "</tr>"; } echo"</table>"; echo "<input type=submit name=submit value=save class=button3>"; echo "</form>"; }; mysqli_close($dbcon); ?>
you opening multiple forms, each row in table on. causes html invalid, start form before displaying table.
you use html
<table> <?php ($i = 0; $i < $num; $i++) { $record = mysqli_fetch_array($mydata); ?> <tr> <td><input type="text" name="rollno[<?= $record['rollno'] ?>]" value="<?= $record['rollno'] ?>" </td> <td><input type="text" name="name[<?= $record['rollno'] ?>]" value="<?= $record['name']?>" </td> <td><input type="text" name="year[<?= $record['rollno'] ?>]" value="<?= $record['year'] ?>" </td> <td><select name="attendance[<?= $record['rollno'] ?>]" > <option value="present" >present</option> <option value="absent" >absent</option> </select></td> <td><textarea cols="15" rows="2" name="reason[<?= $record['rollno'] ?>]" placeholder="enter reason ..."></textarea></td> </tr> <?php } ?> </table> with values every row put $_post-array, can access values via indexes (i guessing rollno represents id of dataset). when want insert values table, can leave index out. meaning write
<td><input type="text" name="rollno[]" value="<?= $record['rollno'] ?>" </td> instead of
<td><input type="text" name="rollno[<?= $record['rollno'] ?>]" value="<?= $record['rollno'] ?>" </td> you don't need hidden field, can count items in array.
$total = count($_post['rollno']);
Comments
Post a Comment