ausgabe von for begrenzen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ausgabe von for begrenzen

    Hi @ all

    ich habe foldendes Script gebastelt

    Quellcode

    1. <?php
    2. $dir = ".";
    3. $files = array();
    4. $verz=opendir($dir);
    5. while($file = readdir($verz)){
    6. if($file != '.' && $file != '..' && $file != 'index.php' && $file != 'smiliey2.swf' && $file != 'test.php' && $file != 'F' && $file != '.htaccess')
    7. if(!eregi(".htm",$file))
    8. {
    9. array_push($files,$file);
    10. }
    11. }
    12. closedir($verz);
    13. echo 'Inhalt:<br><br>';
    14. natsort ($files);
    15. foreach($files as $single_file)
    16. echo '<embed src="http://.swf?code='.$single_file.'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$single_file.'[/flash]</textarea></form><br>';
    17. echo '<br>';
    18. echo '<br>';
    19. echo '<br>';
    20. echo '<br>';
    21. ?>
    Alles anzeigen



    es liest ein Verzeichnis aus und schreibt den inhalt in ein Array und gibt es aus ..
    da es sich um ca 450 dateien handelt, ist das recht unübersichtlich :(
    was bzw wie kann ich for da einbauen das mir nur eine bestimmte anzahl von ich sag jetzt mal 10 dateien anzeigt ?

    z.B: habe ich anstatt foreach mal for eingbaut

    Quellcode

    1. for ($i=1; $i<=10; $i++)
    2. {
    3. echo '<embed src="http://.swf?code='.$single_file.'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$single_file.'[/flash]</textarea></form><br>';
    4. }


    dann werden mir ja nur 10 einträge ausgegben aber $single_file bleibt ja leer, da foreach($files as $single_file) ja fehlt .
    was muss ich tun ? bin für jede Hilfe dankbar

    Gruss

    Samy

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von samysmurf ()

  • Du kannst ja direkt auf das Array zugreifen:

    Quellcode

    1. for ($i=0; $i<10; $i++)
    2. {
    3. echo '<embed src="http://.swf?code='.$files[$i+$_GET['startPos'].'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$single_file.'[/flash]</textarea></form><br>';
    4. }


    Die Variable startPost ist dazu da, damit man weiterblättern kann. Ich hoffe du versteht was ich mein ;)
  • Da ist jetzt noch ein Syntaxfehler, denn du hast ein ] vergessen. So ist es richtig/besser:

    Quellcode

    1. for ($i=0; $i<10; $i++)
    2. {
    3. $single_file = $i+$_GET['startPos'];
    4. echo '<embed src="http://.swf?code='.$files[$single_file].'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$files[$single_file].'[/flash]</textarea></form><br>';
    5. }
  • hmm und wie gebe ich den Parameter startPos mit ??

    test.php?startPos=10 ??
    Denn egal was ich angebe er fängt mit der Ausgabe immer bei datei smil285.swf an,
    aber voher hat er das brav ab Datei 1 gemacht. also ab datei smil1.swf.

    Aber die Ausgabe soll schon sortiert bleiben .


    Hat da noch jemand eine Idee ?

    Gruss

    Samy

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von samysmurf ()

  • DarkKiller schrieb:

    Du kannst ja direkt auf das Array zugreifen:
    echo '<embed src="http://.swf?code='.$files[$i+$_GET['startPos']].'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$single_file.'[/flash]</textarea></form><br>';
    [/syntax]


    Und natürlich musst Du noch prüfen ob überhaupt "$i+$_GET['startPos']" Dateien in Deinem Array sind, sonst bekommst Du eine Fehlermeldung. ;)
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan
  • hmmm leider blick ich da jetzt nicht ganz durch ...

    könnt ihr mir mal einen Tip geben ?

    Quellcode

    1. <?php
    2. $dir = ".";
    3. $files = array();
    4. $verz=opendir($dir);
    5. while($file = readdir($verz)){
    6. if($file != '.' && $file != '..' && $file != 'index.php' && $file != 'smiliey2.swf' && $file != 'test.php' && $file != 'F' && $file != '.htaccess')
    7. if(!eregi(".htm",$file))
    8. {
    9. array_push($files,$file);
    10. }
    11. }
    12. closedir($verz);
    13. echo 'Inhalt:<br><br>';
    14. natsort ($files);
    15. for ($i=0; $i<10; $i++)
    16. {
    17. echo '<embed src="http://.swf?code='.$files[$i+$_GET["startPos"]].'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://.swf?code='.$files[$i+$_GET["startPos"]].'[/flash]</textarea></form><br>';
    18. }
    19. echo '<br>';
    20. ?>
    Alles anzeigen


    So bekomme ich jetzt nur 10 Einträge angezeigt. Das wollte ich ja so haben.

    Wo baue ich da eine Abfrage ein ?
    Und wie bekomme ich jetzt meine Sortierung wieder ?
    Ich bin, naja, sagen wir mal ein PHP Frischling ...

    Gruss

    Samy
  • so ich hab es doch komplett umgebaut ... und zwar so :

    Quellcode

    1. <?php
    2. $i = 0;
    3. $bl_anzeige = 10;
    4. $dirname = ".";
    5. $dh = opendir( $dirname ) or die("couldn't open directory");
    6. $start = isset($_GET['start']) ? (intval($_GET['start'])-1)*$bl_anzeige : 0;
    7. while ( $file = readdir( $dh ) ) {
    8. if ($file{0} != '.') {
    9. $xzal=$i++;
    10. if($xzal>= $start && $xzal<$start+10) {
    11. echo '<embed src="http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'[/flash]</textarea></form>';
    12. }
    13. }
    14. $gesamt++;
    15. }
    16. // Einbinden der Bltterklasse ; evtl. Pfad anpassen
    17. include("bl.php");
    18. // Dann der Varibalen $begin_for einen Wert zuweisen
    19. // Bei meinem Beispiel wird start per GET (an die URL angehangen) bergeben.
    20. $begin_for = isset($_GET['start']) ? $_GET['start'] : 1;
    21. // Dann wird $gesamt bergeben.
    22. // Gesamt sind die gesamten Eintrge die vorhanden sind.
    23. // Wie Du gesamt ermittelst hngt von deinem Code ab, ob aus DB oder File
    24. $gesamt = 450;
    25. // Nun wird die Navi-Leiste erzeugt und an $nav_search bergeben
    26. $nav_search = $bl->nav($gesamt-1, intval($_GET['start'])+1);
    27. closedir( $dh );
    28. // An der Stelle wo die Ausgabe erfolgen soll
    29. echo $nav_search;
    30. ?>
    Alles anzeigen


    gefunden hab ich es hier : Klick


    Das macht eigentlich genau das was ich möchte :)
    Bis auf die nummerische Sortierung.

    jetzt möchte ich die Ausgabe aber in einer Tabelle Formatieren in etwa diesem Stil :

    Quellcode

    1. <td><embed src="swf?code=.$file1." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file1.[/flash]</textarea><br></form></td>
    2. <td><embed src="swf?code=.$file2." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file2.[/flash]</textarea><br></form></td>
    3. <td><embed src="swf?code=.$file3." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file3.[/flash]</textarea><br></form></td>
    4. <td><embed src="swf?code=.$file4." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file4.[/flash]</textarea><br></form></td>
    5. <td><embed src="swf?code=.$file5." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file5.[/flash]</textarea><br></form></td></tr>
    6. <tr><td><embed src="swf?code=.$file6." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file6.[/flash]</textarea><br></form></td>
    7. <td><embed src="swf?code=.$file7." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file7.[/flash]</textarea><br></form></td>
    8. <td><embed src="swf?code=.$file8." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file8.[/flash]</textarea><br></form></td>
    9. <td><embed src="swf?code=.$file9." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]swf?code=.$file9.[/flash]</textarea><br></form></td>
    10. <td><embed src="swf?code=.$file10." loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]code=.$file10.[/flash]</textarea><br></form></td></tr>


    also sprich das script soll mir eine Tabelle mit 10 einträgen ausgeben wie realisiere ich das am besten ?
    Also ich möchte 2 Reihen mit 5 Spalten.




    Das Script liegt hier test.php

    Das ganze soll für eine Flash Smiley Sammlung sein



    Gruss

    Samy

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von samysmurf ()

  • Das mit der Tabelle sollte auch kein Problem sein: Du hast eine zusätzliche Variable (hier x), die bis 5 zählt und dann ein <tr>-Tag schließt und öffnet. Anders gesagt:

    Quellcode

    1. int x = 1;
    2. echo '<table><tr>';
    3. while ( $file = readdir( $dh ) ) {
    4. if ($file{0} != '.') {
    5. $xzal=$i++;
    6. if($xzal>= $start && $xzal<$start+10) {
    7. echo '<td><embed src="http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'[/flash]</textarea></form></td>';
    8. if($x == 5) {echo '</tr><tr>'; }
    9. $x++;
    10. }
    11. }
    12. echo '</tr></table>';
    Alles anzeigen
  • Vielen Lieben Dank euch allen :)

    Jetzt geht es so wie es soll :) Freu :)


    Bis auf die Sortierung smil1.swf smil2.swf .... etc etc ...


    ich hatte das oben in meinem ersten ansatz
    so gelöst

    Quellcode

    1. natsort ($files);


    aber das greift nun nicht mehr .. :(

    hat da noch jemand ne idee ?

    Gruss

    Samy


    PS: wenn jemand an den Smilies interessiert sein sollte Email an mich :) samy@allschmuck.de

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von samysmurf ()

  • hmm ne ich hab es eigentlich so eingebaut wie du geschrieben hast ...

    aber die Sortierung funzt nicht :(

    Quellcode

    1. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    4. <meta http-equiv="Content-Style-Type" content="text/css" />
    5. <title>Der-HAMMER-Clan :: Flash Smilies</title>
    6. <link rel="stylesheet" href="http://forum.hammer-server.de/templates/cback/cback.css" type="text/css" />
    7. <link rel="stylesheet" href="http://forum.hammer-server.de/templates/cback/bbc_box.css" type="text/css">
    8. <table width="100%" border="0" cellspacing="0" cellpadding="10">
    9. <tr>
    10. <td>
    11. <table width="100%" border="0" cellspacing="1" cellpadding="4" class="forumline">
    12. <tr>
    13. <th>Flash Smilies</th>
    14. </tr>
    15. <tr>
    16. <td>
    17. <center>
    18. <?php
    19. $i = 0;
    20. $bl_anzeige = 10;
    21. $dirname = ".";
    22. $dh = opendir( $dirname ) or die("couldn't open directory");
    23. $start = isset($_GET['start']) ? (intval($_GET['start'])-1)*$bl_anzeige : 0;
    24. echo '<table width="100" border="0" cellspacing="0" cellpadding="5">';
    25. $x = (int)1;
    26. while ( $file = readdir( $dh ) )
    27. {
    28. if ($file{0} != '.' && $file != '..' && $file != 'index.php' && $file != 'smiliey2.swf' && $file != 'flash1.php' && $file != 'test.php' && $file != 'test2.php' && $file != 'bl.php' && $file != 'F' && $file != '.htaccess') {
    29. $xzal=$i++;
    30. if($xzal>= $start && $xzal<$start+10) {
    31. echo '<td><embed src="http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'" loop="false" quality="best" bgcolor="#ffffff" width="100" height="120"/><br><form method="post" action=""><textarea name="comments" cols="10" class="noscroll" rows="5">[flash width=120 height=140]http://forum.hammer-server.de/flash/smiliey2.swf?code='.$file.'[/flash]</textarea></form>';
    32. if($x == 5) {echo '</tr><tr>'; }
    33. $x++;
    34. }
    35. }
    36. $gesamt++;
    37. }
    38. // Einbinden der Bltterklasse ; evtl. Pfad anpassen
    39. include("bl.php");
    40. // Dann der Varibalen $begin_for einen Wert zuweisen
    41. // Bei meinem Beispiel wird start per GET (an die URL angehangen) bergeben.
    42. $begin_for = isset($_GET['start']) ? $_GET['start'] : 1;
    43. // Dann wird $gesamt bergeben.
    44. // Gesamt sind die gesamten Eintrge die vorhanden sind.
    45. // Wie Du gesamt ermittelst hngt von deinem Code ab, ob aus DB oder File
    46. $gesamt = 450;
    47. // Nun wird die Navi-Leiste erzeugt und an $nav_search bergeben
    48. $nav_search = $bl->nav($gesamt-1, intval($_GET['start'])+0);
    49. closedir( $dh );
    50. // An der Stelle wo die Ausgabe erfolgen soll
    51. echo '</table>';
    52. echo $nav_search;
    53. ?>
    54. <tr>
    55. <td class="genmed" align="center"><br />
    56. <a href="javascript:window.close();">Fenster schliessen</a>
    57. </td>
    58. </tr>
    59. </center>
    60. </td>
    61. </tr>
    62. </table>
    63. </td>
    64. </tr>
    65. </table>
    Alles anzeigen




    Gruss

    Samy