die gleichen höchsten werte

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

  • die gleichen höchsten werte

    Ich habe eine Tabelle mit folgenden Feldern :

    faqtext_id
    faqtext_catid
    faqtext_text
    faqtext_title
    faqtext_author
    faqtext_version

    Nun wollte ich mir alle Einträge anzeigen lassen, die die höchste Versionsnummer haben und die gleiche catid

    Für einen Datensatz ist das ja ziemlich pippi ,

    PHP-Code:
    $sql =""SELECT max(faqtext_versionFROM faqtext Where faqtext_catid ".$catid_action.""; 
    Aber wenn jetzt es noch einen Datensatz gibt der genau den gleichen Wert in der faqtext_version hat, zeigt er mir den leider nicht an, wie kann ich dieses Rätsel lösen ?

  • #2
    http://dev.mysql.com/doc/mysql/en/SELECT.html

    PHP-Code:
    $sql "SELECT
                *
            FROM
                faqtext
            WHERE
                faqtext_catid = "
    .$catid_action."
            HAVING
                faqtext_version = MAX(faqtext_version)"

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ich hatte das mit having auch schon probiert, von der deutschen mysql seite aus , aber leider zeigt er mir tortzdem nur einen datensatz an, obwohl es 2 datensätze mit dem gleichen wert gibt .

      Kommentar


      • #4
        es mag sein, dass es zwei einträge mit dem hächsten wert MAX() gibt. aber was dein WHERE macht, solltest du auch berücksichtigen.

        nimm den WHERE - part u.u. mal raus. ;-)
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          hm auch ohne den where wert, macht er es leider nicht...

          hier mal meine Tabelle

          CREATE TABLE fcms_faqtext (
          faqtext_id int(11) NOT NULL auto_increment,
          faqtext_catid int(11) default '0',
          faqtext_text text NOT NULL,
          faqtext_title varchar(70) NOT NULL default '',
          faqtext_author varchar(70) NOT NULL default '',
          faqtext_version decimal(4,2) NOT NULL default '1.00',
          PRIMARY KEY (faqtext_id),
          FULLTEXT KEY faqtext_text (faqtext_text)
          ) TYPE=MyISAM

          und meine abfrage :

          PHP-Code:
          $pickup1 mysql_query("SELECT
                      *
                  FROM
                      fcms_faqtext
                  WHERE
                      faqtext_catid = 17
                  HAVING
                      faqtext_version = MAX(faqtext_version)"
          );
              
              while (
          $hitnow mysql_fetch_array($pickup1))
                      {
                      echo 
          $name $hitnow['faqtext_title'].'<br>';
                      
                      } 

          Kommentar


          • #6
            nutze mysql_error()
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              bitte wie meinen ? . Hatte ich ganz vergessen, eigentlich arbeite ich mit functions und db abfragen, da ist mysql_error enthalten, da ich aber eine ausgabe bekomme , zeigt er mir keinen error an..

              INSERT INTO fcms_faqtext VALUES (1, 17, '1', '1', '1', '1.00');
              INSERT INTO fcms_faqtext VALUES (2, 17, '2', '2', '2', '1.00');
              INSERT INTO fcms_faqtext VALUES (3, 1, '3', '3', '1', '2.00');


              Sind die daten, und er schaut halt nach in der catid = 17, dort gibt es ja 2 einträge mit dem wert 1.00 wovon er leider nur den ersten anzeigt..

              Kommentar


              • #8
                PHP-Code:
                $sql "SELECT
                            *
                        FROM
                            faqtext
                        WHERE
                            faqtext_catid = "
                .$catid_action."
                            AND faqtext_version = MAX(faqtext_version)"

                ???

                Kommentar


                • #9
                  @tobiaz da zeigt er mir folgenden fehler an :

                  Invalid use of group function

                  Kommentar


                  • #10
                    Original geschrieben von TobiaZ
                    PHP-Code:
                    $sql "SELECT
                                *
                            FROM
                                faqtext
                            WHERE
                                faqtext_catid = "
                    .$catid_action."
                                AND faqtext_version = MAX(faqtext_version)"

                    ???
                    Man man man ... das zeugt ja von einem perfekten Verständnis der Gruppierung unter SQL ...
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      OffTopic:
                      oh wie war... *sorry*

                      Kommentar

                      Lädt...
                      X