Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Siłowanie ze stronicowaniem
Forum PHP.pl > Forum > Przedszkole
Ravik
Witam,

Siedzę już cały dzień nad tym głupkowatym skryptem, czytałem już kilkanaście artykułów o stronicowaniu, korzystałem z pagera napisanego przez nospora i dalej nic. Dlatego proszę was o pomoc. Skrypt teraz wyświetla błąd:

"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/ravsoft/domains/xxx/public_html/galeria.php on line 75"

Kiedy usunę z drugiego zapytania do mysqla (tam gdzie wybiera z limitem) zmienną $start to wyświetla obrazki, ale wtedy nie będzie działało stronicowanie

Oto co napisałem:

  1. <?php
  2.  
  3. require_once ("config.php");
  4.  
  5. $category = addslashes($_GET['p']);
  6. $na_stronie=15;
  7.  
  8. $result_ilosc = mysql_query("SELECT id FROM zdjecia WHERE category='$category'");
  9. $ilosc = mysql_num_rows($result_ilosc); // wszystko
  10.  
  11. if($ilosc>$na_stronie) {
  12. for($i=0; $i<ceil($ilosc/$na_stronie); $i++)
  13. print '<a href="galeria.php?start='.($i*$na_stronie).'">'.($i+1).'</a> | ';
  14. }
  15. $start = $_GET['start'];
  16. $result = mysql_query("SELECT id FROM zdjecia WHERE category='$category' LIMIT $start, $na_stronie"); // z limitem
  17.  
  18. if (mysql_num_rows($result) != 0) {
  19.  
  20. echo "<table border=\"0\">";
  21. echo '<tr>';
  22.  
  23. $breaker = 0;
  24.  
  25. while ($row = mysql_fetch_array($result)) {
  26. $adres = "showimage.php?id=$row[id]";
  27. echo '<td align=center>';
  28. echo "<a class=\"miniaturki\" href=showimage.php?id=$row[id]>";
  29. echo "<img class=\"imga\" src=\"$adres\" /></a>";
  30. echo "</td>";
  31. $breaker++;
  32.  
  33. if ($breaker == $line_break) {
  34. echo "</tr><tr>";
  35. $breaker = 0;
  36. }
  37. }
  38. }
  39. echo "</tr>";
  40. echo "</table>";
  41.  
  42.  
  43. ?>


Będę bardzo wdzięczny za pomoc, gdyż już od rana nad tym siedzę.

Pozdrawiam,
Ravik
Pilsener
1. Rób echo 'kod html', bo tak jest czytelniej, szybciej, poprawniej i nie musisz stawiać ukośników przed "
2. Podstawy pracy z bazą danych:
  1. if(mysql_query($zapytanie_do_bazy)){
  2. echo 'sukces';
  3. }else{
  4. echo 'porażka: '.mysql_error();
  5. }

Masz po prostu niepoprawne zapytanie do bazy. Sprawdzaj zawsze, czy zapytanie wykonało się poprawnie i odbieraj ewentualne błędy to unikniesz podobnych problemów.
Ravik
Które zapytanie jest niepoprawne questionmark.gif I gdzie tkwi błąd bo nie jestem w stanie tego zobaczyć.

Jest ktoś w stanie mi pomóc ?
thek
Rzeczy na jakie musisz zwrócić uwagę...
Co masz w zmiennej $start gdy brak zmiennej $_GET['start']?
Co Ci sypie baza jako błąd? Po jaką chol... zwracasz wszystkie zdjęcia z kategorii skoro chodzi Ci tylko o ilość? Czy wyrzucasz z półki wszystkie książki na podłogę by je policzyć? Nie po to jest count by je olewać smile.gif
Ravik
No dobra wybrałem w ten sposób:

  1. $result_ilosc = mysql_query("SELECT id FROM zdjecia WHERE category='$category'");
  2. $ilosc = count($result_ilosc);


W drugim zapytaniu też dawało ten błąd więc też potraktowałem to coutem:

  1. if (cout($result) != 0) {


dałem jeszcze wcześniej:

  1. if(!isset($_GET['start'])) {
  2. $start = 1;
  3. } else {
  4. $start = $_GET['start'];
  5. }


I teraz wyświetla mi białą stronę, kiedy do pliku dodaję zmienną ?start=1 też nic się nie dzieje.
Proszę o wyrozumiałość, ale pierwszy raz piszę takie coś i chcę się czegoś nauczyć.

thek
Count w zapytaniu... Nie potraktowanie $result_ilosc funkcją count z php smile.gif Znaczy
$result_ilosc = mysql_query("SELECT count(id) AS ile FROM zdjecia WHERE category='$category'");
Poza tym naprawdę weź zrób to co podał Pilsener i sprawdzaj co Ci sypie baza poprzez mysql_error(). jakby nie spojrzeć to nie masz też nigdzie line_break, po którym łamiesz wiersz w tabeli wyświetlającej zdjęcia.
Pilsener
Dostałeś gotowy kod i dalej się upierasz, by nie sprawdzać wykonywanych do bazy zapytań a potem się pytasz, w którym zapytaniu masz błąd? Nie widzimy zapytań ani struktury bazy, więc skąd mamy wiedzieć, jak nie potrafisz nam nawet podać komunikatu błędu, jaki zwraca baza, bo masz gdzieś nasze rady?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.