MYSQL loescht nicht genau das was ich will

Post mal bitte deinen Code, so wie du ihn jetzt hast, was du genau löschen willst, und welche Daten du in der Datenbank hast. Dann kann man dir sicher helfen können.
 
Mein Loeschenscript wie es sein soll:
PHP:
<?PHP
require("lokal.php");

$anfrage="DELETE FROM forum_sm1 WHERE id1='$radio'";
mysql_query($anfrage) or die ("Fehlermeldung=".mysql_error());

$anfrage1="DELETE FROM forum_sm2 WHERE zu='$radio' ";
mysql_query($anfrage1) or die ("Fehlermeldung=".mysql_error());

echo "
<center>
Löschen erfolgreich <br>
<a href='index.php?go=n/forum/index.php'>&lt;&lt;zurück</a>
</center>
";


mysql_close($db);
?>

Und Hier die Tabellen (Exportiert)
forum_sm1
PHP:
CREATE TABLE `forum_sm1` (
  `id1` smallint(5) NOT NULL default '0',
  `title` varchar(50) NOT NULL default '',
  `besch` varchar(255) NOT NULL default '',
  `erstelltam` varchar(50) NOT NULL default '',
  `erstelltum` varchar(50) NOT NULL default '',
  `erstelltvon` varchar(50) NOT NULL default '',
  `gesperrt` char(1) NOT NULL default '0',
  `bild` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id1`)
) TYPE=MyISAM PACK_KEYS=0;

forum_sm2:

PHP:
CREATE TABLE `forum_sm2` (
  `id` smallint(5) NOT NULL default '0',
  `erstelltvon` varchar(50) NOT NULL default '',
  `erstelltam` varchar(50) NOT NULL default '',
  `erstelltum` varchar(50) NOT NULL default '',
  `title` varchar(50) NOT NULL default '',
  `nachricht` text NOT NULL,
  `zu` varchar(5) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
 
Alle daten die in forum_sm2 bei zu die gleiche zahl haben.
z. B.

16 einträge die bei "zu" die ziffer 1 haben.

die sollen alle gelöscht werden aber er loescht nur einen von dennen.
 
Das kann nicht sein. Wenn dein Query so ist, wie du oben geschrieben hast, und in der Variable $radio 1 steht, dann müssen alle Datensätze gelöscht werden.
Btw. Warum hast du die Spalte zu als varchar definiert, und die spalte id1 in der anderen Tabelle als smallint?
 
Aus deinen beiden Querys oben entnehme ich, dass in 'zu' die selben Werte stehen, wie in 'id1'. Wieso ist dann das eine als smallint deklariert, und das andere als varchar?
 
Ich weiss ja nicht, ob das Problem noch aktuell ist, aber ich hatte eben dasselbe.

Versuche es mal so:

PHP:
$anfrage1="DELETE FROM forum_sm2 WHERE zu = '" . $radio . "' ";

Bei mir funktioniert es wunderbar.

Gruß
Robert
 
Zurück