Autor Zpráva
bach1
Profil *
Dobrý den, potřebuji jednoduché stránkování při výpisu, první zobrazení je OK, avšak pokud chci stránku 2 nebo cokoliv jiného, načte se mi nějakých 27 záznamů bez ohledu na to na co kliknui, zda 2.3.4. konec , je to pořád stejné a naspod mi stránkování zmizí.
Může nějaký profík prosím zkontrolovat co mi uniklo? děkuji
<?php
define ("ROWS", 18);

    if (isset($_GET["chatka"])) {
        if ($_GET["chatka"] == "vse") {
            $chatka = "";
            $nadpis = "Přehled všech termínů";
        }
        else {
            $chatka = $_GET["chatka"];

            if ($chatka>6) {
                $nadpis = "Chatka ".($chatka-6);
            }
            else {
                $nadpis = "Byt ".$chatka;
            }
            $razeni = " WHERE chatka='".$chatka."'";
        }
    }
    else {
        $chatka = "";
        $nadpis = "Přehled všech termínů";
    }
    echo '
    <div class="nadpis">'.$nadpis.'</div>
    <br>';
    if(IsSet($_GET["status"])) {
        $status = $_GET["status"];
        if ($status =="ulozeno") {
            echo '<div class="chyba">Změny uloženy.</div><br>';
        }
    }
    echo '
    <div class=okraje>';
    if ($chatka!= "") {
        echo '<img class="ikony" src="images/new.png" alt="Přidat záznam">&nbsp;<a href="index.php?stranka=pridat_zaznam&chatka='.$chatka.'" title="Přidat záznam">Přidat záznam</a><br><br>';
    }
    echo '<table class="tabulka">
            <tr>
                <td class="tabulka_zahlavi">Poř.</td>
                <td class="tabulka_zahlavi">Byt</td>
                <td class="tabulka_zahlavi">Dat.Od</td>
                <td class="tabulka_zahlavi">Dat.Do</td>
                <td class="tabulka_zahlavi">Č.zak</td>
                <td class="tabulka_zahlavi">Příjmení</td>
                <td class="tabulka_zahlavi">Jméno</td>
                <td class="tabulka_zahlavi">Email</td>
                <td class="tabulka_zahlavi">Poz.k zákazníkovi</td>
            </tr>';

            //$vysledek_sql = MySQL_Query("SELECT COUNT(*) AS id FROM rezervace".$razeni." ORDER BY od ASC");
            $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM rezervace".$razeni." ORDER BY od ASC"), 0);//zjištění počtu záznamů
            $pocetstran = (int)(($pocet/ROWS)); // vypocteme pocet stran
                if ($pocet % ROWS != 0) $pocetstran++; // korekce poctu stran

                if (isset($_GET['page'])) $page = (int)$_GET['page']; else $page = 0;
                if ($page < 1) $page = 1;
                if ($page > $pocetstran) $page = $pocetstran - 1;
            $start = ROWS * ($page - 1);

            $dotaz = MySQL_Query("SELECT id, chatka, zakaznik, od, do, poznamka FROM rezervace".$razeni." ORDER BY od ASC LIMIT ".ROWS." OFFSET $start") or die($query_error);
            if(mysql_num_rows($dotaz)==0) {
                echo '<div class="chyba">V databázi nemáte žádné záznamy.</div><br>';
            }
            else {
                $i=1;
                while ($data = MySQL_Fetch_Array($dotaz)){
                    $dotaz1 = MySQL_Query("SELECT id, jmeno, prijmeni, email, poznamka FROM zakaznici WHERE id=".$data["zakaznik"]) or die($query_error);
                    $data1 = MySQL_Fetch_Array($dotaz1);

                    if ($i%2==1) {
                        $pozadi = ' style="background:#E8E8E8;"';
                    }
                    else {
                        $pozadi = "";
                    }
                    echo '
                        <tr'.$pozadi.'>
                            <td>'.$i.'</td>
                            <td>'.$data["chatka"].'</td>
                            <td style="color:darkgreen;" nowrap>'.date('d. m. Y',strtotime($data["od"])).'</td>
                            <td style="color:darkred;" nowrap>'.date('d. m. Y',strtotime($data["do"])).'</td>
                            <td>'.$data1["id"].'</td>
                            <td style="text-align:left;">'.$data1["prijmeni"].'</td>
                            <td style="text-align:left;">'.$data1["jmeno"].'</td>
                            <td style="width:200px;font-size:12px;text-align:left;">'.$data1["email"].'</td>
                            <td style="width:300px;font-size:12px;text-align:left;">'.$data1["poznamka"].'</td>
                        </tr>
                    ';
                $i++;
                }
            }
    echo '
        </table>
    </div>';

    if ($pocet > ROWS) {
  // nutno zobrazit strankovani
  echo "<p>Zobrazeny výsledky ".($start+1)." až ";
  echo ($start + ROWS > $pocet) ? ($pocet):($start + ROWS);
  echo " (celkem $pocet)<br />";

  echo "| ";
  if ($page != 1) echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=1$parametry\">Začátek</a>"; else echo "Začátek";
  echo " | ";
  if ($page != 1) echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".(int)($page - 1)."$parametry\">Předchozí</a> "; else echo "Předchozí ";
  for ($i=1;$i<=$pocetstran;$i++) {
    echo "| ";
    if ($page != $i) echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=$i$parametry\">$i</a> "; else echo "$i ";
  }
  echo "| ";
  if ($page != $pocetstran) echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".(int)($page + 1)."$parametry\">Další</a> |"; else echo "Další |";
  if ($page != $pocetstran) echo "<a href=\"".$_SERVER["PHP_SELF"]."?page=".(int)$pocetstran."$parametry\">Konec</a> | "; else echo "Konec |";
  echo "</p>";

}
?>
Keeehi
Profil
Problém tam takhle nevidím ale podle popsaných symptomů bych se nejdříve podíval na proměnnou $pocet jestli v ní v celém rozsahu scriptu to, co očekáváš.
bestik_63
Profil
Zkus se podívat tady, třeba ti to pomůže :-)

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: