Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Ogrqniczona ilość wyświetlanych prodoktów - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Ogrqniczona ilość wyświetlanych prodoktów (/thread-ogrqniczona-ilo%C5%9Bc-wy%C5%9Bwietlanych-prodoktow)



Ogrqniczona ilość wyświetlanych prodoktów - system - 13-11-2012

Witam
Przygodę z PHP i bazami danych dopiero zaczynam.Mam pewien problem ale moze najpierw przedstawię kod:
Kod PHP:
<?php 
                    $result 
mysql_query("SELECT *FROM `produkty` WHERE tag1='$tag1' LIMIT 0,10");
                    while (
$row mysql_fetch_array($resultMYSQL_NUM)) {
                        echo 
'<div class="obiekt">
                                <div class="fot">
                                <img src="'
,$row[4],'"/></div>
                                <div class="opis"><h4>'
,$row[3],'</h4></div>';
                        echo 
'</div>';
                    }
                    
mysql_free_result($result);
                    
?>

Kod:
Kolumna    Typ    Null    Domyślnie    Komentarze
ID    smallint(5)    Nie          
tag1    varchar(32)    Tak     NULL     
tag2    varchar(32)    Tak     NULL     
nazwa    text    Tak     NULL     
mzdjecie    text    Nie          
zdjecie    text    Nie          
Indeksy:

Nazwa klucza    Typ    Jednoznaczny    Spakowany    Kolumna    Moc    Metoda porównywania napisów    Null    Komentarz
PRIMARY    BTREE    Tak    Nie    ID    204    A

Chodzi mi zatem o to aby na stronie wyświetlała sie ograniczona ilość produktów np 30 gdy jest ich więcej Wyświetlany jest link do następnej strony.Da się to zrobić z tym kodem?Czy trzeba go przebudować?
Pozdrawiam i czekam na odpowiedź


RE: Ogrqniczona ilość wyświetlanych prodoktów - camelrafal - 13-11-2012

potrzebujesz systemu paginacji

przekazuj parametr w adresie np index.php?strona=2 i na podstawie tego parametru wyświetlaj np 10 pozycji począwszy od ($_GET['strona']-1)*10

$od_ktorej_pozycji=($_GET['strona']-1)*10;

... LIMIT $od_ktorej_pozycji,10

link Dalej to będzie aktualna strona+1 czyli $_GET['strona']+1 a wstecz -1

to tak w dużym uproszczeniu i bez żadnych zabezpieczeń


RE: Ogrqniczona ilość wyświetlanych prodoktów - system - 14-11-2012

Wielkie dzięki poradziłem już sobie z tym.Mam jeszcze jedno pytanie.Chciałbym aby sprawdzało mi ile jest wszystkich obiektów do wyświetlenia żebym mógł dodać nawigacja w stylu
|1|2|3|4 następna
Nie wiem jakie zapytanie w MYSQL wykorzystać.


RE: Ogrqniczona ilość wyświetlanych prodoktów - Marys - 14-11-2012

select count(*) from tabela; jeszcze chyba mozna tak select count(*) as ilosc from tabela;


RE: Ogrqniczona ilość wyświetlanych prodoktów - system - 16-11-2012

Poradziłem sobie jakoś ale z racji ze jestem początkujący raczej cieszyłem się z tego ze działa nie jak działa.Obawiam sie ze przy dużej ilości rekordów w bazie może byc problem z wydajnością. Macie jakies pomysly na przyspieszenie tego?

Kod PHP:
<?php 
        
($_GET['strona']-1)*20;
        
$od_ktorej_pozycji=($_GET['strona']-1)*20;
                    
$il mysql_query("SELECT *FROM `produkty` WHERE tag1='$tag1'");
                    
$result mysql_query("SELECT *FROM `produkty` WHERE tag1='$tag1' LIMIT $od_ktorej_pozycji,20");
                    
$ilosc mysql_num_rows($il);
                    
$ilosc ceil($ilosc/20);
                    while (
$row mysql_fetch_array($resultMYSQL_NUM)) {
                        echo 
'<div class="obiekt">
                                <div class="fot">
                                <img src="'
,$row[4],'"/></div>
                                <div class="opis"><h4>'
,$row[3],'</h4></div>';
                        echo 
'</div>';
                    }
                    
mysql_free_result($result);
                    for( 
$x 1$x <= $ilosc$x++ )
                    echo 
'
                    <div class="ilonav">
                    <h4>|<a href="produkty.php?tag1='
,$tag1,'&tag2=',$tag2,'&strona=',$x,'">',$x,'</a></h4>
                    </div>
                    '
;
                    
?>