Supportnet / Forum / Skripte(PHP,ASP,Perl...)
DELETE Frage
Frage
Hallo ihr.
Ich hab da mal so eine kleine bescheidene Frage. Ich hoffe ihr könnt mir da helfen. *ggg*
Also ich habe ein Array mit vielen IP-Adressen und eine Datenbank mit vielen Einträgen in jedem Eintrag steht auch eine IP.
Nun will ich aber die Einträge aus der Datenbank löschen, die eine IP aus dem Array haben.
Kann ich nun so löschen?
DELETE from guestbook WHERE ip = array['0'], array['1'], array['x'];
oder wie muss das aussehen??? oder muss ich für jede IP eine extra Abfrage machen?
Für eure Hilfe bin ich euch sehr dankbar.
MFG
Chris
Antwort 1 von Supermax
// Hier wird aus dem Array eine mit , getrennte Liste von IP-Adressen generiert
$ipList = '';
foreach($array as $index => $ip) {
if ($ipList) $ipList .= ',';
$ipList .= "'$ip'";
}
mysql_query("DELETE FROM guestbook WHERE ip IN ($ipList)");
Antwort 2 von son_quatsch
Das ist keine PHP, sondern eine SQL-Frage. Du könntest z.B. dieses Kommando aufbauen:
Bei MySQL weiß ich es nicht, aber bei ORACLE gibt es die Einschränkung, dass ein IN maximal 1000 Einträge haben darf
if (count($feld)> 0) {
$sql= '';
foreach ($feld as $wert) $sql.= ', \''. $wert. '\'';
$sql= 'DELETE FROM guestbook WHERE ip IN ('. substr($sql, 2). ')';
...sql ausführen...z.b. mit mysql...
$ergebnis= mysql_query($sql);
if (!$ergebnis) die('Fehler: ' . mysql_error());
}Bei MySQL weiß ich es nicht, aber bei ORACLE gibt es die Einschränkung, dass ein IN maximal 1000 Einträge haben darf

