• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP Stronicowanie

Hosting forpsi easy 1 pln
0 głosów
737 wizyt
pytanie zadane 26 maja 2017 w PHP przez sobi94 Początkujący (270 p.)

Witam. Stworzyłem prosty skrypt, którywyświetla mi wyniki z bazy danych w formie tabeli i wyświetla je. Oto on:
 

 <?php 
  require_once "dbconnects.php";
  $polaczenie = @new mysqli($host, $user, $password, $database);
  $rezultat = @$polaczenie->query("SELECT * FROM sprzedawcy ");
  $ile_rekordow = $rezultat->num_rows;
  
  $i=0;
while ($i < $ile_rekordow) {

$wiersz = $rezultat->fetch_assoc();
  $_SESSION['id2'] = $wiersz['id'];
  $_SESSION['b'] = $wiersz['b'];
  $_SESSION['c'] = $wiersz['c'];
  $_SESSION['d'] = $wiersz['d'];
  $_SESSION['e'] = $wiersz['e'];
  $_SESSION['f'] = $wiersz['f'];
  $_SESSION['g'] = $wiersz['g'];
  $_SESSION['h'] = $wiersz['h'];
  $_SESSION['i'] = $wiersz['i'];
  $_SESSION['j'] = $wiersz['j'];
  $_SESSION['k'] = $wiersz['k'];
  $_SESSION['l'] = $wiersz['l'];

echo "<table border=5>".  
"<tr>"."<td>".$_SESSION['id2']."</td>"."<td>".$_SESSION['b']."</td>"."<td>".$_SESSION['c']."</td>"."<td>".$_SESSION['d']."</td>"."</td>"."<td>".$_SESSION['e']."</td>"."<td>"."</td>"."<td>".$_SESSION['f']."</td>"."<td>"."</td>"."<td>".$_SESSION['g']."</td>"."<td>"."</td>"."<td>".$_SESSION['h']."</td>"."<td>"."</td>"."<td>".$_SESSION['i']."</td>"."<td>"."</td>"."<td>".$_SESSION['j']."</td>"."<td>"."</td>"."<td>".$_SESSION['k']."</td>"."<td>"."</td>"."<td>".$_SESSION['l']."</td>"."<td>"."</tr>".
"<form action='skrypt.php' method='post'>"."<input type='hidden' name='x' value=".$_SESSION['l'].">"."<input type='hidden' name='xx' value=".$_SESSION['b'].">"."<input type='submit' value='Wyślij' class='btn btn-primary' role='button'>"."</form>".
"</table>";

$i++;
}
?>

Wiem, nie wygląda to estetycznie, ale na ten moment to nie jest ważne. Chcę by zrobić do tego stronicowanie z nawigacją.
Zliczyłem wyniki i zapisałem je:
 

$rezultat2 = @$polaczenie->query("SELECT COUNT(*) FROM sprzedawcy ");
$ilosc_wynikow = mysql_fetch_row($rezultat2);

Co mam zrobić dalej, by je wyświetlał np. po 5 na stronę i wytworzył nawigację?

1
komentarz 26 maja 2017 przez efiku Szeryf (75,160 p.)
1. Przestań kopiować z cudzych skryptów to się czegoś nauczysz.

Po co sobie ukrywasz błędy? Nie chwila... ty nawet nie wiesz po co użyłeś @ ;)

Przejdź na PDO i poczytaj jak za pomocą niego zrobić paginację.

"PDO pagination PHP" > 2013r.
komentarz 27 maja 2017 przez sobi94 Początkujący (270 p.)

Dzięki wielkie, wszystko działa, ale możesz mi wytłumaczyć, jak przesłać zmienne z pętli w klasie do zwykłego pliku php? Bo stworzenie formularza i wpisanie tych zmiennych nie zadziała. Chodzi mi o dokładnie o tę klasę:
 

<?php

class paginate
{
     private $db;
 
     function __construct($DB_con)
     {
         $this->db = $DB_con;
     }
 
     public function dataview($query)
     {
         $stmt = $this->db->prepare($query);
         $stmt->execute();
 
         if($stmt->rowCount()>0)
         {
                while($row=$stmt->fetch(PDO::FETCH_ASSOC))
                {
                   ?>
                   <tr>
                   <td><?php echo $row['tuts_id']; ?></td>
                   <td><?php echo $row['tuts_title']; ?></td>
                   <td><a href="<?php echo $row['tuts_link']; ?>">visit</a></td>
                   </tr>
                   <?php
                }
         }
         else
         {
                ?>
                <tr>
                <td>Nothing here...</td>
                </tr>
                <?php
         }
  
 }
 
 public function paging($query,$records_per_page)
 {
        $starting_position=0;
        if(isset($_GET["page_no"]))
        {
             $starting_position=($_GET["page_no"]-1)*$records_per_page;
        }
        $query2=$query." limit $starting_position,$records_per_page";
        return $query2;
 }
 
 public function paginglink($query,$records_per_page)
 {
  
        $self = $_SERVER['PHP_SELF'];
  
        $stmt = $this->db->prepare($query);
        $stmt->execute();
  
        $total_no_of_records = $stmt->rowCount();
  
        if($total_no_of_records > 0)
        {
            ?><tr><td colspan="3"><?php
            $total_no_of_pages=ceil($total_no_of_records/$records_per_page);
            $current_page=1;
            if(isset($_GET["page_no"]))
            {
               $current_page=$_GET["page_no"];
            }
            if($current_page!=1)
            {
               $previous =$current_page-1;
               echo "<a href='".$self."?page_no=1'>First</a>&nbsp;&nbsp;";
               echo "<a href='".$self."?page_no=".$previous."'>Previous</a>&nbsp;&nbsp;";
            }
            for($i=1;$i<=$total_no_of_pages;$i++)
            {
            if($i==$current_page)
            {
                echo "<strong><a href='".$self."?page_no=".$i."' style='color:red;text-decoration:none'>".$i."</a></strong>&nbsp;&nbsp;";
            }
            else
            {
                echo "<a href='".$self."?page_no=".$i."'>".$i."</a>&nbsp;&nbsp;";
            }
   }
   if($current_page!=$total_no_of_pages)
   {
        $next=$current_page+1;
        echo "<a href='".$self."?page_no=".$next."'>Next</a>&nbsp;&nbsp;";
        echo "<a href='".$self."?page_no=".$total_no_of_pages."'>Last</a>&nbsp;&nbsp;";
   }}}}
   ?></td></tr><?php

A dokładniej ten fragment: 
 

<td><?php echo $row['tuts_id']; ?></td>
                   <td><?php echo $row['tuts_title']; ?></td>
                   <td><a href="<?php echo $row['tuts_link']; ?>">visit</a></td>

Jak przesłać do pliku np. index2.php te zmienne(tuts_title i tuts_link) i je odczytać?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 191 wizyt
pytanie zadane 17 lipca 2017 w PHP przez fred Nowicjusz (140 p.)
0 głosów
1 odpowiedź 122 wizyt
pytanie zadane 26 października 2016 w Sieci komputerowe, internet przez Badiusz Obywatel (1,070 p.)
–1 głos
1 odpowiedź 115 wizyt

92,117 zapytań

140,779 odpowiedzi

317,774 komentarzy

61,436 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1014p. - Łukasz Eckert
  2. 1002p. - Dawid128
  3. 951p. - Mikbac
  4. 943p. - Michal Drewniak
  5. 933p. - rucin93
  6. 926p. - sefirek
  7. 887p. - CC PL
  8. 882p. - Adrian Wieprzkowicz
  9. 869p. - TheLukaszNs
  10. 865p. - Eryk Andrzejewski
  11. 850p. - nidomika
  12. 817p. - Arkadiusz Waluk
  13. 813p. - Henry Saele
  14. 802p. - 13NOONE37
  15. 794p. - the Bielsky
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...