Benni: einfache Query funktioniert nicht


mysql_query("DELETE FROM t_groups WHERE anzahl = 0");
-----------------------------------------------------

Hallo,
die obenstehende Query sollte normalerweise nur die Einträge in t_groups löschen, wo anzahl = 0 ist, bei mir werden aber alle Einträge in t_groups gelöscht, auch die, die > 0 sind.

Führe ich
-----------------------------------------------------
DELETE FROM t_groups WHERE anzahl = 0
-----------------------------------------------------
im PHPMyAdmin aus, führt dies zum richtigen Ergebnis, nur die Einträge werden gelöscht wo anzahl = 0 ist.

Was für ein Unterschied könnte denn zwischen meinem Skript und der PHPMyAdmin - Query bestehen?

Auf Hilfe hoffende Grüße,
Benni

  1. Hi Benni

    versuch es mal hiermit

    mysql_query("DELETE FROM t\_groups WHERE anzahl = '0' LIMIT 1");

    gruss Armin Plöger

    1. Moin!

      versuch es mal hiermit

      mysql_query("DELETE FROM t\_groups WHERE anzahl = '0' LIMIT 1");

      Warum? Was sollte das bringen? Einfach statt aller "anzahl=0"-Zeilen nur eine einzige zu löschen löst das Problem nicht, sondern belastet höchst unperformant nur die Datenbank.

      - Sven Rautenberg

      1. hi Sven Rautenberg

        verdammt du hast recht ;) ja ja gebe mich ja geschlagen^^

        beim 2ten lesen habe ich es auch bemekrt ... schuldigung

        gruss armin

  2. Moin!


    mysql_query("DELETE FROM t_groups WHERE anzahl = 0");


    DELETE FROM t_groups WHERE anzahl = 0

    Was für ein Unterschied könnte denn zwischen meinem Skript und der PHPMyAdmin - Query bestehen?

    Es kann keinen Unterschied geben, weil es keinen Unterschied gibt. Beide Querys müssen das Gleiche tun.

    Die von dir gegebenen Informationen sind absolut unzureichend. Wenn die Querys nicht das Gleiche tun, dann liegt das an Gründen, über die du noch keinerlei Informationen gegeben hast - beispielsweise weil dein PHP-Query dynamisch generiert wird.

    Lies </faq/#Q-07> und handle dann danach. Gib also mehr Informationen.

    - Sven Rautenberg

    1. Es kann keinen Unterschied geben, weil es keinen Unterschied gibt. Beide Querys müssen das Gleiche tun.

      Das dachte ich bis heute morgen auch, es existiert aber kein Unterschied.

      Die von dir gegebenen Informationen sind absolut unzureichend.

      Ich weiß nicht was ich sonst für Informationen geben soll? Wie in der Überschrift geschrieben, ist es eine sehr einfache Query, eine Zeile, mehr nicht. Was soll ich dazu für Informationen geben?

      Wenn die Querys nicht das Gleiche tun, dann liegt das an Gründen, über die du noch keinerlei Informationen gegeben hast - beispielsweise weil dein PHP-Query dynamisch generiert wird.

      Nein, die Query wird nicht dynamisch generiert, sie steht so im Quelltext, wie ich es geschrieben habe.

      Lies </faq/#Q-07> und handle dann danach. Gib also mehr Informationen.

      Zu den Informationen habe ich oben bereits etwas gesagt, ich weiß nicht, welche Informationen ich noch geben kann, da es einfach nichts anderes gibt was mit dem Problem zusammen hängt und mir zu unterstellen, ich hätte mich vorher nicht informiert finde ich doch recht gewagt, da du das garnicht beurteilen kannst.

      versuch es mal hiermit mysql_query("DELETE FROM t\_groups WHERE anzahl = '0' LIMIT 1");

      Dankesehr, aber wie Sven Rautenberg bereits gesagt hat, löst es das Problem leider nicht.

      MfG,
      Benni

  3. hi,

    mysql_query("DELETE FROM t_groups WHERE anzahl = 0");

    ersetze mal an exakt dieser stelle DELETE durch SELECT *, und lasse dann alle zurückgelieferten datensätze anschliessend zur kontrolle in einer schleife ausgeben - wie sehen die anzahlen aus?

    gruss,
    wahsaga