I need a small help on a query

Discussion in 'PHP' started by baris22, Jan 11, 2010.

  1. #1
    hello,

    This is my query and works perfect.

    
    
    if (isset($_POST['ok'])) 
    {
    
    $order_id = $_POST['order_id'];
    
    
    $work_done = $_POST['work_done']; // Yes or No
    $worker = $_POST['worker'];	 
    $item_id = $_POST['item_id'];
    	 
    	 
    	
         for ($i=0;$i<=count($item_id);$i++) 
         { 
    
         $query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error());
         
         }    
    
    
    
    
    }
    
    
    PHP:
    I want to add this. but id does not work. All i want to do is if work_done is "Yes" for all the items, i want to set order_ready to "Yes"

    My php is not very good.


    
    
    if ($work_done[$i] == "Yes")
    {
    $query2 = mysql_query("UPDATE orderr SET order_ready = 'Yes' WHERE order_id = '".$order_id."' ") or die(mysql_error());
    }
    
    
    PHP:
    Thanks
     
    baris22, Jan 11, 2010 IP
  2. Bohra

    Bohra Prominent Member

    Messages:
    12,573
    Likes Received:
    537
    Best Answers:
    0
    Trophy Points:
    310
    #2
    ur trying to make an array ??? did u set the value of the option to yes in ur html form ?
     
    Bohra, Jan 11, 2010 IP
  3. baris22

    baris22 Active Member

    Messages:
    543
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    60
    #3
    ok. i managed to get it working. but i do not know if it is the right way to do


    
    
    if (isset($_POST['ok'])) 
    {
    
    $order_id = $_POST['order_id'];
    
    
    $work_done = $_POST['work_done']; // Yes or No
    $worker = $_POST['worker'];	 
    $item_id = $_POST['item_id'];
    	 
    
    for ($i=0;$i<=count($item_id);$i++)  { 
    
    if ($work_done[$i++] == "Yes")
      {
    $query222 = mysql_query("UPDATE orderr SET order_ready = 'Yes' WHERE order_id = '".$order_id."' ") or die(mysql_error());
     }
    else
     {
    $query222 = mysql_query("UPDATE orderr SET order_ready = 'No' WHERE order_id = '".$order_id."' ") or die(mysql_error());
     }
        } 
    	 
    	
         for ($i=0;$i<=count($item_id);$i++) 
         { 
    
         $query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error());
         
         }    
    
    
    
    
    }
    
    
    PHP:
     
    baris22, Jan 11, 2010 IP
  4. javaongsan

    javaongsan Well-Known Member

    Messages:
    1,054
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    128
    #4
    This is a shorter version
    <?
    if (isset($_POST['ok'])) 
    {
    	$order_id = $_POST['order_id'];
    	$work_done = $_POST['work_done']; // Yes or No
    	$worker = $_POST['worker'];  
    	$item_id = $_POST['item_id'];		 
    
    	for ($i=0;$i<=count($item_id);$i++)  { 
    		$query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error());
    		$query = mysql_query("UPDATE orderr SET order_ready = '".$work_done[$i++]."' WHERE order_id = '".$order_id."' ") or die(mysql_error());			
    	}  
    		
    }
    ?>
    Code (markup):
     
    javaongsan, Jan 11, 2010 IP
  5. baris22

    baris22 Active Member

    Messages:
    543
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    60
    #5
    No , i can not do this way. because i am trying to do this:

    if work_done is "Yes" for all the item_id then SET order_ready to "Yes"
    if work_done is "No" for 1 item_id then SET order_ready to "No"

    By the way my code is not working.

    
    
    for ($i=0;$i<=count($item_id);$i++)   
    {  
           $query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); 
             
           if ($work_done[$i++] == "Yes")   
           { 
    $query = mysql_query("UPDATE orderr SET order_ready = 'Yes' WHERE order_id = '".$order_id."' ") or die(mysql_error());  
           } 
           else 
           { 
    $query = mysql_query("UPDATE orderr SET order_ready = 'No' WHERE order_id = '".$order_id."' ") or die(mysql_error());  
           } 
            
            
            
    }
    
    
    PHP:
     
    baris22, Jan 11, 2010 IP
  6. Bohra

    Bohra Prominent Member

    Messages:
    12,573
    Likes Received:
    537
    Best Answers:
    0
    Trophy Points:
    310
    #6
    so is ur code working or noot why are u looping that query ?? i am assuming u just have 1 form?
     
    Bohra, Jan 11, 2010 IP
  7. baris22

    baris22 Active Member

    Messages:
    543
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    60
    #7
    Ok. It is not working. If there is 1 item my query works but if there are more than 1 item, it does not work.

    I am trying to do this:

    if work_done is "Yes" for all the item_id then SET order_ready to "Yes"
    if work_done is "No" for 1 item_id then SET order_ready to "No"

    
    
    if (isset($_POST['ok'])) {
    
    $order_id = $_POST['order_id'];
    $work_done = $_POST['work_done']; // Yes or No
    $worker = $_POST['worker'];  
    $item_id = $_POST['item_id'];
    
    
    for ($i=0;$i<=count($item_id);$i++)   
    {  
           $query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); 
             
           if ($work_done[$i++] == "Yes")   
           { 
    $query = mysql_query("UPDATE orderr SET order_ready = 'Yes' WHERE order_id = '".$order_id."' ") or die(mysql_error());  
           } 
           else 
           { 
    $query = mysql_query("UPDATE orderr SET order_ready = 'No' WHERE order_id = '".$order_id."' ") or die(mysql_error());  
           } 
            
            
            
    }
    }
    
    
    PHP:
     
    baris22, Jan 11, 2010 IP
  8. Bohra

    Bohra Prominent Member

    Messages:
    12,573
    Likes Received:
    537
    Best Answers:
    0
    Trophy Points:
    310
    #8
    please post the form url or the html form code so we can see what exactly the form looks like
     
    Bohra, Jan 11, 2010 IP
  9. baris22

    baris22 Active Member

    Messages:
    543
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    60
    #9
    it is a very long form. i am just pasting the pars for the work_done

    
    
    <td width="18"> <?php echo $row['item_done'];?> </td>
    <td width="18"><select name="work_done[]" id="">   
    <option value="<?=$row['item_done'];?>"><?=$row['item_done'];?></option>   
        <option value="Yes">Yes</option> 
        <option value="No">No</option>     
      </select></td>
    
    
    PHP:
     
    baris22, Jan 11, 2010 IP
  10. baris22

    baris22 Active Member

    Messages:
    543
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    60
    #10
    Thanks all for replies. I am sorted this time. I had to add another query

    
    if (isset($_POST['ok'])) 
    {
    
    $order_id = $_POST['order_id'];
    $work_done = $_POST['work_done']; // Yes or No
    $worker = $_POST['worker'];  
    $item_id = $_POST['item_id'];
    $newReference = $_POST['newReference'];
    
    
    for ($i=0;$i<=count($item_id);$i++)   
    
    {  
           $query = mysql_query("UPDATE item SET worker_id = '".$worker[$i]."', item_done = '".$work_done[$i]."' WHERE item_id = '".$item_id[$i]."' ") or die(mysql_error()); 
     
    } 
     
     $query = "SELECT COUNT(*) as num FROM item WHERE order_reference_number = '".$newReference."' AND item_done = 'No' ";
     $total_pages = mysql_fetch_array(mysql_query($query));
     $total_pages = $total_pages[num];
     
     
     if ($total_pages  >= 1)
     
     {
           $query = mysql_query("UPDATE orderr SET order_ready = 'No' WHERE order_id = '".$order_id."' ") or die(mysql_error()); 
     }
            
         else
     
     {
           $query = mysql_query("UPDATE orderr SET order_ready = 'Yes' WHERE order_id = '".$order_id."' ") or die(mysql_error()); 
     }
    
    }
    
    PHP:
     
    baris22, Jan 12, 2010 IP