Hi all
Thanks for your replies to my question about multiple updates in one query. I think
Kittiphum Worachat is right in that I have designed it wrong. I couldn't get it to do
what I wanted, so I reverted to single update queries.
cheers
Mark
---
Summary of replies
------ from Paul Wilson --------
I'd guess that $job_number = 'AA3' or something similar.
To update all 3 records inserted as above, try :
update mytable set jobdate='$job_date' where job_number like 'AA_';
------- from DL Neil ------------
However if you look at the template for the INSERT command notice that
after the VALUES clause there is an ellipsis - something like:
VALUES(expression [,expression]...) [,(expression, etc)...]
thus you can add as many rows' worth of data as you like - each row
within its own set of parentheses:
insert into mytable (id,name,job_number,job_date) values
('1','Mark','AA1','2002-04-15'),
('2','Mark','AA2','2002-04-16'),
('3','Mark','AA3','2002-04-17')
-------- Kittiphum Worachat ---------
Your problem is misused of form transfer data please notify that by GET
method the data transfer to server with name and equa sign (=) and then
value each data seperate by & so
id=1&name=Mark&job_number=AA1&job_date=2002-5-19
mean the data have 3 elecment id,name and job_date as your data you send 9
element but use the same name so finally it only have 3 element and the
value id the last assign so you will got at last
id=3&name=Mark&job_number=AA3&job_date=2002-5-25
the first and the second set has over write so when you update data you got
the last data (id=3) update only
how to solve this problem you shoul declare the name seperate like this
id1=1&name1=Mark&job_number1=AA1&job_date1=2002-5-19
&id2=2&name2=Mark&job_number2=AA2&job_date2=2002-5-21
&id3=3&name3=Mark&job_number3=AA3&job_date3=2002-5-25
and update 3 time
$sql = "UPDATE mytable set job_date='$job_date1' where job_number
='$job_number1'";
@mysql_query($sql, $connection) or die.....;
$sql = "UPDATE mytable set job_date='$job_date2' where job_number
='$job_number2'";
@mysql_query($sql, $connection) or die.....;
$sql = "UPDATE mytable set job_date='$job_date3' where job_number
='$job_number3'";
@mysql_query($sql, $connection) or die.....;
----------------Original question --------------
That the thing see, the form(using GET instead of POST) sends data with
the new dates like this:-
id=1&name=Mark&job_number=AA1&job_date=2002-5-19
&id=2&name=Mark&job_number=AA2&job_date=2002-5-21
&id=3&name=Mark&job_number=AA3&job_date=2002-5-25
and the UPDATE query like this:-
> $sql = "UPDATE mytable set job_date='$job_date' where job_number
> ='$job_number'";
> $result = @mysql_query($sql, $connection) or die.....;
just updates the last record.
Can the query be written so that it updates each of the three records?
-------------------------------------------------------
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php