Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] stronnicowanie
Forum PHP.pl > Forum > Przedszkole
kalimaster
Gdy uruchamiam plik przyklad.php w przeglądarce pojawia się następujący zapis:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in przyklad.php line 18

Kod PHP wygląda następująco:

  1. <?php
  2.  
  3. mysql_connect('localhost','administrator','haslo');
  4. mysql_select_db('base2');
  5.  
  6.  
  7. $select = "SELECT COUNT(*) FROM news";
  8. $selectfor = mysql_query($select);
  9. $all= mysql_fetch_row($selectfor);
  10. $howmanypages= 2;
  11. $subpages=ceil($all[0] / $howmanypages);
  12.  
  13. $query= mysql_query("SELECT id,nick,naglowek,utworzony,zmodyfikowany FROM news LIMIT ".(($news-1) * $howmanypages).",".$howmanypages * $news."");
  14.  
  15. while($row = mysql_fetch_assoc($query)) {
  16.  
  17. echo $row['id'] . $row['nick'] . $row['naglowek'] . $row['utworzony'] . $row['zmodyfikowany'] . '<br />';
  18.  
  19. }
  20.  
  21. if ($news > 1) {
  22. echo '<a href="przyklad.php?news="'.($news-1).'"><<</a> ';
  23. }
  24.  
  25. else {
  26. }
  27.  
  28. for ($i=1; $i<=$subpages; $i++) {
  29. echo '<a href="przyklad.php?news='.$i.'"> ' . $i . '</a> ';
  30. }
  31.  
  32. if ($news < $subpages) {
  33. echo '<a href="przyklad.php?news='.($news+1).'">>></a>';
  34. }
  35.  
  36. else {
  37. }
  38.  
  39. ?>


Baza danych MYSQL:
  1. DROP DATABASE IF EXISTS base2;
  2.  
  3. CREATE DATABASE base2;
  4.  
  5. USE base2;
  6.  
  7. DROP TABLE IF EXISTS news;
  8.  
  9. CREATE TABLE news (
  10. id int PRIMARY KEY AUTO_INCREMENT,
  11. naglowek text,
  12. tekst_newsa text,
  13. obrazek text,
  14. utworzony int,
  15. zmodyfikowany int,
  16. nick varchar(16) NOT NULL
  17. );
  18.  
  19. DROP TABLE IF EXISTS meetings;
  20.  
  21. CREATE TABLE meetings (
  22. id int PRIMARY KEY AUTO_INCREMENT,
  23. pora text,
  24. spotkanie text
  25. );
  26.  
  27. DROP TABLE IF EXISTS articles;
  28.  
  29. CREATE TABLE articles (
  30. naglowek varchar(16) NOT NULL,
  31. naglowek2 text,
  32. tekst_artykulu text,
  33. obrazek text,
  34. nick varchar(16) NOT NULL,
  35. PRIMARY KEY(naglowek)
  36. );
  37.  
  38. DROP TABLE IF EXISTS links;
  39.  
  40. CREATE TABLE links (
  41. nazwa varchar(50) NOT NULL,
  42. link text,
  43. obrazek text,
  44. PRIMARY KEY(nazwa)
  45. );
  46.  
  47. DROP TABLE IF EXISTS authors;
  48.  
  49. CREATE TABLE authors (
  50. nick varchar(16) PRIMARY KEY,
  51. haslo varchar(40) NOT NULL,
  52. pelne_nazwisko text
  53. );
  54.  
  55. GRANT SELECT, INSERT, UPDATE, DELETE ON base2.*
  56. TO administrator@localhost IDENTIFIED BY 'haslo';
  57.  
  58. INSERT INTO authors (nick, haslo, pelne_nazwisko)
  59. VALUES ('piotrek', sha1('haslo'), 'Piotr Kowalski');
  60. INSERT INTO authors (nick, haslo, pelne_nazwisko)
  61. VALUES ('ania', sha1('haslo'), 'Ania Nowak');
  62. INSERT INTO news
  63. (id, naglowek, tekst_newsa, obrazek, utworzony, zmodyfikowany, nick)
  64. VALUES (7, 'Wielki koncer', 'Kolejny wielki koncert, który odbył się dzisiejszego dnia. Niesamowity przełom, nowe aranżacje... i jeszcze więcej tekstu.', 'obrazki/7.jpg', 976542355, 976542503, 'piotrek');
  65.  
  66. INSERT INTO news
  67. (id, naglowek, tekst_newsa, obrazek, utworzony, zmodyfikowany, nick)
  68. VALUES (8, 'Wiosenne przygotowania', 'Trwają wiosenne przygotowania do konkursu, który odbędzie się dzisiejszego dnia. Niesamowity przełom, nowe aranżacje... i jeszcze więcej tekstu.', 'obrazki/8.jpg', 976451129, 976458734, 'piotrek');


Mam dwa newsy w bazie danych. Pod wierszem Warning znajduje się 1 >>. Kiedy klikam na tą jedynkę, pojawia mi się dopiero wynik wyszukiwania (w dodatku bez żadnego Warning).
artur_dziocha
Istnieją pewne zasady uzywania tego forum
Temat: Najczestsze_bledy
piotrooo89
daj tak i powiedz co wyświetla:

  1. <?php
  2. $query= mysql_query("SELECT id,nick,naglowek,utworzony,zmodyfikowany FROM news LIMIT ".(($news-1) * $howmanypages).",".$howmanypages * $news."") or die(mysql_error());
  3. ?>


ale wydaje mi się że te ciapki + nawiasy chrzanią.
kalimaster
Wyświetla mi:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2,0' at line 1
piotrooo89
no już wiesz. robisz LIMI -2,0 co nie jest prawdziwe.
kalimaster
Hmm, wiesz może czemu limit ustawia mi na -2,0 ?
Tzn. czemu $news wychodzi 0? Chyba dlatego są te wartości.
piotrooo89
Cytat(kalimaster @ 2.03.2009, 11:30:34 ) *
Hmm, wiesz może czemu limit ustawia mi na -2,0 ?
Tzn. czemu $news wychodzi 0? Chyba dlatego są te wartości.


szczerze to nie wiem... swego czasu napisałem prosty skrypt stronicujący może Ci się przyda:
http://olaszewski.com/2009/02/04/stronicow...-w-php-i-mysql/
kalimaster
Ok, dzięki za odpowiedzi smile.gif .

Cytat(piotrooo89 @ 2.03.2009, 11:34:55 ) *
...swego czasu napisałem prosty skrypt stronicujący może Ci się przyda:
http://olaszewski.com/2009/02/04/stronicow...-w-php-i-mysql/

W "moim" kodzie wykorzystałem  następujący zapis z Twojego skryptu:
  1. <?php
  2. if(empty($_GET['news'])) // sprawdzamy czy tablica super globalna $_GET jest pusta...
  3. {
  4.    $news = 1; // ... jeśli tak podstawiamy domyślnie 1...
  5. }
  6. else
  7. {
  8.    $news= htmlspecialchars(mysql_real_escape_string($_GET['news']));
  9. }
  10. ?>

Wstępnie wszystko wygląda teraz dobrze, ale zerknę jeszcze na resztę Twojego skryptu. Możliwe, że zastosuję go w całości.
Jeszcze raz dzięki.
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.