Toon posts:

[MySQL] Terugwaarde van DELETE

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi hoi,

Ik heb een array met id nummers van producten in zitten.
Deze wil ik dus allemaal uit de database verwijderen. Wat ik ook wil is
dat ik later weet welke verwijderd zijn en welke niet.

Verwijderen kan volgens mij op 2 manieren.

Voor elke product een query opstellen en zo een voor een verwijderen (dus n queries)

of

Een query opstellen en gebruik maken van de IN commando:
bijvoorbeed DELETE FROM test WHERE id IN (lijstje)

Eerste voorbeeld dat ik gaf is makkelijk in gebruik. Zo kan je ook testen welke verwijderd zijn en welke niet. Alleen vindt ik dit niet echt efficient, omdat je voor elke product een query opstelt (TRAAG)
De tweede voorbeeld echter is SNEL (1 Query), maar je komt niets te weten over de verwijderde producten.
In de manual (op www.mysql.com) las ik zonet dat de query de aantal verwijderde items geeft. Bij mij dus niet. Bij mij geeft ie een true als de query slaagt (als 0 zijn verwijderd slaagt ie ook) en anders false (volgens mij, nog niet voorgekomen).

Kan iemand me hiermee helpen?

Ik wil dus de tweede optie gebruiken, maar hoe kan ik achterhalen welke items correct verwijderd zijn?

Alvast thnx

  • MichelVH
  • Registratie: Oktober 2001
  • Laatst online: 01-08 09:33
Ik ga er voor het gemak even van uit dat je PHP gebruikt :) In dat geval moet je eens kijken naar http://www.php.net/manual...n.mysql-affected-rows.php

Don't be afraid of the dark, be afraid of what it hides


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Hoe bekijk je of je wel een waarde terug krijgt?

Je kan/moet dat niet met de mysql_num_rows achtige functies doen he?

Verwijderd

Topicstarter
Nee niet met mysql_num_rows maar zo bijvoorbeeld:
PHP:
1
2
$test = mysql_db_query($mysqldb, "DELETE FROM product WHERE id IN ($lijst)") or die(mysql_error());
echo $test;

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

The function also returns TRUE/FALSE for INSERT/UPDATE/DELETE queries to indicate success/failure.
bij www.php.net/mysql_db_query

zie de link van thedark.

Verwijderd

Topicstarter
Bedank jongens (thedark)
Ik heb het opgelost

Ik weet nu hoeveel er verwijderd zijn. Kan ik echter ook teweten komen welke id's verwijderd zijn en welke niet???

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nope, dat kan je niet.

dan zul je van te voren een select met dezelfde while moeten doen en daarna de delete... Maar dat is niet helemaal fail proof (tenzij je eerst de table locked).

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Als je vooraf "SELECT id FROM tabel WHERE de_delete_voorwaarde" doet wel ja ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

code:
1
2
DELETE FROM test WHERE id IN (lijstje);
SELECT FROM test WHERE id IN (lijstje);

toch :?

日本!🎌


Verwijderd

_Thanatos_ schreef op 22 januari 2003 @ 19:54:
code:
1
2
DELETE FROM test WHERE id IN (lijstje);
SELECT FROM test WHERE id IN (lijstje);

toch :?

Dan weet je alvast zeker dat je niks terugkrijgt :|
Bovendien rammelt de syntax van je SELECT query.

Die select moet je dus doen vóór de DELETE query, en zoals ACM zei, moet je even zorgen dat je zeker weten dat er tussendoor nog snel even iets anders wordt gedaan.

Verwijderd

Topicstarter
_Thanatos_ schreef op 22 januari 2003 @ 19:54:
code:
1
2
DELETE FROM test WHERE id IN (lijstje);
SELECT FROM test WHERE id IN (lijstje);

toch :?
Kijk dit is prachtig. Dat ik hier niet zelf op ben gekomen 8)7

Maar dit moet echt lukken. De items die je terugkrijgt, zijn dus niet verwijderd.

;) thnx

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Dan weet je alvast zeker dat je niks terugkrijgt
Bovendien rammelt de syntax van je SELECT query.
Hoe niks terugkrijgt? Je krijgt juist de id's terug die niet verwijderd konden worden. En wat is er mis met de select query :?

edit: ohja, * ertussen... dat snappen we wel ;)

[ Voor 11% gewijzigd door _Thanatos_ op 23-01-2003 16:42 ]

日本!🎌

Pagina: 1