[PHP/MySQL] Abfrage klappt per PHP nicht

Von: , Frage gestellt am So, 6. Aug 2000

Warum liefert folgende Funktion IMMER den Wert 7 zurück (für jeden Wert von bl_id2), obwohl dieser total falsch ist und genau die selbe Query in mysql selbst korrekte ergebnisse liefert??

function cbl($bl_id2){
$db = mysql_connect("127.0.0.1", "root");
mysql_select_db("daten",$db);
$result2=mysql_query("select count(*) from adressen where bundesland=$bl_id2",$db);
return $result2;
}

ciao
Oskar

3 Antworten zu dieser Frage

  1. Antwort von nach 11 Stunden hilfreich
    Re: [PHP/MySQL] Abfrage klappt per PHP nicht

    ganz einfach weil $result2=mysql_query("select count(*) from adressen where
    nicht etwa das Ergebnis in $result2 speichert, sondern nur ein Handle mit dem du im folgenden auf das Ergebnis zugreifen kannst.

    Ich empfehle dir folgendes
    $result2=mysql_query("SELECT Count(*) as anzahl from adressen");

    dann:
    $row = mysql_fetch_array($result2);
    return $row["anzahl"];

    • Antwort von nach 21 Stunden hilfreich
      Re^2: [PHP/MySQL] Abfrage klappt per PHP nicht

      Vielen Dank, es klappt! Ich hab zwar die Logik dahinter noch nicht ganz verstanden, aber immerhin weiß ich, wie`s geht :-)

      ciao
      Oskar

      • Antwort von nach 23 Stunden hilfreich
        Re^3: [PHP/MySQL] Abfrage klappt per PHP nicht

        Vielen Dank, es klappt! Ich hab zwar die Logik dahinter noch
        nicht ganz verstanden, aber immerhin weiß ich, wie`s geht :-)
        Es ist ganz einfach. Du machst eine Abfrage. Das Ergebnis einer Abfrage ist immer eine Tabelle, auch wenn die Tabelle nur eine Spalte und eine Zeile hat. Du hast versucht SQL wie einen Funktionsaufruf zu benutzen:

        $result2=mysql_query("select count(*) from adressen where ..."
        

        Das klappt nicht.

        Nehmen wir mal die korrekte Abfrage auseinander:

        SELECT Count(*) as anzahl from adressen");

        SELECT COUNT (*) ...
        

        dürfte die klar sein: zählt die Gesamtzahl aller Datensätze
        ...FROM adressen;
        

        ist auch klar, adressen ist die Ursprungstabelle.

        Das entscheidende ist
        AS anzahl
        


        Hier wird das Ergebnis der Abfrage einem Tabellenfeld zugewiesen. (erinnerung: Das Ergebnis einer Abfrage ist immer eine Tabelle)

        Der Wert dieses Feldes wird dann mit
        $row = mysql_fetch_array($result2); (liefert ein Array mit nur 1 Element)
        return $row["anzahl"];
        

        ausgelesen.

        Das ganze wird dir vielleicht klarer, wenn du dir folgende Abfrage vorstellst:
        SELECT name, vorname, count (name) as anzahl from adressen.
        


        Dies würde eine Tabelle mit allen Namen und Vornamen und einem Feld namens Anzahl ergeben in dem immer der gleiche Wert (eben die Anzahl) steht.

        Kleine Bemerkung am Rande. Gewöhn dir an, SQL-Schlüsselwörter (SELECT, FROM usw.) groß zu schreiben, und Bezeichner (name, vorname, adressen usw.) klein zu schreiben. Sorgt für besser Übersicht.

        cu, holli

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!