php array filter data insertion to mysql -
i had prepared below form, need data insert mysql through form problem when try insert array_filter gives problem. need selected box values data mysql.
example: when user selected select box 1st row , 5th row these 2 rows should insert mysql, instead of 5 rows inserting empty values remain data inserting. please help
<form action="array-act.php" method="post"> <table width="500" border="0"> <tr> <td><input name="name[]" value="one" type="text" /></td> <td><input name="marks[]" type="text" /></td> <td><input name="grade[]" type="text" /></td> <td><select name="first[]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td> </tr> <tr> <td><input name="name[]" value="two" type="text" /></td> <td><input name="marks[]" type="text" /></td> <td><input name="grade[]" type="text" /></td> <td><select name="first[]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td> </tr> <tr> <td><input name="name[]" value="three" type="text" /></td> <td><input name="marks[]" type="text" /></td> <td><input name="grade[]" type="text" /></td> <td><select name="first[]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td> </tr> <tr> <td><input name="name[]" value="four" type="text" /></td> <td><input name="marks[]" type="text" /></td> <td><input name="grade[]" type="text" /></td> <td><select name="first[]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td> </tr> <tr> <td><input name="name[]" value="five" type="text" /></td> <td><input name="marks[]" type="text" /></td> <td><input name="grade[]" type="text" /></td> <td><select name="first[]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td> </tr> </table> <input name="go" type="submit" /> </form> <?php $name = $_post['name']; $marks = $_post['marks']; $grade = $_post['grade']; $option = array_values(array_filter($_post['first'])); $n = count($option); ($i = 0; $i < $n; $i++) { $query = "insert `table` (`name`, `marks`, `grade`, `option`) values ('$name[$i]', '$marks[$i]', '$grade[$i]', '$option[$i]')"; // here must execute query $result = mysql_query($query) or die('failed connect server: ' . mysql_error()); } if($result) { echo "data inserted"; } else { echo "data not inserted"; } ?>
i think should give numbers name attribute of elements of each row
<td><input name="name[1]" value="one" type="text" /></td> <td><input name="marks[1]" type="text" /></td> <td><input name="grade[1]" type="text" /></td> <td><select name="first[1]"><option value="">select</option><option value="sm">sm</option><option value="qb">qb</option></select></td>
and on.
that solve problem. right each option list has same name, 1 should returned.
Comments
Post a Comment