Autor Zpráva
Jcas
Profil
Pomůžete mi prosím zapracovat stránkování do kódu?
Základ kódu mám od tud. (trochu jsem ho upravil na procházení pole.)
Nejčastější potíže s PHP (FAQ) » Výpis výsledků z databáze (nebo z jiného zdroje) do tabulky o více sloupcích

A nyní se do toho snažím zapracovat stránkování po 12-ti obr. Přidal jsem ROWS, $y a teď chci nějak vytvořit podmínku(v ukázce je zatím nesmyslne $i==$y), která by omezila zobrazení na 1-12, 13-24, 24-36 atd. (Trochu nevýhoda, že pole nemá indexovaný $key).

        $html = '<div id="fotky">';
         define ("COLS", 3); $i=0;         // počet sloupců
         define ("ROWS", 4);                 // max počet řádků - max 12 obr na stránku
         $y = !isset($_GET['str']) ? 0 : intval($_GET['str']) * ROWS; 
         $html .= "<table>\n";   
        foreach ($obr as $key => $pole) {
            $file = $subdir.'/'.$key.'.'$pole['soubor'];
            if($y == $i) {
                  if ($i % COLS == 0) $html .= "<tr>";
                  $html .= '<td><img src="'.$file.'" alt="'.$pole['jmeno'].'"></td><td>
                  <a href="index.php?page=foto&stav=smazat&id_foto='.$key.'" onclick="return confirm(\'Opravdu chcete tuto fotku smazat ???\')">
                        <img src="./../../spolecne_soubory/icony/delete.png" width="16" height="16" alt="Smazat" title="Smazat">
                    </a><br>
                    <a href="index.php?page=inzerce&stav=upravit&id_inz='.$key.'">
                        <img src="./../../spolecne_soubory/icony/setting.png" width="16" height="16" alt="Upravit" title="Upravit">
                    </a></td>';
                  if ($i % COLS == COLS - 1) { $html .= "</tr>\n"; $y++; }
                  $i++;
            }
        }
        if ($i % COLS != 0) {
            while ($i++ % COLS != 0) { $html .= "<td>&nbsp;</td>"; }
              $html .= "</tr>\n";
        }
        $html .= "</table>\n";
Jcas
Profil
Při představě, že nad tím přemýšlím celý den je mi stydno, jak mi to nemyslí. Na druhou stranu to ale asi nebude tak zlé, když jsem to řešení našel. Myslím, že toto by mohlo fungovat.

 define ("MAX_P", 12);             //max 12 obr na stránku
 $y = !isset($_GET['str']) ? 0 : intval($_GET['str']) * MAX_P; 
 if( $i >= $y && $i < ($y+MAX_P) ) //a ta podmínka

$html .= "<table>\n";
foreach ($obr as $key => $pole) {
    $file = $subdir.'/'.$key.'.'$pole['soubor'];
    if( $i >= $y && $i < ($y+MAX_P) ) {
          if ($i % COLS == 0) $html .= "<tr>";
          $html .= '<td><img src="'.$file.'" alt="'.$pole['jmeno'].'"></td><td>
          <a href="index.php?page=foto&stav=smazat&id_foto='.$key.'" onclick="return confirm(\'Opravdu chcete tuto fotku smazat ???\')">
              <img src="./../../spolecne_soubory/icony/delete.png" width="16" height="16" alt="Smazat" title="Smazat">
        </a><br>
        <a href="index.php?page=inzerce&stav=upravit&id_inz='.$key.'">
                <img src="./../../spolecne_soubory/icony/setting.png" width="16" height="16" alt="Upravit" title="Upravit">
        </a></td>';
          if ($i % COLS == COLS - 1) { $html .= "</tr>\n"; }
          $i++;
    }
}
if ($i % COLS != 0) {
       while ($i++ % COLS != 0) { $html .= "<td>&nbsp;</td>"; }
      $html .= "</tr>\n";
}
$html .= "</table>\n";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: