Toon posts:

[PHP+MySQL] mysql_affected_rows

Pagina: 1
Acties:

Verwijderd

Topicstarter
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?

  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
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?
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

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:04

Creepy

Tactical Espionage Splatterer

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
En als er nou al een record in stond met naam='piet' en 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


Verwijderd

Topicstarter
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.

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

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.


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Creepy schreef op 22 april 2004 @ 17:10:
[...]

En als er nou al een record in stond met naam='piet' en id=4? ;)
You've got a point.

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.


Verwijderd

Topicstarter
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 =)
Als het niet bruikbaar was geweest; had de functie mysql_affected_rows ook niet bestaan...

  • r0bert
  • Registratie: September 2001
  • Laatst online: 09:56
@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..

  • deDorus
  • Registratie: Augustus 2001
  • Laatst online: 10:17

deDorus

Meisje, ik ben een C-man...

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'

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

[ Voor 19% gewijzigd door Verwijderd op 22-04-2004 18:16 ]


  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

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....

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

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....
Precies.. snap het probleem ook niet zo...

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