Jak przerobic skrypt dzielący na podstrony

Jak przerobic skrypt bo ładuje zdjęcia te same w podstronę,jak zmienić żeby ładowalo nowe zdjęcia w podstronę

<?php require 'db.php';

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria ORDER BY Rand() LIMIT 12"; $limit = (isset($_GET['go']))?$_GET['go']*12:0;

        $back = '';

        if($limit>=12)

        $back = 'Poprzednia';

        $next = 'Następna'; 

$result = mysql_query($query) or die(mysql_error($mysqli));

if ($result) {

    echo "
  • "; while ($row = mysql_fetch_object($result)) { $nazwa = $row->nazwa_zdjecie; $opis = $row->opis_zdjecie; $link = $row->link_zdjecie; $id = $row->id_zdjecie; echo "

$nazwa

$opis $title \n"; } echo $back.’ | '.$next; "
"; } ? [/code]

Trochę jest tu namieszane ale możesz spróbować dodać w zapytaniu coś takiego

WHERE id_zdjecie>=$limit

Jeżeli id_zdjecie w twojej tabeli jest liczbowe i idzie po kolei tzn 1, 2, 3, … bez żadnych przerw to powinno działać

próbowałem dodac do zapytania,coś jest zle bo niepojawia się podstrona,

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie WHERE id_zdjecie>=$limit FROM galeria ORDER BY Rand() LIMIT 12

Natomiast zmieniłem zapytanie i segreguje zdjecia,ale nie dodaje następnego limitu na następna podstronę

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria ORDER BY id_zdjecie ASC LIMIT 12";

Jeśli dodam WHERE id_zdjecie>=$limit nie wyświetla się podstrona,jak poprawnie zapisać zapytanie!

Jeżeli id_zdjecie w twojej tabeli jest liczbowe i idzie po kolei tzn 1, 2, 3, … bez żadnych przerw to powinno działać

No to najlepiej zrób tak:

dajesz 2 zmienne $od i $do

$od= $limit - 12

$do= $limit

wtedy zapytanie powinno wyglądać tak:

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria ORDER BY id_zdjecie ASC LIMIT $od, $do";

To jest tylko idea jak to zrobić. Wiadomo że trzeba dodać jeszcze dodatkowe zabezpieczenia i warunki ale ja tak kiedyś robiłem i działało najlepiej

dodałem zmienną i zmieniłem zapytanie,niedziała podstrona się nie wyświetla,

<?php require 'db.php';

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria ORDER BY id_zdjecie ASC LIMIT $od, $do"; $limit = (isset($_GET['plik']))?$_GET['plik']*12:0; $od= $limit - 12;

$do= $limit ; $back = '';

  if($limit>=12)                                                                                                                                                                                                                                                                                                                                                                                                                    

     $back = '< Poprzednia';

    $next = 'Następna >'; 

$result = mysql_query($query) or die(mysql_error($mysqli));

if ($result) {

        echo "
  • "; while ($row = mysql_fetch_object($result)) { $nazwa = $row->nazwa_zdjecie; $opis = $row->opis_zdjecie; $link = $row->link_zdjecie; $id = $row->id_zdjecie; echo "

$nazwa

$opis $title \n"; } echo "
"; } echo $back.’ | '.$next; ? [/code]

jestem nowicjuszem w tym temacie,jeśli możesz to pomóż

require 'db.php';

$limit=12;

$limit = (isset($_GET['plik']))?$_GET['plik']*12:0; $od= $limit - 12;

$do= $limit ;  

$query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria ORDER BY id_zdjecie ASC LIMIT $od, $do";

Zmienne muszą być ustalone przed zapytaniem.Zobacz może to bedzie działać.

zmieniłem tak,podstrona się wyświetla,ale jest problem z tym,że po naciśnięciu na następny przechodzi na pustą podstronę i naciśnięciu na poprzednia nie wraca z do zdjęć

<?php require 'db.php'; $limit = (isset($_GET['go']))?$_GET['go']*12:0; $back = ''; if($limit>=12)                                                                                                                                                                                                                                         

$back = '< Poprzednia';

    $next = 'Następna >'; $query = "SELECT id_zdjecie, nazwa_zdjecie, opis_zdjecie, link_zdjecie FROM galeria WHERE id_zdjecie>=$limit LIMIT 12";    

$result = mysql_query($query) or die(mysql_error($mysqli));

if ($result) {

        echo "
  • "; while ($row = mysql_fetch_object($result)) { $nazwa = $row->nazwa_zdjecie; $opis = $row->opis_zdjecie; $link = $row->link_zdjecie; $id = $row->id_zdjecie; echo "

$nazwa

$opis $title \n"; } echo "
"; } echo $back.’ | '.$next; ? [/code]

Pewnie dlatego że jak wejdziesz na stronę zmienna go = 0 a więc id_zdjecie>=0 zdjęcia o id większym od 0 (1, 2, 3, itd) są wyświetlane a po kliknięciu w link Następna $go=0+12=12

$limit = (isset($_GET['go']))?$_GET['go']*12:0;

12*12=144 tylu zdjęć chyba nie masz w bazie więc nic ci się nie wyświetla. Poprzednia 144-12=132

$limit = (isset($_GET['go']))?$_GET['go']*12:0;

(gdyby $go miały by mieć wartości dla kolejnych podstron 1, 2, 3 to by działało ale skoro w $next i $back jest +12 i -12 to wszystko się ci sypie) 132*12=1584 Tylu to już na pewno nie masz w bazie Tak to rozkminiłem a więc zapisz to tak i powinno działać :wink:

$limit = (isset($_GET['go']))?$_GET['go']:0;

PS. Jeszcze nie wiem po co to

if($limit>=12)

skoro to nic nie zmienia.

demistrakos dzięki już jestem blisko :smiley: zaczyna działać, przepisuje 12 zdjęcie na następną podstronę,ale to szczegółhttp://www.wojciechgaleria.friko.plzrobiłem jeszce tak:

$limit = (isset($_GET['go']))?$_GET['go']:1;

czy będzie poprawnie

Jest ok o ile pierwsze zdjęcie ma id 1.

W razie jeszcze jakiś problemów pisz :wink:

PS. W zapytaniu zmień LIMIT 12 na LIMIT 13 wtedy będzie ok :wink:

demistrakos pomóż potrzebuje zmienić,aby linki podstron w iframe byly w php czyli metodą np: zmiennej get

Gry na przegl.

[/code]

Nie wiem dokładnie o co ci chodzi dlatego napisze na wszelki wypadek to co wiem :wink:

Przykładowy kod ramki

Twoja przeglądarka nie obsługuje ramek[/code]


a więc aby link odwoływał się do tej ramki należy nadać mu parametr target z nazwą ramki.

[code]Gry na przegl.

Nie zrozumieliśmy się linki otwierają się w iframe(ramki),ale chcę to zmienić i zrobić w php np: na zmiennych.P$.jestem początkujący w php

<?php 

       $foot = $_GET['go'];

      if(!empty($foot)) {

         if(is_file("$foot.php")) include "$foot.php";

         } 

      echo "$foot";

      ?>

Aha :slight_smile: Już rozumiem a wiec najlepiej jak zrobisz tak:

$foot = $_GET['go'];

switch ($foot) {

case "home" :

$strona="home.php";

break;

case "news":

$strona="news.php";

break;

case "galeria":

$strona="galeria.php";

break;

default:

$strona="home.php";

}

include $strona;

Jak tak zrobisz to będzie działać. Bo tak jak ty to zrobiłeś to ktoś może sobie otworzyć każdy plik z twojej strony.

Czegoś nie rozumiesz ? Zobacz http://php.net/manual/en/control-structures.switch.php a jak dalej nie rozumiesz to napisz :wink:

zrobiłem tak i otwiera się w nowym oknie

Rejestracja
Logowanie
Forum
Dodaj tapety
tapety muzyczne[/code]

[code]<?php $foot = $_GET[‘id’]; switch ($strona) { case “rejestracja” : $strona=“rejestracja.php”; break; case “logowanie”: $strona=“logowanie.php”; break; case “zdjecia”: $strona=“zdjecia.php”; break; default: $strona=“fotki.php”; } include $strona; ?>

Ten skrypt co ci podałem dajesz w miejsce gdzie ma być wyświetlona treść i w tedy link powinien wyglądać tak

Rejestracja
Logowanie

[/code]

oczywiście jeżeli wkleiłeś kod do pliku index.php

Pliki logowanie.php, fotki.php, zdjecia.php itd. mają zawierać tylko dany skrypt np. do logowania i wtedy będzie on wstawiany tak jak by do szablonu a nie tak jak u ciebie każdy plik zawiera całą stronę.

a jak można wczytać całą podstronę w php,bo ja to robię ifrme

Dokładnie w ten sam sposób :wink: ale to niema sensu. Jak twoja strona będzie miała 100 podstron to żeby dodać nową pozycje do menu będzie ci się chciało edytować każdy plik z osobna ?

Najlepiej zrobić szablon w 1 pliku ( ewentualnie podzielony na moduły w różnych plikach które są includowane do 1) i treść strony wstawianą dynamicznie bo po to jest przecież PHP.

tylko,że niewiem jak,jestem trochę zielony w php! !!

A więc tak

  1. Ogarnij layout bo cały ci się rozjeżdża i wywal te reklamy

2.Stwórz nowy plik index.php w nim wklejasz cały kod kod strony tylko wywalasz

[/code]


3. W miejsce tego iframe-a co go usunąłeś wstawiasz ten kod

[code]<?php $id= $_GET[‘id’]; switch ($id) { case “rejestracja” : $strona=“rejestracja.php”; break; case “logowanie”: $strona=“logowanie.php”; break; case “zdjecia”: $strona=“zdjecia.php”; break; case “fotki”: $strona=“fotki.php”; break; default: $strona=“logowanie.php”; } include $strona; ?>

  1. Tworzysz pliki fotki.php, logowanie.php itd a w nich tylko treść która ma być wstawiona w miejsce tamtego iframe-a

  2. Dalej mi się nie chce pisać poczytaj trochę kursów, tutoraiali.

  3. Dzięki zdobytej wiedzy twórz najlepsze strony na świecie

Musisz nauczyć się czegoś nauczyć i dopiero tworzyć.

Bill Gates się nie op*****lał :stuck_out_tongue: