Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]stronicowanie w galerii znów nie działa, na localhoście tak a na serwerze nie
Lejto
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


Mam kod stronicowania w galerii pisałem i pisałem nie działało i nie działało i w końcu zadziałało poprawnie ale nie działa na serwerze, niby takie proste stronicowanie wystarczą znaki mniejszości i równości i działa a ja musiałem się je*@$. sciana.gif sciana.gif
Ale i tak nie działa poprawnie
Kod:
  1. <?php
  2. $id = (int)$_GET['id'];
  3.  $nr = (int)$_GET['nr'];
  4.  $liczba = 2;
  5.  
  6.  $sql = mysql_query("select * from galeria_users where id = '$id'");
  7.  $row = mysql_fetch_array($sql); 
  8.  $numer = $row[numer];
  9.  
  10.  $query = ("select * from galeria_users where numer ='$numer' and dodal = '$row[dodal]'");
  11. $wynik = mysql_query($query) or die(mysql_error());
  12. $num = mysql_num_rows($wynik);
  13. $ile = ceil($num/$liczba);
  14.  
  15. if(!isset($_GET['id'])) $_GET['id'] = 0;
  16. $strona = (int)$_GET['id'];
  17.  
  18.  $sql_2 = mysql_query("select * from uzytkownik where user = '$row[dodal]'");
  19.  $row_2 = mysql_fetch_array($sql_2);
  20.  
  21.  //następne
  22. $q = mysql_query("SELECT `id` FROM `galeria_users` WHERE `id` > '$id' and dodal = '$row[dodal]' order by id asc");
  23. $wiersz = mysql_fetch_array($q);
  24.  
  25. $q1 = mysql_query("SELECT `id` FROM `galeria_users` WHERE `id` < '$id' and dodal = '$row[dodal]' order by id desc");
  26. $wiersz1 = mysql_fetch_array($q1);
  27.  //koniec
  28.  //poprzednie
  29. $zapytaj = mysql_query("select * from uzytkownik where id = '$nr'");
  30. $idk = mysql_fetch_array($zapytaj);
  31.  
  32. $quer = mysql_query("SELECT `id` FROM `galeria_users` WHERE `id` < '$id' and dodal = '$row[dodal]' order by id asc");
  33. $wiersz_2 = mysql_fetch_array($quer);
  34.  //koniec
  35.  
  36. //zapyatnie potrzebne do stronicowania
  37. $queryy = mysql_query("SELECT `id` FROM `galeria_users` WHERE `id` < '$id' and dodal = '$row[dodal]' order by id desc");
  38. $wiersz_3 = mysql_fetch_array($queryy);
  39.  
  40.  
  41. if($_GET['id'] > $wiersz_3[id]) { 
  42. echo('<span id="font"><center>
  43. <a href="foto_zoom.php?foto=pokaz&id='.($wiersz[id]).'=osoba&nr='.$row_2[id].'"><< Poprzednie |</a>');
  44.  }
  45.  
  46. if($_GET['id'] > $wiersz[id]) {
  47.  echo('<span id="font"><center><a href="foto_zoom.php?foto=pokaz&id='.($wiersz1[id]).'=osoba&nr='.$row_2[id].'">| Następne >>> </a></span></center>');
  48. }
  49. ?>

stronicowanie potrzebuje do działania (i to pobiera z bazy) numer następnego lub poprzedniego zdjęcia danego usera i numer id usera którego jest foto

nie ma rozwiązania na ten kod? czy coś źle wyjaśniłem?

Ten post edytował Lejto 15.04.2008, 17:45:23


--------------------
Go to the top of the page
+Quote Post
cbagov
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Dosc zagmatwany ten kod, dla mnie nie do przejscia.

Powiedzialbym, ze utrudniasz sobie zycie mieszajac PHP, SQL, HTML, stosujac stare znaczniki typu <center> dodatkowo wypisujac je poprzez echo, skoro chyba uzywasz CSS bo widze, ze jest jakis <span id="font">.
I jeszcze to dziwne .($wiersz1[id]).
- po co ten nawias ?
Nie widze polecenia LIMIT a za to 4 krotnie powtorzone to samo zapytanie SQL z minimalnymi zmianami, co osobiscie zamienilbym na 1 zapytanie poprzedzone wczesniej wpakowaniem alternatywnych warunkow w zmienne.
No i oczywiscie wyliczenie, na ktorej stronie jestes, czyli ktora strona jest aktualnie aktywna, jaki blok stron jest brany pod uwage wyliczasz, pakujesz w LIMIT, przechowujesz w jakiejs sesyjnej zmiennej no i najlepiej nie uzywaj czystego $_GET w warunkach.. polecam na wszystkie GET i POST zrobic sobie 1 funkcje, ktora pozwoli od razu filtrowac otrzymywane parametry.


Takze podam tu tylko moj schemat, moze cos ci ulatwi, bo analizowac twojego kodu nie mam nerw.;)

Powinienes dazyc do 1 ostatecznego sformulowania zapytania - dla konkretnej operacji - oczywiscie nie jednego dla calego kodu;)


$_sql = "SELECT $_columns FROM [DB_name.table] WHERE $_search_type $_sort_it";


// gdzie {$_search_type} to jakies warunki

$_search_type .=
" (POLE $_is_like '$_word'
OR POLE $_is_like '$_word'
AND POLE!='schowany') OR ... AND ... "; // i co tam potrzeba jeszcze

// gdzie {$_is_like} to wybrany sposob wyszukania/porownania

$_is_like = "LIKE";
// lub
$_is_like = "";

// w koncu {$_sort_it} to ustalenie ilosci i porzadku sortowania

$_sort_it = "ORDER BY [$kolumna] [$ASC|DESC] LIMIT $_lim_start,$_tmp_lim";
// lub
$_sort_it = "";




To ostatnie {$_sort_it} robi wszystko co potrzeba jesli przedtem kazdy warunek wyznaczysz a potem tylko skleisz w jedno zapytanie SQL

To schemat z mojego kodu wyciety, nie ma co kopiowac bo na pewno nie zadziala w tej formie, mam nadzieje, ze na cos ci sie przyda.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:13