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

  • Gast-Avatar
    Ein Gast erstellte das Thema Nur die ersten 10 Arrays anzeigen.

    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

  • Zergling-new
    antwortet
    1..n Beziehungen werden nunmal in neuen Tabellen verwirklicht

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    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

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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...

    Einen Kommentar schreiben:


  • DerDesian
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Habs schon gelöst sporry für den unnötigen Thread:

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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:

Lädt...
X