Ankündigung

Einklappen
Keine Ankündigung bisher.

COUNT immer "2"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • COUNT immer "2"

    Hallo liebe Leute,

    ich habe leider mal wieder ein Anfängerproblem. Bin bei der Suche im Forum nicht fündig geworden.

    Ich möchte aus meiner Datenbank die Anzahl der gelisteten Fahrzeuge auslesen:

    Code:
    <?php
    // Statistik
    
    $statistik = @mysql_query(
    "SELECT 
    COUNT (typeid) FROM tb_type");
    
    if (!$statistik) 
    {
      exit('
    Statistik kann zur Zeit nicht angezeigt werden ' . mysql_error() . '</br>');
    }
    
    while ($statistik = mysql_fetch_array($statistik)) {
    
       	echo count ($statistik); 
    			
    }
    ?>
    Als Ergebnis bekomme ich aber immer nur den Wert 2 ausgegeben. Es sind aber schon mehr Fahrzeuge gelistet.

    Welche Banalität übersehe ich??[/quote]

  • #2
    ich habs mal 1:1 bei mir übernommen (einfach andere Spalten und Tabellen) bei mir funktionierts einwandfrei..

    kannst dir ja sonst mal

    mysql_num_rows() im Manual anschauen

    und vileicht mal das @ Zeichen entfernen..
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

    Kommentar


    • #3
      argh nicht mysql_num_rows, wenn du die restlichen Ergebnisse nicht brauchst, ist das Ressourcenverschwendung.

      Falls du die anzahl sämtlicher Einträge wissen willst, ersetz mal COUNT(typeid) durch COUNT(*), so mache ich das immer.

      Kommentar


      • #4
        Re: COUNT immer &quot;2&quot;

        PHP-Code:
        <?php
        while ($statistik mysql_fetch_array($statistik)) {
        ?>
        ??

        Kommentar


        • #5
          Habe Eure Varianten probiert, aber das Ergebnis bleibt zwei. Ich habe es versuchsweise auch schon mit anderen Tabellen probiert .... aber es bleibt immer "2"

          Kommentar


          • #6
            OK nicht verstanden?

            PHP-Code:
            <?php
            while ($statistik mysql_fetch_array($statistik)) {
            ?>
            array mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp] )

            int count ( mixed var [, int mode] )
            Liefert die Anzahl von Elementen in var, welche typischerweise ein Array ist (da alles andere ein Element enthält).

            Klingelts?

            Kommentar


            • #7
              Um ehrlich zu sein, nein

              Kommentar


              • #8
                mich habt Ihr immer länger zappeln lassen =(
                :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                Kommentar


                • #9
                  beim ersten Schleifendurchlauf ist $statistik eine Resource, auf die du mit mysql_fetch_array() zugreifen kannst. Der Rückgabewert dieser Funktion ist ein Array. Du überschreibst die Variable $statistik vom Typ Resource mit dem Array. Das klappt für den 1. Schleifendurchlauf noch. Beim 2. while ()-Durchlauf ist $statistik aber ein Array, da $statistik = mysql_fetch_array(..). Du übergibst also der mysql_fetch_array() Funktion beim 2. Durchlauf einen Array. Damit kan die Funktion nichts anfangen und der Schleifendurchlauf bricht ab.

                  Das ist zumindest schonmal ein Hauptproblem deines Scriptes.

                  Deine Frage warum count($statistik) 2 zurückwirft ist auch schnell beantwortet:
                  mysql_fetch_array() erstellt einen "doppelten" Array. Die Spalten aus der SQL-Abfrage werden einmal mit numerischen Indexen (0, 1, 2, ..) und assoziativen Indexen (spaltenname1, spaltenname2, ..) in einen Array gespeichert und zurückgegeben. In $arr = mysql_fetch_array(..) steht nun also einmal $arr[0] = "wert aus 1. spalte" und $arr["spaltenname1"] = "wert aus 1. spalte".

                  Ich weiß nicht genau was du eigentlich haben willst, die Anzahl der Zeilen innerhalb der Tabelle "tb_type" oder die Datensätze selbst.

                  SELECT COUNT(*) FROM ..

                  wirft lediglich eine Zelle zurück (Zeile 0, Spalte 0) in der die Anzahl der Treffer auf * stehen.


                  Edit:
                  Ich möchte aus meiner Datenbank die Anzahl der gelisteten Fahrzeuge auslesen
                  Du machst folgenden Fehler mit Count: Sagen wir du willst wissen wieviel Äpfel gesammelt wurden, die jetzt in Kisten lagern. Du zählst jetzt aber die Kisten, nicht die Äpfel in den Kisten?! Wobei die Kisten die Zellen sind und die Äpfel die Anzahl die in der Zelle steht.

                  Lösung auf deine Frage (laut quote):

                  Code:
                  $num = mysql_result(mysql_query("SELECT COUNT(*) FROM tb_type"),0);
                  Klarer?

                  Kommentar


                  • #10
                    OK, von der Logik her, habe ich das soweit verstanden. Aber was muss ich nun ändern, um die Anzahl der Datensätze innerhalb der Tabelle herauszubekommen?

                    Kommentar


                    • #11
                      Zergling hats ja gepostet..
                      :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                      Kommentar


                      • #12
                        Ich befürchte, ich bin zu doof dazu. Jetzt bekomme ich als Ergebnis "1"

                        Kommentar


                        • #13
                          PHP-Code:
                          <?php
                          $num 
                          mysql_result(mysql_query("SELECT COUNT(*) FROM tb_type"),0);
                          echo 
                          $num;

                          ?>
                          bin selber auch kein PHP Profi, aber was passiert wen du das so testest?
                          :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                          Kommentar


                          • #14


                            Das wars!!! Hatte das echo noch falsch, jetzt stimmts!! DANKE EUCH!!!!

                            Kommentar

                            Lädt...
                            X