Re: Foreach and mydql_query problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22 Jul 2013, at 13:25, Karl-Arne Gjersøyen <karlarneg@xxxxxxxxx> wrote:

> 2013/7/22 Stuart Dallas <stuart@xxxxxxxx>
> On 22 Jul 2013, at 12:56, Karl-Arne Gjersøyen <karlarneg@xxxxxxxxx> wrote:
> 
> > 2013/7/22 Stuart Dallas <stuart@xxxxxxxx>
> >
> >>
> >> On 22 Jul 2013, at 08:04, Tamara Temple <tamouse.lists@xxxxxxxxx> wrote:
> >>
> >>> On Jul 22, 2013, at 1:19 AM, Karl-Arne Gjersøyen <karlarneg@xxxxxxxxx>
> >> wrote:
> >>>
> >>>> Hello again.
> >>>> I have this this source code that not work as I want...
> >>>>
> >>>> THe PHP/HTHML form fields is generated by a while loop and looks like
> >> this:
> >>>>
> >>>> <input type="number" name="number_of_items[]" size="6" value="<?hp
> >>>> echo "$item"; ?>" required="required">
> >>>>
> >>>>
> >>>> the php source code look like this:
> >>>> <?php
> >>>> if(!empty($_POST['number_of_itemsi'])){
> >>>>  include('../../connect.php');
> >>>>
> >>>>      foreach($number_of_items as $itemi){
> >>>>      echo "$itemi<br>";
> >>>>
> >>>>          $sql = "UPDATE item_table SET number_item = '$item' WHERE date
> >>>> = '$todays_date' AND sign = '$username'";
> >>>>          mysql_query($sql,$connect) or die(mysql_error());
> >>>>   }
> >>>> }
> >>>>
> >>>> ?>
> >>>>
> >>>> The problem is:
> >>>> Foreach list every items as expected in PHP doc and I thought that $sql
> >> and
> >>>> mysql_query should be run five times when I have five items.
> >>>> But the problem is that only the very last number_of_items is written
> >> when
> >>>> update the form..
> >>>> I believe this is becayse number_of_items = '$item in $sqk override
> >> every
> >>>> earlier result.
> >>>>
> >>>> So my querstion is. How to to update the database in this case?
> >>>>
> >>>> Thanks again for your good advice  and time to help me.
> >>>>
> >>>> Karl'
> >>>
> >>> Either the code you posted isn't the actual code, or if it is, the
> >> errors should be rather obvious. Post *actual* code.
> >>
> >> The error is rather obvious: it loops around an array running an update
> >> statement that will modify a single row in the table, so it's not
> >> surprising that it appears like only the last entry in the array has been
> >> stored.
> >>
> >> Yes, i know that only one a singe row is updated and that is the problem.
> > What can I do to update several rows at the same time?
> > Thank you very much for all your good advice.
> 
> Are you sure you want to update several rows, or do you actually want to insert several rows?
> 
> This is pretty basic database stuff, and is off-topic for this list.
>  
> 
> OK. Sorry. I thought it was a PHP question for a way to update several mysql rows by PHP code.

If you want to UPDATE several rows then you must have unique identifiers for those rows. If you don't then I'm guessing what you actually want to do is INSERT those rows.

It's off-topic in the same way as asking a mechanic how to fit a bunch of stuff in your car. It's the MySQL part that you're having a problem with, not the PHP. I strongly recommend that you use the MySQL command line to run the queries you think you need to run, checking what the table looks like after each one. Once you know what queries you need to run you will more effectively be able to write the PHP wrapper around those queries.

-Stuart

-- 
Stuart Dallas
3ft9 Ltd
http://3ft9.com/
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php






[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux