|
Posted by cdtsly on 12/18/17 11:50
the update works for the updated column
but as you say the prefetch row are already there
so the mysql_fetch_array command will take a line where there is not
anymore the str=4 value
i know why i have this problem and i like to know how not have it
:-)
thx
Kimmo Laine a écrit :
> <cdtsly@relayeur.com> wrote in message
> news:1150444378.177655.41090@c74g2000cwc.googlegroups.com...
> > Hi i have a table with all value at 4
> > i select all lines in a fetch
> > i update one with a value of 7
>
> This is where it goes wrong. You update nothing, see explanation below.
>
> > i update all the row in the fetch with a value 5
> >
> > the result is that all my row are at 5
> > and the only line which should be at 7 is at 5 too.
> >
> > i see that the problem is at the first mysql_db_query, and i don t know
> > how to solve it
> >
> > thanks
> >
> >
> > $query="SELECT * FROM val WHERE str='4'";
> > $result=mysql_db_query($datamysql,$query);
> > $query7="UPDATE val SET str='7',updated='1' WHERE val='2'";
>
> You update all rows whose val=2 (should this be 4 maybe?), that is none,
> because all rows val=4. Nothing is updated. Even if it was, the old record
> that you fetched earlier are intact, only the database is updated but the
> updates do not reflect on already fetched records. So when you select
> something, then update something, the old values are still inside $result,
> so the updating means nothing again.
>
> > $result7=mysql_db_query($datamysql,$query7);
> >
> > while ($row=mysql_fetch_array($result))
> > {
> >
> > $str=$row["str"];
> > $val=$row["val"];
> > $query2="UPDATE val SET str='5' WHERE val='$val'";
> > $result2=mysql_db_query($datamysql,$query2);
> >
> >
> > }
> >
[Back to original message]
|