baris22 Posted October 20, 2009 Share Posted October 20, 2009 Hello all, I need some help. This is my database: This is the output of my code: When I submit the form it only updates the first row. It does not update the second one. Can you please help me. Thanks <? include_once ("config/connect.php"); $ref=$_GET['ref']; if (isset($_POST['ok'])) { $item_name = $_POST['item_name']; $worker = $_POST['worker']; $item_id = $_POST['item_id']; for ($i=0;$i<count($_POST['item_id']);$i++) { $query5 = mysql_query("UPDATE item SET item_name = '".$item_name[$i]."', worker_id = '".$worker[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); } } ?> <?php $query1 = "SELECT * FROM item WHERE order_reference_number='$ref' GROUP BY item_amount"; $portfolio = mysql_query($query1); while($row1 = mysql_fetch_array($portfolio)) { ?> <table width="100%"> <tr> <td valign="top" width="266"> <?=$row1['item_amount'];?> of <input name="item_name[]" type="text" value="<?php echo $row1['item_name'];?>" size="30" /> <input name="item_id[]" type="hidden" value="<?=$row1['item_id'];?>" /> </td> <td width="480"> <?php for ($i=0; $i<$row1['item_amount']; $i++) { ?> Choice a worker for this job <select name="worker[]" id=""> <option value="Select">Select</option> <?php $query3 = "SELECT * FROM worker"; $portfolio1 = mysql_query($query3); while($row3 = mysql_fetch_array($portfolio1)) { ?> <option><?php echo $row3['worker_name'];?></option> <?php } ?> </select><br /><br /> <?php } ?> </td> </tr> </table> <?php } ?> Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/ Share on other sites More sharing options...
Mark Baker Posted October 20, 2009 Share Posted October 20, 2009 Try: for ($i=0;$i<count($_POST['worker']);$i++) { Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/#findComment-940423 Share on other sites More sharing options...
baris22 Posted October 20, 2009 Author Share Posted October 20, 2009 Try: for ($i=0;$i<count($_POST['worker']);$i++) { Still not working. Do you think is there anything to do with "GROUP BY item_amount" Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/#findComment-940443 Share on other sites More sharing options...
baris22 Posted October 20, 2009 Author Share Posted October 20, 2009 Thanks for replies. I changed the codes and it is working now. 1 more question: How can choice a worker select box value can be remembered instead of displaying "Select" value <? include_once ("config/connect.php"); $ref=$_GET['ref']; if (isset($_POST['ok'])) { $worker = $_POST['worker']; $item_id = $_POST['item_id']; for ($i=0;$i<=count($item_id);$i++) { $query5 = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); } } ?> <table width="100%" border="1" cellpadding="4" cellspacing="4"> <tr> <td><strong>Item</strong></td> <td><strong>choice a worker</strong></td> <td><strong>chosen worker</strong></td> </tr> <tr><?php $query99 = "SELECT * FROM item WHERE order_reference_number='$ref' "; $portfolio = mysql_query($query99); while($row109 = mysql_fetch_array($portfolio)) { ?> <td> <?=$row109['item_name'];?> <input name="item_id[]" type="hidden" value="<?=$row109['item_id'];?>" /> </td> <td> <select name="worker[]" id=""> <option value="Select">Select</option> <?php $query3 = "SELECT * FROM worker"; $portfolio1 = mysql_query($query3); while($row3 = mysql_fetch_array($portfolio1)) { ?> <option><?php echo $row3['worker_name'];?></option> <?php } ?> </select> </td> <td><?=$row109['worker_id'];?></td> </tr><?php } ?> </table> Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/#findComment-940668 Share on other sites More sharing options...
baris22 Posted October 20, 2009 Author Share Posted October 20, 2009 Thank you for your help. One last question <?php $query99 = "SELECT * FROM item WHERE order_reference_number='$ref'"; $portfolio = mysql_query($query99); while($row109 = mysql_fetch_array($portfolio)) { ?> <?=$row109['item_name'];?> this is the code. How can I make an if statement that if <?=$row109['item_amount'];?> is bigger than 1 display <?=$row109['item_name'];?> only once. Thank you very much Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/#findComment-940764 Share on other sites More sharing options...
baris22 Posted October 21, 2009 Author Share Posted October 21, 2009 hello, This is the last code. <? include_once ("config/connect.php"); $ref=$_GET['ref']; if (isset($_POST['ok'])) { $worker = $_POST['worker']; $item_id = $_POST['item_id']; for ($i=0;$i<=count($item_id);$i++) { $query5 = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); } } ?> <form action="<?=$PHP_SELF;?>" method="post"> <table width="600" border="0" cellpadding="4" cellspacing="0" bordercolor="#CCCCCC"> <tr> <td height="24" bgcolor="#999999"><strong>Item amount</strong></td> <td height="24" bgcolor="#999999"><strong>Item name</strong></td> <td height="24" bgcolor="#999999"><strong>choice a worker</strong></td> <td height="24" bgcolor="#999999"><strong>chosen worker</strong></td> </tr> <tr> <?php $query99 = "SELECT * FROM item WHERE order_reference_number='$ref'"; $portfolio = mysql_query($query99); $i = 0; while($row109 = mysql_fetch_array($portfolio)) { ?> <td height="32"> <?=$row109['item_amount'];?></td> <td height="32"> <?=$row109['item_name'];?> <input name="item_id[]" type="hidden" value="<?=$row109['item_id'];?>" /></td> <td> <select name="worker[]" id=""> <option value="<?=$row109['worker_id'];?>"><?=$row109['worker_id'];?></option> <option value="-">-</option> <?php $query3 = "SELECT * FROM worker"; $portfolio1 = mysql_query($query3); while($row3 = mysql_fetch_array($portfolio1)) { ?> <option><?php echo $row3['worker_name'];?></option> <?php } ?> </select></td> <td> <a href="g"> <strong><?=$row109['worker_id'];?></strong> </a></td> </tr><?php } ?> </table> <input type="submit" name="ok" value="Submit" onclick="return confirmPost()" /> </form> This is the database: This is the output of my code: I want to display item_amount and item_name only once if the item_amount is bigger than 1. Can somebody help me please. Thanks Link to comment https://forums.phpfreaks.com/topic/178348-updating-multiple-rows/#findComment-941105 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.