2016-06-07 11 views
0

Ich habe eine Tabelle, die die Erlaubnis des Benutzers enthält. Ich möchte alle Datensätze löschen, die user_id = $user_id Ich habe diesen Code unten versucht, aber es scheint nur 1 Datensatz pro Abfrage zu löschen. Ich habe Tabelle wie folgt aus:Wie lösche ich alle Zeilen, die den spezifischen Wert enthalten

`user_id` `cat1` `cat2` `cat3` 
100  1000 2000 3000 
100  1000 2000 3001 
200  2500 2501 3000 
100  3000 3500 3333 

und so weiter. meine Frage scheint nicht richtig funktioniert, und alle Datensätze löschen, die zu $user_id$user_id=100;

.suppose gleich sind
<?php 
    $query="DELETE FROM tbl WHERE user_id=".$user_id; 
    mysql_query($query); 
?> 
+0

Sind Sie sicher, dass der '$ user_id' gleich 100 war? –

+0

Wenn $ user_id 100 ist löscht alle Zeilen, wo user_id 100 ist, wenn nicht, dann ist keiner der beiden 100 ... –

+0

haben Sie versucht, den Befehl von der Kommandozeile nur zu überprüfen? die Abfrage scheint korrekt zu sein – morcen

Antwort

-1

Abfrage "DELETE FROM tbl WHERE user_id='".$user_id."'" werden alle Zeilen entfernen, wo user_id mit Wert wird passend als Parameter übergeben.

Wenn es keine Übereinstimmung gibt, wird Abfrage nichts tun und das war es.

Grüße, Bojan

+0

why downvote? :( – zauzaj

+0

'user_id' mit ziemlicher Sicherheit eine Ganzzahlspalte, daher ist es unnötig, sie als String zu zitieren. Das OP hat angegeben, dass die ursprüngliche Abfrage funktioniert; es löscht nur zu wenige Zeilen. –

+2

Ja, aber er hat nicht angegeben, es ist eine ganze Zahl Also was ist, wenn user_id tatsächlich Zeichenfolge ist? – zauzaj

Verwandte Themen