SELECT COUNT(*) mit mysql_fetch_array liefert nur Zeilenanzahl?

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

  • SELECT COUNT(*) mit mysql_fetch_array liefert nur Zeilenanzahl?

    hiho, also ganz einfaches Problem: Ich starte eine Suchanfrage in meiner DB und will das er mir die Anzahl der Treffer anzeigt:

    PHP-Code:
    $query 'SELECT COUNT(*) as blabla FROM products, shops WHERE SID = shops.ID'

    $results mysql_query($query);

    // Zählen der Einträge:

    $result mysql_fetch_array($results);
    $hits $result[blabla];

    echo 
    $hits
    Das klappt auch alles SUPER, aber:

    1. Sehe ich das richtig, dass "as blabla" hier im Beispiel praktisch nur den Array-Eintrag definiert wo er das Ergebnis der Treffer speichert?

    2. Auf der gleichen Seite weiter unten kommt bei mir noch einmal der Befehl:
    PHP-Code:
    while ($result mysql_fetch_array($result) { echo.... 
    der praktisch den eigentlichen Sinn der SELECT-Abfrage ausgeben soll - also alles was er gefunden hat. Aber das klappt nicht mehr sobald ich oben das Array "fetche". Sollte ich also hier zuvor noch eimal die gleiche SELECT-Abfrage schreiben allerdings OHNE COUNT(*) ? Oder würde das die Datenbank zu sehr belasten 2 Select-Befehle?

    BESTEN DANK für eure Hilfe! Grüße andy
    www.FrozenEmotions.de

  • #2
    Theoretisch sind 2 mal die gleiche Abfrage kein Problem. Meist werden webseiten ja eh von mehr als nur einem Benutzer besucht.

    Praktisch aber, ist es wesentlich sinnvoller, einfach gleich die Ergebnisse zu selektieren, die du haben willst, und diese mithilfe von mysql_num_rows() zu zählen.

    Die Experten könnten sich jetzt drüber streiten, ob das Zählen in MySQL schneller geht und weniger resourcen verbraucht, oder obs in PHP besser ist. Tatsache ist aber, dass du damit auf jeden Fall eine Abfrage sparst.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      zu 1: ja. aber beachte http://www.php-resource.de/forum/sho...threadid=47906

      Kommentar


      • #4
        danke! ich habe allerdings gelesen, dass mysql_num_rows() ziemlich Datenbankbelastend sein soll weshalb ich es so lösen wollte. Ist da was dran?
        Zuletzt geändert von FrozenEmotions; 30.08.2007, 17:13.
        www.FrozenEmotions.de

        Kommentar


        • #5
          wo hast du das gelesen?
          lies lieber www.das-dass.de

          Kommentar


          • #6
            danke für den netten Hinweis

            Gelesen habe ich es in einem Forum, war allerdings auch nur die Aussage einer Users. Deshalb ist fraglich ob es stimmt oder nicht.
            www.FrozenEmotions.de

            Kommentar


            • #7
              und wie wurde die aussage begründet?

              Kommentar


              • #8
                eigentlich garnicht - nur halt dass man lieber den COUNT-Befehl bei sowas nutzen sollte..


                habs hier der Link:

                Winfuture

                Zitat:
                hi,

                SELECT COUNT(*) FROM [TABELLE] WHERE name LIKE '[SUCHBEGRIF]'

                ist schon richtig zum Zählen der Datensätze, das Abfragen der Daten und anschließende zählen mit mysql_num_rows belastet den Server viel mehr.
                Zuletzt geändert von FrozenEmotions; 30.08.2007, 17:22.
                www.FrozenEmotions.de

                Kommentar


                • #9
                  warum machst du dir also gedanken über nicht belegte aussagen irgendeines forum besuchers?

                  Kommentar


                  • #10
                    ich bin nur skeptisch, nicht dass der Server später in die Knie geht wenn die Seite stärker besucht wird. Das wär schlecht...
                    www.FrozenEmotions.de

                    Kommentar


                    • #11
                      Wenn du NUR die Anzahl haben willst, nimm COUNT. Es ist überflüssig, alle Daten zu selektieren und nach PHP rüberzuschaufeln, nur um die Anzahl zu erfahren.

                      Wenn du sie aber sowieso alle brauchst, dann spricht überhaupt nichts gegen mysql_num_rows.
                      ich glaube

                      Kommentar


                      • #12
                        oki super dann danke ich euch mal für die echt nette Hilfe !!!
                        www.FrozenEmotions.de

                        Kommentar

                        Lädt...
                        X