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

  • Gast-Avatar
    Ein Gast erstellte das Thema COUNT immer "2".

    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]

  • Gast-Avatar
    Ein Gast antwortete


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

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    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?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich befürchte, ich bin zu doof dazu. Jetzt bekomme ich als Ergebnis "1"

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    Zergling hats ja gepostet..

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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?

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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?

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    mich habt Ihr immer länger zappeln lassen =(

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Um ehrlich zu sein, nein

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Habe Eure Varianten probiert, aber das Ergebnis bleibt zwei. Ich habe es versuchsweise auch schon mit anderen Tabellen probiert .... aber es bleibt immer "2"

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    Re: COUNT immer &quot;2&quot;

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

    Einen Kommentar schreiben:


  • Buhmann
    antwortet
    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.

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    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..

    Einen Kommentar schreiben:

Lädt...
X