10 einträge pro seite

  • hallo gemeinschaft - da ich die daten nun aus einer xml db bekomme möchte ich nun folgendes erreichen

    ich möchte nur 10 einträge angezeigt bekommen und dann sollte unten die button vor und zurück sein

    ich habe ein code für den einbau in einer mysql db - könnt ihr mir vielleicht zeigen, wie ich den xml part da reinbekomme

  • Eine Datenbank auf Dateibasis, egal welches Format, ist in der Regel ungeeignet für eine Blätterfunktion. Die ersten zehn Einträge sind kein Problem, aber dann musst du die ersten zehn, dann zwanzig, etc. immer überlesen. Ist machbar, aber nicht wirklich prickelnd. Dein Beispiel auf Basis von MySQL kannst du dafür vergessen.

  • Was soll ich dir da zeigen? Versuche es doch zuerst einmal selber! Du brauchst zwei Schleifen, die erste, die eigentlich nichts tut, und die zweite, die 10 Daten ausgibt. Wobei die erste Schleife variable ist, sprich, wieviel Durchläufe die hat, ist abhängig davon, ab wann die Daten ausgeben werden sollen. Wenn du also die Datensätze 20 bis 30 ausgeben willst, läuft die erste Schleife von 0 bis 19.

    Wenn du selber mal was versucht hast und dann nicht klar kommst, kannst du deinen Quellcode posten und wir werden sehen, wo wir dir helfen können. Aber sofort einen fertigen Quellcode gibt's nicht.

  • Oder er liest das XML mit SimpleXML ein und spricht die gewünschten Elemente in einer for-schleife von $start bis $anzahl aus? Wenn ich mich richtig erinnere kann man SimpleXMLElements als pseudo-arrays verwenden. Kanns allerdings gerade nicht testen.

  • [STRIKE]...nein? Wie bandit schon erwähnt hat, eine MySQL Lösung bringt dir erstmal gar nichts hier.[/STRIKE]

    Die Idee ist aber eine ähnliche. Du übergibst eine Seitenzahl per GET-Parameter, rechnest diese in einen offset um (Seitenanzahl * Anzahl angezeigte Resultate). Mit array_slice oder schlicht einer for-schleife kannst du dann mithilfe dieses offsets die nächsten n resultate anzeigen.

    Ein beispiel, um dir das Prinzip klar zu machen. Bitte beachten, dass ich hier die Umformung der Daten zu einem Array noch nicht gemacht habe.

    PHP
    define('RESULTS', 10);
    
    
    $page = array_key_exists('page', $_GET) ? $_GET['page'] : 0;
    $offset = $page * RESULTS;
    
    
    $resultat = array_slice($xml_array, $offset, RESULTS);

    EDIT: Okay, du hast deine vorherige antwort gelöscht. Mein beispiel zählt trotzdem noch ;)

    EDIT2: Sorry, ich hatte den Offset falsch berechnet, die ersten 10 Resultate müssen natürlich "Seite 0" sein.

    4 Mal editiert, zuletzt von lukasn (7. Oktober 2013 um 11:20)

  • dann bekomme ich diese meldung

    HTML
    Warning:  array_slice() expects parameter 1 to be array, null given in

    das ist der code

    HTML
    $resultat = array_slice($xml_array, $offset, RESULTS); ?>
  • Lies doch bitte die gesamte Antwort. wo definierst du $xml_array? Nirgends. Natürlich ist Parameter 1 dann NULL.

    Ich kann dir auch das noch vorkauen, habs hier sowieso schon stehen, dafür muss ich aber erst mal nen var_dump von deinem SimpleXML Object haben.

    Wenn du weiter so vorgehst hast du einfach nichts aus der ganzen Sache gelernt. Rauskopierter Code den du nicht verstehst bringt dir doch nix...

  • das waere der vardump

    HTML
    object(SimpleXMLElement)#1 (1) { ['Picture']=> array(23) { [0]=> object(SimpleXMLElement)#3 (6) { ['Name']=> object(SimpleXMLElement)#27 (0) { } ['URL']=> string(72) "http://wwww.de/images/shipimages/427/large/phoenix-artania-pool.jpg" ['Title']=> string(4) "Pool" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [1]=> object(SimpleXMLElement)#2 (6) { ['Name']=> object(SimpleXMLElement)#28 (0) { } ['URL']=> string(71) "http://wwww.de/images/shipimages/427/large/phoenix-artania-bar.jpg" ['Title']=> string(4) "Bars" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [2]=> object(SimpleXMLElement)#6 (6) { ['Name']=> object(SimpleXMLElement)#29 (0) { } ['URL']=> string(72) "http://wwww.de/images/shipimages/427/large/phoenix-artania-bar2.jpg" ['Title']=> string(4) "Bars" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [3]=> object(SimpleXMLElement)#7 (6) { ['Name']=> object(SimpleXMLElement)#30 (0) { } ['URL']=> string(72) "http://wwww.de/images/shipimages/427/large/phoenix-artania-bar3.jpg" ['Title']=> string(4) "Bars" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [4]=> object(SimpleXMLElement)#8 (6) { ['Name']=> object(SimpleXMLElement)#31 (0) { } ['URL']=> string(78) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [5]=> object(SimpleXMLElement)#9 (6) { ['Name']=> object(SimpleXMLElement)#32 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant2.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [6]=> object(SimpleXMLElement)#10 (6) { ['Name']=> object(SimpleXMLElement)#33 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant3.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [7]=> object(SimpleXMLElement)#11 (6) { ['Name']=> object(SimpleXMLElement)#34 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant4.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [8]=> object(SimpleXMLElement)#12 (6) { ['Name']=> object(SimpleXMLElement)#35 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant5.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [9]=> object(SimpleXMLElement)#13 (6) { ['Name']=> object(SimpleXMLElement)#36 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-restaurant6.jpg" ['Title']=> string(11) "Restaurants" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [10]=> object(SimpleXMLElement)#14 (6) { ['Name']=> object(SimpleXMLElement)#37 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff4.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [11]=> object(SimpleXMLElement)#15 (6) { ['Name']=> object(SimpleXMLElement)#38 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff5.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [12]=> object(SimpleXMLElement)#16 (6) { ['Name']=> object(SimpleXMLElement)#39 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff6.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [13]=> object(SimpleXMLElement)#17 (6) { ['Name']=> object(SimpleXMLElement)#40 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff7.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [14]=> object(SimpleXMLElement)#18 (6) { ['Name']=> object(SimpleXMLElement)#41 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff9.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [15]=> object(SimpleXMLElement)#19 (6) { ['Name']=> object(SimpleXMLElement)#42 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff8.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [16]=> object(SimpleXMLElement)#20 (6) { ['Name']=> object(SimpleXMLElement)#43 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff1.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [17]=> object(SimpleXMLElement)#21 (6) { ['Name']=> object(SimpleXMLElement)#44 (0) { } ['URL']=> string(75) "http://wwww.de/images/shipimages/427/large/phoenix-artania-schiff2.jpg" ['Title']=> string(19) "Schiffsbeschreibung" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [18]=> object(SimpleXMLElement)#22 (6) { ['Name']=> object(SimpleXMLElement)#45 (0) { } ['URL']=> string(78) "http://wwww.de/images/shipimages/427/large/phoenix-artania-sonnendeck.jpg" ['Title']=> string(10) "Sonnendeck" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [19]=> object(SimpleXMLElement)#23 (6) { ['Name']=> object(SimpleXMLElement)#46 (0) { } ['URL']=> string(79) "http://wwww.de/images/shipimages/427/large/phoenix-artania-sonnendeck2.jpg" ['Title']=> string(10) "Sonnendeck" ['Type']=> string(4) "Ship" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [20]=> object(SimpleXMLElement)#24 (6) { ['Name']=> object(SimpleXMLElement)#47 (0) { } ['URL']=> string(94) "http://wwww.de/images/cruisingareaimages/58/large/Südamerika1_backend_iStock_3999869.jpg" ['Title']=> string(11) "Südamerika" ['Type']=> string(11) "Destination" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [21]=> object(SimpleXMLElement)#25 (6) { ['Name']=> object(SimpleXMLElement)#48 (0) { } ['URL']=> string(94) "http://wwww.de/images/cruisingareaimages/58/large/Südamerika2_backend_istock_4421538.jpg" ['Title']=> string(11) "Südamerika" ['Type']=> string(11) "Destination" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } [22]=> object(SimpleXMLElement)#26 (6) { ['Name']=> object(SimpleXMLElement)#49 (0) { } ['URL']=> string(99) "http://wwww.de/images/cruisingareaimages/58/large/Südamerika3_Backend_iStock_4674555Small.jpg" ['Title']=> string(11) "Südamerika" ['Type']=> string(11) "Destination" ['Width']=> string(3) "320" ['Height']=> string(3) "228" } } }
  • EPIC WALL OF TEXT.

    Daraus solltest du ja eigentlich sehen wie es weitergeht. Aber was solls:

    Nachtrag: Bevor die jetzt in 2 Minuten wieder mit dem nächsten Problem anklopfst, lies dir erst mal den Code durch und versuch zu verstehen, was ich dabei mache. Wenn dir etwas nix sagt, frag Google. Dauernder Vorgekauter Code liefert dir keine nachhaltige, supportbare Lösung, weil du am Schluss selbst nicht weisst, was überhaupt passiert in dem Script.

    Einmal editiert, zuletzt von lukasn (7. Oktober 2013 um 11:47)

  • also ich bin jetzt und für die zukunft raus, weil mich das gefühl beschleicht, dass hier nur geschnorrt wird und fast 0 eigenleistung vorhanden ist!
    ich kann immer wieder nur sagen: wir sind kein "machs-dir"-forum, sondern ein hilfe-forum!!

    und wenn du lieber jhaustein nicht etwas mehr initiative zeigst, brauchst du von meiner seite aus nichts mehr erwarten.
    die doku vorkauen wird dir hier keiner! so wie du dich anstellst, kannst du nichma nen if von nem else unterscheiden.

  • lieber lukas - lieben dank für den code

    ist das die ausgabe

    HTML
    resultatArray
    offset0
    arrayArray
    xml_arrayArray
  • ...jo. Hast du eine andere Ausgabe erwartet?

    Gratistipp: Lass das Projekt sein. Geh erst nochmal einige Schritte zurück und lern die Grundlagen. Z.B. was passiert, wenn du versuchst, ein Array mit einem String zu verknüpfen oder über echo auszugeben. Oder Debugging, das hätte dir ca. die letzten 30 Beiträge und gefühlten 300 PNs erspart.

  • Eine korrekte Ausgabe!

    Warnung: wenn du dich jetzt nicht langsam selber mal bemühst und nachdenkst, ist hier bald dicht!!!

    Wie synaptic schon schrieb, wir sind kein "machs-dir"-forum!!!

    Oder Debugging, das hätte dir ca. die letzten 30 Beiträge und gefühlten 300 PNs erspart.


    Und genau deshalb siehe mein Signatur ;) Wenn man einmal per PN anfängt, wird man mache Leute nicht mehr los ;)

    Einmal editiert, zuletzt von Bandit (7. Oktober 2013 um 12:41)