Jump to content

Updating multiple rows


baris22

Recommended Posts

Hello all,

 

I need some help. This is my database:

 

a.gif

 

This is the output of my code:

 

c.gif

 

When I submit the form it only updates the first row. It does not update the second one.

 

b.gif

 

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
Share on other sites

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

 

5.gif

 


<?
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
Share on other sites

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
Share on other sites

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:

 

1a.gif

 

This is the output of my code:

 

1b.gif

 

I want to display item_amount and item_name only once if the item_amount is bigger than 1.

 

1c.gif

 

Can somebody help me please.

Thanks

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.