Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ne Simple Blätterfunktion [Smarty]

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Ne Simple Blätterfunktion [Smarty]

    Hey,

    würde dort noch gerne ne Simple Blätterfunktion mit einbauen.. habs leider nicht hinbekommen, da ich ja irgendwie ne zweite foreach schleife über die erste machen muss, glaub ich zumindestens, habt ihr ne idee + Code beispiele?

    hier die news.php

    PHP-Code:
        $news = array();

    $news_show_sql mysql_query("SELECT id, nick, news_id, titel, poster_id, Datum FROM news JOIN user ON poster_id=id ORDER BY Datum DESC");
    while(
    $news_me mysql_fetch_assoc($news_show_sql))
    {
        
    $news[] = array(
          
    'newsid' => $news_me['news_id'],
          
    'nick' => $news_me['nick'],
          
    'title' => $news_me['titel']);
    }
    echo 
    mysql_error();

        
          

        
        
        
    $tpl->assign('show_me_news'$news);
        
    $tpl->assign("content"$tpl->fetch("news_show.tpl")); 
    und die news_show.tpl mit der foreach schleife

    PHP-Code:
    <table width="490" border="0" cellspacing="0" cellpadding="0">
      <
    tr>
      {foreach 
    item=array from=$show_me_news}
        <
    td><table width="490" border="0" cellspacing="0" cellpadding="0">
      
          <
    tr bgcolor="{cycle values="#DDDDDD,#CCCCCE"}">
            
    <td width="100" align="center" valign="middle" class="navi_info">{$array.newsid}</td>
            <
    td width="10" align="right" valign="middle" class="navi_info">&nbsp;</td>
            <
    td width="83" align="left" valign="middle" class="navi_info">{$array.nick}</td>
            <
    td width="195" align="left" valign="middle" class="navi_info">{$array.title}</td>
            <
    td width="49" align="center" valign="middle"><img src="../../images/admin_images/icons/anzeigen.png" width="24" height="24"></td>
            <
    td width="53" align="center" valign="middle"><img src="../../images/admin_images/icons/loeschen.png" width="24" height="24"></td>
          </
    tr>
      
        </
    table>
          <
    table width="490" border="0" cellspacing="0" cellpadding="0">
            <
    tr>
              <
    td height="2" bgcolor="#232323"></td>
            </
    tr>
          </
    table></td>
      </
    tr>
      {/foreach}
    </
    table
    Danke für eure Hilfe

    Gruß,

    Flo
    What You See Is What You Get“

  • #2
    PHP-Code:
        //mysql_connect...
    $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
    $limit 2;
    $offset  abs(($page 1)) * $limit;
    //Datensätze auslesen
    $res mysql_query("SELECT titel FROM news LIMIT "$offset .", "$limit) or die(mysql_error());
    while(
    $row mysql_fetch_assoc($res)) {
        echo 
    $row['foo'];
    }
    //Komplette Anzahl an Datenzsätzen holen
    $res2 mysql_query("SELECT COUNT(*) AS anzahl FROM news") or die(mysql_error());
    $row mysql_fetch_assoc($res2);
    $number_of_sites ceil($row['anzahl'] / $limit);
    for(
    $i 1$i <= $number_of_sites$i++) {
        if(
    $i == $page) {
            echo 
    '<strong>[ '$i .' ]</strong>';
        } else {
            echo 
    '<a href="index.php?section=news&page='$i .'">'$i .'</a>';
        }

    Eine Blätter Funktion konnte ich durch ein Tutorial schreiben mein Script + Smarty anpassen soll, keine ahnung..

    wäre nett wenn ihr mir helfen würdet

    Gruß,

    Flo
    What You See Is What You Get“

    Kommentar


    • #3
      Meines Wissens nach gibt es so etwas wie Pagination sogar als Smarty Plugin. Weiß jetzt nicht mehr wo, aber googeln kann man ja auch selbst
      [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
      [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

      Kommentar


      • #4
        Und bitte nochmal dein HTML anschauen. Eine Tabelle mit nur einer Zelle machgt wenig Sinn und für einen zwei Pixel hohen Strich braucht man auch nicht wirklich eine Tabelle.

        Smarty verwende ich nicht, da kann ich also nur eingeschränkt etwas zu sagen. Aber du solltest dir die Beschreibung des LIMIT Parameters in SELECT-Statements mal anschauen.

        Bevor du nicht verstanden hast, warum das Tutorial so funktioniert wie es funktioniert, wird ein übertragen auf den eigenen Code nicht wirklich funktionieren.

        Kommentar


        • #5
          Zitat von dennis81 Beitrag anzeigen
          Meines Wissens nach gibt es so etwas wie Pagination sogar als Smarty Plugin. Weiß jetzt nicht mehr wo, aber googeln kann man ja auch selbst
          Stimmt, das hatte ich auch mal irgendwo benutzt.

          Andere Sache: Ich weiß nicht ob es dir als Beispielcode hilft aber wenn dich eine Lösung interessiert, nur eine maximale Anzahl Seiten-Links anzuzeigen (z.B. 1 2 3 ... 6 7 8 ... 20 21 22), da hatte ich für das Gästebuch-Quiz etwas implementiert:

          http://github.com/schmengler/SlimGb/...Pagination.php
          (siehe createPages ff.)

          Die Klasse kann als objektorientierte Lösung auch mit relativ wenig Aufwand entkoppelt und mit Smarty eingesetzt werden.
          [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
          [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

          Kommentar


          • #6
            Zitat von fab Beitrag anzeigen
            Stimmt, das hatte ich auch mal irgendwo benutzt.

            Andere Sache: Ich weiß nicht ob es dir als Beispielcode hilft aber wenn dich eine Lösung interessiert, nur eine maximale Anzahl Seiten-Links anzuzeigen (z.B. 1 2 3 ... 6 7 8 ... 20 21 22), da hatte ich für das Gästebuch-Quiz etwas implementiert:

            http://github.com/schmengler/SlimGb/...Pagination.php
            (siehe createPages ff.)

            Die Klasse kann als objektorientierte Lösung auch mit relativ wenig Aufwand entkoppelt und mit Smarty eingesetzt werden.
            ich weiß nur nicht wie ich das mit der while schleife bzw der foreach schleige von smarty.. einbinden soll.. ich möchte pro seite, nur 5 news anzeigen lassen dann per page link die nächsten 5 news
            What You See Is What You Get“

            Kommentar


            • #7
              Da du ja bestimmt nicht ALLE Daten auslesen und nur durch die Ausgabe (hier Smarty) beschneiden willst, müsstest du dir zum einen die Gesamtzahl der Daten auslesen (select count...) und den entsprechenden Bereich (LIMIT) für die aktuelle Seite (bei Start eben LIMIT 0,5). Smarty bietet dir für eine for-Schleife glaube ich das Section Konstrukt an. Da musst du noch mal einen Blick ins Handbuch werfen. Dann "einfach" ein Loop drüber laufen lassen mit entsprechenden Parametern. btw: Du kannst via {$smarty.get.parameter} auch auf $_GET Variablen zugreifen. Hier z.B. für current möglich.

              Hättest du mal im Netz gesucht, wärest du evtl. auf diese Seite gestoßen:
              http://smarty.incutio.com/?page=SmartyPlugins

              Dort z.B. Punkt 3 http://smarty.incutio.com/?page=SmartyPaginate
              [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
              [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

              Kommentar


              • #8
                Zitat von dennis81 Beitrag anzeigen
                Da du ja bestimmt nicht ALLE Daten auslesen und nur durch die Ausgabe (hier Smarty) beschneiden willst, müsstest du dir zum einen die Gesamtzahl der Daten auslesen (select count...) und den entsprechenden Bereich (LIMIT) für die aktuelle Seite (bei Start eben LIMIT 0,5). Smarty bietet dir für eine for-Schleife glaube ich das Section Konstrukt an. Da musst du noch mal einen Blick ins Handbuch werfen. Dann "einfach" ein Loop drüber laufen lassen mit entsprechenden Parametern. btw: Du kannst via {$smarty.get.parameter} auch auf $_GET Variablen zugreifen. Hier z.B. für current möglich.

                Hättest du mal im Netz gesucht, wärest du evtl. auf diese Seite gestoßen:
                http://smarty.incutio.com/?page=SmartyPlugins

                Dort z.B. Punkt 3 http://smarty.incutio.com/?page=SmartyPaginate

                Ich habs versucht bekomme es aber nicht eingebunden.. kann mir vielleicht jemand mit meinem code ein beispiel schreiben?

                hänge daran jetzt schon, 2 stunden
                What You See Is What You Get“

                Kommentar


                • #9
                  habs jetzt mal so probiert aber auch das funktioniert nicht

                  news.php

                  PHP-Code:
                      $offset 0;
                     
                  $current_page 1;
                     
                  $limit 5
                      

                  if( isset( $_GET['page'] ) && $_GET['page'] != ) {
                        
                  $current_page $_GET['page'];
                        
                  $offset = ( $_GET['page'] -) * $limit;
                     } 

                  $count mysql_num_rowsmysql_query"SELECT news_id FROM news" ) );
                     
                  $pages ceil$count $limit);

                     for( 
                  $i 0$i $pages$i++ ) {
                        
                  $loop[$i] = $i 1;
                     } 
                  $news = array();
                  $news_show_sql mysql_query("SELECT id, nick, news_id, titel, poster_id, Datum FROM news JOIN user ON poster_id=id ORDER BY Datum DESC LIMIT " $offset ", " $limit "");
                  while(
                  $news_me mysql_fetch_assoc($news_show_sql))
                  {
                      
                  $news[] = array(
                        
                  'newsid' => $news_me['news_id'],
                        
                  'nick' => $news_me['nick'],
                        
                  'title' => $news_me['titel']);
                  }
                  echo 
                  mysql_error();
                   
                  $tpl->assign( array(

                       

                        
                  // table output
                        
                  'show_me_news' => $news,

                        
                  // page tabbing
                        
                  'current_page' => $current_page,
                        
                  'loop' => $loop

                     
                  ) ); 
                      
                      
                      
                  $tpl->assign("content"$tpl->fetch("news_show.tpl")); 
                  news_show.tpl

                  PHP-Code:
                  <table width="490" border="0" cellpadding="0" cellspacing="0">
                    <
                  tr>
                      <
                  td width="6" align="left" bgcolor="#CCCCCE" class="navi_font"></td>
                      <
                  td width="14" align="left" class="navi_font"><img src="http://www.php.de/images/admin_images/icons/arrow.gif" width="14" height="20"></td>
                      <
                  td width="36" align="left" bgcolor="#CCCCCE" class="navi_font">News</td>
                      <
                  td width="14" align="left" class="navi_font"><img src="http://www.php.de/images/admin_images/icons/arrow.gif" width="14" height="20"></td>
                      <
                  td width="366" align="left" bgcolor="#CCCCCE" class="navi_font">Liste</td>
                      <
                  td width="54" align="left" bgcolor="#CCCCCE" class="navi_font"></td>
                    </
                  tr>
                  </
                  table>
                  <
                  table width="490" border="0" cellspacing="0" cellpadding="0">
                    <
                  tr>
                      <
                  td height="2" bgcolor="#232323"></td>
                    </
                  tr>
                  </
                  table>
                  <
                  table width="490" border="0" cellpadding="0" cellspacing="0" bgcolor="#FC3729">
                    <
                  tr>
                      <
                  td width="16">&nbsp;</td>
                      <
                  td width="78" align="left" valign="middle" class="navi_font">News ID </td>
                      <
                  td width="52" align="left" valign="middle" class="navi_font">Username</td>
                      <
                  td width="10" align="left" valign="middle" class="navi_font">&nbsp;</td>
                      <
                  td width="235" align="left" valign="middle" class="navi_font">Titel</td>
                      <
                  td width="99" align="left" valign="middle" class="navi_font">Optionen</td>
                    </
                  tr>
                  </
                  table>
                  <
                  table width="490" border="0" cellspacing="0" cellpadding="0">
                    <
                  tr>
                      <
                  td height="2" bgcolor="#232323"></td>
                    </
                  tr>
                  </
                  table>
                  <
                  table width="490" border="0" cellspacing="0" cellpadding="0">
                    <
                  tr>
                  {
                  $results}
                    {foreach 
                  item=array from=$show_me_news}
                   
                      <
                  td><table width="490" height="40" border="0" cellpadding="0" cellspacing="0">

                        <
                  tr bgcolor="{cycle values="#DDDDDD,#CCCCCE"}">
                          
                  <td width="2" align="left" valign="middle" class="navi_info">&nbsp;</td>
                          <
                  td width="25" align="left" valign="middle" class="navi_info">&nbsp;</td>
                          <
                  td width="42" align="left" valign="middle" class="navi_info">{$array.newsid}</td>
                          <
                  td width="1" align="left" valign="top" bgcolor="#232323"></td>
                          <
                  td width="71" align="center" valign="middle" class="navi_info">{$array.nick}</td>
                          <
                  td width="1" align="left" valign="top" bgcolor="#232323"></td>
                          <
                  td width="210" align="left" valign="middle" class="navi_info">&nbsp;{$array.title}</td>
                          <
                  td width="1" align="left" valign="top" bgcolor="#232323"></td>
                          <
                  td width="30" align="center" valign="middle"><img src="http://www.php.de/images/admin_images/icons/anzeigen.png" width="24" height="24"></td>
                          <
                  td width="30" align="center" valign="middle"><img src="http://www.php.de/images/admin_images/icons/bearbeiten.png" width="24" height="24"></td>
                          <
                  td width="31" align="center" valign="middle"><img src="http://www.php.de/images/admin_images/icons/loeschen.png" width="24" height="24"></td>
                        </
                  tr>

                      </
                  table>
                        <
                  table width="490" border="0" cellspacing="0" cellpadding="0">
                          <
                  tr>
                            <
                  td height="2" bgcolor="#232323"></td>
                          </
                  tr>
                        </
                  table></td>
                    </
                  tr>
                    
                    {/foreach}
                  </
                  table>
                  <
                  table width="490" border="0" cellspacing="0" cellpadding="0">
                    <
                  tr>
                      <
                  td align="right" valign="middle"> {foreach item=pages from=$loop}
                                          {if 
                  $pages == $current_page}

                                             <
                  strong>{$pages}</strong>
                                          {else}

                                             <
                  a href="index.php?maySYS=logfiles/logfiles&amp;page={$pages}">{$pages}</a>
                                          {/if}
                                       {/foreach} </
                  td>
                    </
                  tr>
                  </
                  table>
                  <
                  table width="490" border="0" cellpadding="0" cellspacing="0" bordercolor="#232323">
                    <
                  tr>
                      <
                  td height="5" bgcolor="#232323"></td>
                    </
                  tr>
                  </
                  table
                  What You See Is What You Get“

                  Kommentar


                  • #10
                    funktioniert habs hinbekommen danke für eure hilfe
                    What You See Is What You Get“

                    Kommentar

                    Lädt...
                    X