mysql_query kann nur maximal 300 Datensätze bekommen ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • mysql_query kann nur maximal 300 Datensätze bekommen ?

    Folgendes Statement ...

    Code:
    mysql_query("
    SELECT COUNT(eintrags_id) AS anz 
    FROM foreneintraege
    WHERE forenid = '".$_GET['forenid']."'
    ")
    ... gibt mir die Anzahl der in der Datenbank vorhandenen Beiträge zu einem Thread aus.
    Das geht solange gut, bis in einem Thread mehr als 300 Beiträge geschrieben wurden.
    Denn wenn mehr als 300 Datensätze zu der jeweiligen Forenid gehören, hat count(eintrags_id) immer den Wert 300.
    Dasselbe passiert, wenn ich statt COUNT(eintrags_id) * schreibe und danach mysql_num_rows verwende ...

    Ist das ein bekanntes Problem ?
    Yeah !

  • #2
    wie sehen denn deine tabellen aus?
    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 |


    Comment


    • #3
      eintrags_id int(11) auto_increment Primärschlüssel Index
      absender int(11)
      forenid int(11)
      betreff text
      inhalt text
      zeitpunkt timestamp(14)
      Yeah !

      Comment


      • #4
        11-bytes integer selbst der bigint ist auch nur 8 bytes lang
        [oder werden die bytes angabe in mysql anders gemacht)
        Last edited by asp2php; 21-04-2004, 11:29.

        Comment


        • #5
          Was willst Du mir damit jetzt sagen ?
          Yeah !

          Comment


          • #6
            dass, wenn ich richtig liege, deine Deklaration ziemlich daneben ist, denn 11-bytes-integer gibs nicht.

            Comment


            • #7
              Das hat der doofe PHP-MyAdmin von alleine so angelegt *g*

              Über die Feld-Dimensionierung habe ich mir ehrlich gesagt noch nicht so sehr die Gedanken gemacht - aber könnte das denn ursächlich für mein Problem sein ?
              Yeah !

              Comment


              • #8
                nein. eigentlich nicht.

                kann es sein, dass du auch fleissig löschst, wenn du 300 beiträge voll hast?
                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 |


                Comment


                • #9
                  Maybe, ich weiss nicht wie MySQL auf sowas reagiert, ich verwende keins

                  Comment


                  • #10
                    Original geschrieben von Abraxax
                    nein. eigentlich nicht.

                    kann es sein, dass du auch fleissig löschst, wenn du 300 beiträge voll hast?
                    Ach ja, ich erinnere mich dunkel an eine Frage

                    Comment


                    • #11
                      Nej, ich lösche gar nichts - ich bin eifriger Jäger und Sammler ;-)

                      Also, nochmal ausführlich den Dump:

                      Code:
                      CREATE TABLE `foreneintraege` (
                        `eintrags_id` int(11) unsigned NOT NULL auto_increment,
                        `absender` int(11) NOT NULL default '0',
                        `forenid` int(11) NOT NULL default '0',
                        `betreff` text NOT NULL,
                        `inhalt` text NOT NULL,
                        `zeitpunkt` timestamp(14) NOT NULL,
                        PRIMARY KEY  (`eintrags_id`)
                      ) TYPE=MyISAM AUTO_INCREMENT=10465 ;
                      PhpMyAdmin hat übrigens dasselbe Problem. Er zeigt mir als Kardinalität 9996 an - auch als anzahl der Datensätze - obwohl das der höchste Wert in der Spalte eintrags_id inzwischen weit jenseits der 11.000 ist.

                      Außerdem - wenn ich bei oben angeführtem Beispiel, wo er nicht mehr als 300 Datensätze zählen möchte, als Limit 310 angebe, zeigt er mir - Oh Wunder, die Datensätze an, die er anscheinend gar nicht zählen kann *grübel*
                      Yeah !

                      Comment


                      • #12
                        Original geschrieben von DaGuertliz
                        Nej, ich lösche gar nichts - ich bin eifriger Jäger und Sammler ;-)

                        Also, nochmal ausführlich den Dump:

                        Code:
                        CREATE TABLE `foreneintraege` (
                          `eintrags_id` int(11) unsigned NOT NULL auto_increment,
                          `absender` int(11) NOT NULL default '0',
                          `forenid` int(11) NOT NULL default '0',
                          `betreff` text NOT NULL,
                          `inhalt` text NOT NULL,
                          `zeitpunkt` timestamp(14) NOT NULL,
                          PRIMARY KEY  (`eintrags_id`)
                        ) TYPE=MyISAM AUTO_INCREMENT=10465 ;
                        PhpMyAdmin hat übrigens dasselbe Problem. Er zeigt mir als Kardinalität 9996 an - auch als anzahl der Datensätze - obwohl das der höchste Wert in der Spalte eintrags_id inzwischen weit jenseits der 11.000 ist.

                        Außerdem - wenn ich bei oben angeführtem Beispiel, wo er nicht mehr als 300 Datensätze zählen möchte, als Limit 310 angebe, zeigt er mir - Oh Wunder, die Datensätze an, die er anscheinend gar nicht zählen kann *grübel*
                        OffTopic:

                        vielleicht hat dein mysql ein virus



                        worin liegt denn nun eigentlich das problem? willst du dir alle threads auf einer seite anzeigen lassen, oder sind diese über eine blätter-funktion aufgeteilt? was zeigt dir phpmyadmin an anzahl an, wenn du die tabelle threads aufrufst?
                        Last edited by xManUx; 21-04-2004, 11:41.

                        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                        sondern mit den Augen das Manual zu lesen.

                        Comment


                        • #13
                          Jipp, genau !!!

                          Ich zähle die anzahl der zutreffenden Datensätze, teile die durch 10 und bekomme so X/10 verschiedene Werte für ein LIMIT im SQL-Statement, die ich als Parameter im Link anbiete.

                          Mein Problem ist nur, daß er nicht weiter als bis 300 zählen mag bzw. von einem query nicht mehr als 300 Datensätze betroffen sind, so daß bei "Limit 290, 10" Schluß ist, obwohl eigentlich noch "LIMIT 300, 10" möglich sein müßte, weil es 306 Datensätze sind ...
                          Yeah !

                          Comment


                          • #14
                            die abfrage direkt in phpmyadmin liefert auch keine werte größer als 300?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Comment


                            • #15
                              ich habe festgestellt, daß bei einem query nur die datensätze betroffen sind, die eine eintrags_id < 9996 haben - die anderen sind zwar vorhanden und werden auch angezeigt, wenn ich (oder der PMA) mit LIMIT im Statement arbeite - aber ansonsten nicht ...

                              Oh man - das schafft mich ;-)
                              Yeah !

                              Comment

                              Working...
                              X