Ankündigung

Einklappen
Keine Ankündigung bisher.

Nur die ersten 10 Arrays anzeigen

Einklappen

Neue Werbung 2019

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

  • Nur die ersten 10 Arrays anzeigen

    Hallo ich hab in einer Datenbank von jedem User die eingetragenen Freunde in einer Spalte gespeichert und durch ein ; getrennt.


    So werden die abgerufen:


    PHP-Code:
     
    $selectf
    =mysql_query("SELECT freunde from members where id='$userid'");  
    while(
    $row mysql_fetch_row($selectf))  
    {  
    if(
    $row[0]=="")  
    {  
    echo
    "Es sind keine Freunde eingetragen";  
    }  
    else  
    {  
    $freunde=explode(";",$row[0]);  
    }  
    //while 

    ich will jetzt nicht alle Freunde sondern nur die ersten 10 Freunde abrufen wie mach ich das?


    Hab es schon mit

    foreach ($freunde as $freunde) versucht, aber da werden ja wieder alle angezeigt. Auch habe ich versucht for($i=0; $<10; $i++

    schon versucht, aber das würde nur funktionieren, wenn der User mindestens 10 User eingetragen hat, weil sonst die Schleife unnötig bis 10 läuft und eine Ausgabe macht, die ich nicht haben will.


    Kann mir einer helfen.

    Thx

    goosele


  • #2
    Du könntest dir beispielsweise mal die Funktion array_slice() ansehen. Außerdem solltest du deine Tabellenstruktur noch einmal überdenken. Stichwort Normalisierung von Datenbanken

    Kommentar


    • #3
      Und warum prüfst du nicht einfach, ob das Array $freunde mindestens 10 Elemente hat? Wenn ja, gibst du die ersten 10 aus, sonst eben nur die Anzahl.

      Gruß
      phpfan

      Kommentar


      • #4
        Habs schon gelöst sporry für den unnötigen Thread:

        for($i=0; $i<10 AND $i<count($freunde); $i++)

        Kommentar


        • #5
          Noch ein Tipp zur Sache:

          MySQL hat ein LIMIT

          Damit hohlst du maximal 10 Einträge aus der DB und kannst es dir sparen darüber in deinem Source überhaupt nachdenken zu müssen...


          Gruß

          Der Desian
          Wenn dich was ankotzt, machs besser.

          Kommentar


          • #6
            machs ein select mit limit 10. das ist am performantesten! eine bessere lösung gibts nicht.
            ps: du kannst LIMIT zwei parameter mitgeben:

            limit 10 = einträge von 0 bis 10
            limit 10, 20 = einträge von 10 bis 20

            so kannst du "seitenweise" abrufen...

            Kommentar


            • #7
              ihr habt doch alle garnich verstanden was er überhaupt möchste ...

              Zitat von xabbuh
              Außerdem solltest du deine Tabellenstruktur noch einmal überdenken. Stichwort Normalisierung von Datenbanken.
              Die Datenbankstruktur passt doch völlig. Er speichert für den aktuellen User dessen Freunde in einer Spalte ... 2,14,555 ... etc. wie willst du die Freunde denn sonst bitte speichern?!

              Zu DerDesian und juliusfirl:
              Er möchte ja nicht die Anzahl der Rows aus der Datenbank limitieren sondern liest er nur ein Feld aus der DB aus und bekommt aus dem Feld ein Array. Er splitet die einzelnen IDs auf. Und da möchte er eben nur maximal 10 IDs auslesen! Und das funktioniert wohl am besten so wie ers geschrieben hat.

              Kommentar


              • #8
                Zitat von RaZoR
                Die Datenbankstruktur passt doch völlig. Er speichert für den aktuellen User dessen Freunde in einer Spalte ... 2,14,555 ... etc. wie willst du die Freunde denn sonst bitte speichern?!
                Dazu wird eine zusätzliche Tabelle angelegt, in der den Benutzern ihre Freunde zugeordnet werden: http://de.wikipedia.org/wiki/Normali...28Datenbank%29

                Kommentar


                • #9
                  1..n Beziehungen werden nunmal in neuen Tabellen verwirklicht

                  Kommentar

                  Lädt...
                  X