ronny: WHERE funzt nicht

hi,

habe folgende abfrage gebastelt:
$resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."'");

wenn ich sie aber ohne WHERE mache

$resultID = @mysql_query("SELECT COUNT(id) FROM ".$table);

funktioniert sie und ich bekomme das was ich will, eben noch ohne einschränkung.

die spalte zahl gibt es , die variable ist auch gefüllt.
was mache ich falsch?

danke

ronny

  1. Hallo ronny!

    habe folgende abfrage gebastelt:
    $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."'");

    was mache ich falsch?

    Was sagt MySQL denn dazu? (Die MySQL-Fehlermeldungen sind mitunter ganz nützlich)

    Laß Dir auch mal nur Deinen SQL-Befehl ausgeben.
    Dann kannst ja prüfen, ob die Abfrage _wirklich_ richtig ist, oder ob vielleicht doch noch irgendwo ein Fehler drin ist.

    Hat $zahl auch einen Wert, de es auch in der Tabelle gibt?

    MfG
    Götz

    --
    Losung und Lehrtext für Mittwoch, 26. November 2003
    Es sollen viele Völker sich zum Herrn wenden und sollen mein Volk sein. (Sacharja 2,15)
    Gehet hin und machet zu Jüngern alle Völker: Taufet sie auf den Namen des Vaters und des Sohnes und des Heiligen Geistes. (Matthäus 28,19)
    (http://www.losungen.de/heute.php3)
    1. hi,

      Was sagt MySQL denn dazu? (Die MySQL-Fehlermeldungen sind mitunter ganz nützlich)

      gar nichts.

      Laß Dir auch mal nur Deinen SQL-Befehl ausgeben.
      Dann kannst ja prüfen, ob die Abfrage _wirklich_ richtig ist, oder ob vielleicht doch noch irgendwo ein Fehler drin ist.

      passiert nichts.

      Hat $zahl auch einen Wert, de es auch in der Tabelle gibt?

      ups, nee, aber das soll sie auch nciht. muss so aussehen

      $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."%'");

      aber da tut sich auch nix....

      1. hi,

        Hallo

        $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."%'");

        aber da tut sich auch nix....

        dies geht ohnehin nicht. Wenn dann "...where like '".$zahl."%'");

        Was heisst es gibt keine fehlermeldung oder nichts aus?
        hast du ein empty set?
        Was hat diese spalte für einen datentyp?

        gruss
        Marc

        1. hi,

          Was hat diese spalte für einen datentyp?

          varchar

          danke
          ronny

      2. hi,

        Laß Dir auch mal nur Deinen SQL-Befehl ausgeben.
        Dann kannst ja prüfen, ob die Abfrage _wirklich_ richtig ist, oder ob vielleicht doch noch irgendwo ein Fehler drin ist.

        passiert nichts.

        du sollst dir die query zuerst in einer string-variable erzeugen, und diese dann per echo ausgeben lassen - sag nicht, dann "passiert nichts"!

        und bitte gwöhne dir an, _von anfang an_ mit mysql_error() zu arbeiten. es ist lästig, immer wieder erst rückfragen zu müssen, ob es verwendet wurde, und wenn ja, was es ausgegeben hat.

        also verwende bitte _immer_ beim testen mysql_error(), und schreibe dann entweder die fehlermeldung in deine frage mit rein, oder eben dass es keine gegeben hat.

        gruss,
        wahsaga

        1. hi,

          und bitte gwöhne dir an, _von anfang an_ mit mysql_error() zu arbeiten. es ist lästig, immer wieder erst rückfragen zu müssen, ob es verwendet wurde, und wenn ja, was es ausgegeben hat.

          also verwende bitte _immer_ beim testen mysql_error(), und schreibe dann entweder die fehlermeldung in deine frage mit rein, oder eben dass es keine gegeben hat.

          mysql_select_db($db_database)
             or die("Abbruch: Datenbank '$db_database' konnte nicht"
                   ." selektiert werden.<br><br>MySQL sagt: ".mysql_error());

          usw.

          if ($total === FALSE) {
            echo "folgende Abfrage ist gescheitert:<br>";
            echo $SQLString."<br>";
            echo "Die MySQL-Fehlermeldung lautet: ".mysql_error();
            exit; // Ausführung des Scriptes beenden
          }

          ist doch alles da, habe ich mal vor wochen hier aus dem forum bekommen, trotzdem kommt nix....

          danke

          ronny

          1. hi,

            echo $SQLString."<br>";

            und eben diese ausgabe wollten wir von dir mal gepostet kriegen!

            gruss,
            wahsaga

  2. hi,

    habe folgende abfrage gebastelt:
    $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."'");

    Quotingprobleme würde ich mal sagen.

    Grüße

    Stefan

    1. hi,

      Quotingprobleme würde ich mal sagen.

      was sagt mir das? bin leider noch kein php/mysql Guru ;)
      hast nen ansatz?

      ronny

  3. Hello,

    $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = '".$zahl."'");

    MySQL sieht das:

    SELECT COUNT(id) FROM TABELLEWHERE zahl = '1234567'

    Grüße

    Tom

    1. Sorry,

      war mir eben ganz sicher, dass da ein Leerzeichen fehlt und nun ist es plötzlich doch da.

      Grüße

      Tom

  4. hi ronny,

    bin mir nicht sicher, ob du die lösung schon rausgefunden hast. wenn nicht, versuch doch mal die '' umklammerung bei zahlen wegzulassen:

    $resultID = mysql_query("SELECT COUNT(id) FROM ".$table." WHERE zahl = ".$zahl.")";

    Ilja