Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Count alle einträge einer spalte ohne doppelte einträge.

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Count alle einträge einer spalte ohne doppelte einträge.

    moin.

    ich hab 4 spalten. ( eigentlich noch mehr, aber das ist egal.)

    ID, Hersteller, Modellname und Codename
    (beispielangaben)

    1, Samsung, Galaxy S+, GT-I9001
    2, Samsung, Galaxy S+, GT-I9001
    3, Sony, Xperia Tipo, ST21i

    ich würde jetzt gerne zählen wieviele telefone ich schon in der liste habe.
    Klar, geht das mit count. aber das gibt mir halt auch doppelte einträge aus ( id 1+2 )

    mit DISTINCT gebe ich alles einer spalte aus allerdings ohne sie zu zählen.


    wie kann ich diese beiden dinge verbinden ?

    PHP-Code:
    $result=mysql_query("SELECT DISTINCT count(*) as phones from phone GROUP BY name");
    $data=mysql_fetch_assoc($result); 
    und
    PHP-Code:
    $result=mysql_query("SELECT count(DISTINCT *) as phones from phone GROUP BY name");
    $data=mysql_fetch_assoc($result); 
    funktionieren leider nicht..

    wäre sehr dankbar für beispielantworten mit erklärung


  • #2
    In dem du die Tabelle in 2 aufteilst. Eine für die Attribute, die aus deiner Sicht ein Telefon ausmachen - z. B. Hersteller + Modellname + Codename und eine für die restlichen. Dann einfach COUNT(id) auf die Telefon-Tabelle.

    Kommentar


    • #3
      mit DISTINCT gebe ich alles einer spalte aus allerdings ohne sie zu zählen.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Zitat von nikosch Beitrag anzeigen

        ich hab bisjetzt nur beispiele gefunden, die mir eine liste der einträge ausgeben. ( nur halt ohne die doppelten)
        und nie ein beispiel wie ich damit zählen kann

        Zitat von monolith Beitrag anzeigen
        In dem du die Tabelle in 2 aufteilst. Eine für die Attribute, die aus deiner Sicht ein Telefon ausmachen - z. B. Hersteller + Modellname + Codename und eine für die restlichen. Dann einfach COUNT(id) auf die Telefon-Tabelle.
        ich weiß, was du meinst. ich habe aber probleme bei tabellen miteinander zu verbinden. ich steig da noch nicht so ganz durch ..

        Kommentar


        • #5
          Code:
          SELECT
              COUNT(DISTINCT *)
          FROM
              phone
          Dieser Query würde wegen der Id (vermutlich ein Auto-Increment) die immer unterschiedlich ist, alle Einträge aus der Tabelle zählen.

          Code:
          SELECT
              COUNT(DISTINCT Hersteller, Modellname, Codename)
          FROM
              phone
          Liefert dir die Anzahl der Einträge bei denen Hersteller, Modellname oder Codename unterschiedlich sind.

          Kommentar


          • #6
            Funktioniert perfekt, danke

            Kommentar


            • #7
              Hinweis:

              Die original mysql-Erweiterung ist veraltet (mysql_*-Funktionen) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
              Choosing an API
              Warum man mysql* generell nicht (mehr) nutzen sollte.
              Wie man von mysql* auf PDO umsteigt
              Wissenswertes zum Thema SQL-Injection
              Standards - Best Practices - AwesomePHP - Guideline für WebApps

              Kommentar

              Lädt...
              X