Ergebnis 1 bis 13 von 13

Thema: count gleicher vorkommnisse

  1. #1
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard count gleicher vorkommnisse

    hallo in die runde,

    wie kann ich gleiche vorkommnisse in einer datenbank (autorid) zählen lassen und ausgeben (im template)?

    PHP-Code:
    <?php $database = \Database::getInstance(); ?>
    <?php $anzahl 
    $database->prepare('SELECT *, COUNT(autorid) FROM mm_gruppenarchiv_kommentare')->execute(); ?>
    so richtig scheint das nicht zu funktionieren.
    wie komme ich dann über die variable anzahl an die gezählte anzahl? hat jemand eine idee?

    die aktuelle ausgabe über print_r sieht so aus:
    Code:
    Contao\Database\Mysqli\Result Object
    (
        [resResult:protected] => mysqli_result Object
            (
                [current_field] => 0
                [field_count] => 12
                [lengths] => 
                [num_rows] => 1
                [type] => 0
            )
    
        [strQuery:protected] => SELECT *, COUNT(autorid) FROM mm_gruppenarchiv_kommentare
        [intIndex:Contao\Database\Result:private] => -1
        [blnDone:Contao\Database\Result:private] => 
        [blnModified:Contao\Database\Result:private] => 
        [arrCache:protected] => Array
            (
            )
    
    )
    lg.

    alex
    Geändert von haendersonfox (31.05.2017 um 09:56 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    Du brauchst noch ein
    Code:
    GROUP BY [FELD]

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    was erhältst Du als Ausgabe/Anzeige, wenn Du das
    Code:
    SELECT *, COUNT(autorid) FROM mm_gruppenarchiv_kommentare
    in phpMyAdmin eingibst?


    btw: https://www.google.de/search?q=mysql...N8Lb8AePsqzIBA => erstes Ergebnis...

  4. #4
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard

    durch das group by erhalte ich nun:

    Code:
    	Contao\Database\Mysqli\Result Object
    (
        [resResult:protected] => mysqli_result Object
            (
                [current_field] => 0
                [field_count] => 12
                [lengths] => 
                [num_rows] => 6998
                [type] => 0
            )
    
        [strQuery:protected] => SELECT *, COUNT(autorid) FROM mm_gruppenarchiv_kommentare GROUP BY autorid
        [intIndex:Contao\Database\Result:private] => -1
        [blnDone:Contao\Database\Result:private] => 
        [blnModified:Contao\Database\Result:private] => 
        [arrCache:protected] => Array
            (
            )
    
    )
    bleibt die frage, wie ich an die id bzw. den autornamen komme und an die anzahl!?

    lg.

  5. #5
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    So sollte es doch funktionieren.

    Code:
    SELECT [FELD], [FELD], COUNT(*) FROM [Table] GROUP BY [FELD]

  6. #6
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard

    im normalfall bekomme ich die daten so heraus:

    PHP-Code:
    echo anzahl->id 
    oder

    PHP-Code:
    echo anzahl->autorid 
    wie gelange ich aber an die zusammengerechneten werte zur autorid?

  7. #7
    Contao-Fan
    Registriert seit
    16.11.2012.
    Ort
    Freiburg
    Beiträge
    539

    Standard

    Was erhältst du damit?

    Zitat Zitat von 07alex07 Beitrag anzeigen
    So sollte es doch funktionieren.

    Code:
    SELECT [FELD], [FELD], COUNT(*) FROM [Table] GROUP BY [FELD]

  8. #8
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard

    Code:
    	Contao\Database\Mysqli\Result Object
    (
        [resResult:protected] => mysqli_result Object
            (
                [current_field] => 0
                [field_count] => 3
                [lengths] => 
                [num_rows] => 6998
                [type] => 0
            )
    
        [strQuery:protected] => SELECT autorid, autor, COUNT(*) FROM mm_gruppenarchiv_kommentare GROUP BY autorid
        [intIndex:Contao\Database\Result:private] => -1
        [blnDone:Contao\Database\Result:private] => 
        [blnModified:Contao\Database\Result:private] => 
        [arrCache:protected] => Array
            (
            )
    
    )

  9. #9
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard

    das ganze war schon mal in einem thread thema, leider funktioniert das bei mir nicht.

    https://community.contao.org/de/show...enbank-Abfrage

    ich komme also an:

    Code:
    resResult->field_count
    nicht heran ;-(

  10. #10
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von haendersonfox Beitrag anzeigen

    ich komme also an:

    Code:
    resResult->field_count
    nicht heran ;-(
    Ich glaube auch nicht, daß Dich field_count interessiert. Die 3 sollten dei drei Felder "autorid", "autor" und "COUNT(*)" sein.

    Wenn Du die Abfrage etwas modifizierst und dem COUNT(*) "einen Namen gibst" solltest Du an die gewünschten Werte kommen:

    PHP-Code:
    <?php
    $database 
    = \Database::getInstance();
    $result $database->prepare('SELECT autorid, autor, COUNT(autorid) as anzahl FROM mm_gruppenarchiv_kommentare GROUP BY autorid')->execute(); 
    while (
    $result->next()) {
      
    // mach etwas mit 
      // $result->autorid;
      // $result->autor;
      // $result->anzahl;
    }
    ?>
    Geändert von fiedsch (31.05.2017 um 13:05 Uhr)
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von haendersonfox Beitrag anzeigen
    das ganze war schon mal in einem thread thema, leider funktioniert das bei mir nicht.

    https://community.contao.org/de/show...enbank-Abfrage
    aber auch dort steht: "check Dein Query" - dazu gab es bisher keine Rückmeldung...

  12. #12
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Ich glaube auch nicht, daß Dich field_count interessiert. Die 3 sollten dei drei Felder "autorid", "autor" und "COUNT(*)" sein.

    Wenn Du die Abfrage etwas modifizierst und dem COUNT(*) "einen Namen gibst" solltest Du an die gewünschten Werte kommen:

    PHP-Code:
    <?php
    $database 
    = \Database::getInstance();
    $result $database
      
    ->prepare('SELECT autorid, autor, COUNT(*) as anzahl FROM mm_gruppenarchiv_kommentare GROUP BY autorid')
      ->
    execute(); 
    while (
    $result->next()) {
      
    // mach etwas mit 
      // $result->autorid;
      // $result->autor;
      // $result->anzahl;
    }
    ?>
    EDIT: Beispielcode gefixt.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  13. #13
    Alter Contao-Hase Avatar von haendersonfox
    Registriert seit
    22.05.2012.
    Beiträge
    1.029

    Standard gelöst

    genau, das ist es. vielen dank.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •