Na een UPDATE retourneert mysql_affected_rows het aantal aangepaste records. Ik wil echter de aangepaste records zelf retourneren. Dus een mysql_fetch_affected o.i.d. Iemand die weet of dit mogelijk is?
Mag ik vragen waarom?Verwijderd schreef op 22 april 2004 @ 17:04:
Na een UPDATE retourneert mysql_affected_rows het aantal aangepaste records. Ik wil echter de aangepaste records zelf retourneren. Dus een mysql_fetch_affected o.i.d. Iemand die weet of dit mogelijk is?
Je weet toch wat je aanpast en waarmee je het aanpast?
Maar misschien dat je dit kan gebruiken:
code:
1
2
3
| UPDATE tabelnaam SET naam = 'piet' WHERE id=4 SELECT * FROM tabelnaam WHERE id=4 |
You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.
En als er nou al een record in stond met naam='piet' en id=4?Markieman schreef op 22 april 2004 @ 17:07:
[...]
Mag ik vragen waarom?
Je weet toch wat je aanpast en waarmee je het aanpast?
Maar misschien dat je dit kan gebruiken:
code:
1 2 3 UPDATE tabelnaam SET naam = 'piet' WHERE id=4 SELECT * FROM tabelnaam WHERE id=4
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
mysql_affected_rows geeft de records weer die ook daadwerkelijk gewijzigd zijn. En uitsluitend die wil ik ook geretourneerd hebben, niet de rows die niét gewijzigd zijn.
Het kan nmlk zo zijn dat mijn update query een record update die daarvoor al dezelfde waarde had.
Het kan nmlk zo zijn dat mijn update query een record update die daarvoor al dezelfde waarde had.
Voor zover ik weet (correct me if im wrong) kan MySQL dit simpelweg niet en zul je dus je eerst een SELECT moeten doen voordat je een UPDATE doet.
This can no longer be ignored.
You've got a point.Creepy schreef op 22 april 2004 @ 17:10:
[...]
En als er nou al een record in stond met naam='piet' en id=4?
Tja dan weet ik het ook niet. Maar eerlijk gezegd zie ik het nut van deze kwestie niet. En ik denk meerdere met mij en dat daarom deze functionaliteit niet bestaat =)
You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.
Als het niet bruikbaar was geweest; had de functie mysql_affected_rows ook niet bestaan...Markieman schreef op 22 april 2004 @ 17:29:
Tja dan weet ik het ook niet. Maar eerlijk gezegd zie ik het nut van deze kwestie niet. En ik denk meerdere met mij en dat daarom deze functionaliteit niet bestaat =)
@Erik Jan
Idd, je kunt je WHERE conditie bijv in een variabele zetten en die eerst achter een SELECT plakken, uitvoeren en opslaan. En daar de UPDATE + Where string uitvoeren, maar dan heb je alleen wel de OUDE waardes in je SELECT resultaat staan en niet de nieuwe geupdate waardes.. dat is op zich dus ook niet dé oplossing..
Idd, je kunt je WHERE conditie bijv in een variabele zetten en die eerst achter een SELECT plakken, uitvoeren en opslaan. En daar de UPDATE + Where string uitvoeren, maar dan heb je alleen wel de OUDE waardes in je SELECT resultaat staan en niet de nieuwe geupdate waardes.. dat is op zich dus ook niet dé oplossing..
Voeg een veld toe. BV 'change_id'.
UPDATE tabelnaam SET naam = 'piet', change_id='unieke waarde' WHERE id=4
SELECT * FROM tabelnaam WHERE change_id='unieke waarde'
UPDATE tabelnaam SET naam = 'piet', change_id='unieke waarde' WHERE id=4
SELECT * FROM tabelnaam WHERE change_id='unieke waarde'
Verwijderd
als alles een ID heeft kun je met
mysql_insert_id();
na een query je laatst toevoeging opvragen..
en daar kun je dan weer een SELECT gebruiken
maar dat werkt niet bij meerdere toevoegingen tegelijk geloof ik
mysql_insert_id();
na een query je laatst toevoeging opvragen..
en daar kun je dan weer een SELECT gebruiken
maar dat werkt niet bij meerdere toevoegingen tegelijk geloof ik
[ Voor 19% gewijzigd door Verwijderd op 22-04-2004 18:16 ]
Op http://nl2.php.net/mysql_affected_rows staan anders voorbeelden zat van hoe jij het zou willen hebben...
There's no place like 127.0.0.1
Verwijderd
Je zou het ookn andersom kunnen doen.
Eerst alles gaan select wat je wilt updaten, en dan de update .
Dan zie je wat je gaat updaten....
Eerst alles gaan select wat je wilt updaten, en dan de update .
Dan zie je wat je gaat updaten....
Precies.. snap het probleem ook niet zo...Verwijderd schreef op 23 april 2004 @ 08:36:
Je zou het ookn andersom kunnen doen.
Eerst alles gaan select wat je wilt updaten, en dan de update .
Dan zie je wat je gaat updaten....
SELECT WHERE bla=4
UPDATE WHERE bla=4
Dan heb ik uit die eerste toch netjes een resultset met alle gewijzigde records.. Gewoon zelfde where-clause gebruiken.
[ Voor 5% gewijzigd door Bosmonster op 23-04-2004 09:16 ]
Pagina: 1