Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System Newsów i... błąd !
Forum PHP.pl > Forum > Przedszkole
iksior
Tak więc znalazłem w sieci system newsów oto jego skrypt
  1. <?php
  2. session_start(); // Obsługa sesji na stronie
  3. $dbh = mysql_connect("localhost", "root", ""); // Logowanie do bazy danych
  4. mysql_select_db("baza"); // Wybieranie bazy danych
  5. if(isset($_SESSION['login'])){ // Sprawdzanie czy user jest zalogowany, w miejsce login należy wstawić nazwę swojej sesji, która jest włączana przy logowaniu. Warunek ten nie jest konieczny jeśli chcecie by każdy user widział newsy - wykasujcie to i jeden } na końcu
  6. $news_strona = 5; // ile ma być newsów na stronę
  7. $x = $_GET['x']; // Pobieranie aktualnej strony
  8. if($x == NULL){ // Sprawdzanie czy $x nie jest puste
  9. $x = 1; // Jeśli jest puste to znaczy, że strona to strona nr. 1
  10. }
  11. $x = $x*$news_strona-5; // Ot obliczenie;)
  12. $x = ceil($x);
  13. $dzien = 60*60*24; // Ilość sekund w dniu
  14. $mysql = mysql_query("select * from `news` limit $x, $news_strona order by `id` desc"); // Zapytanie do bazy wyciągające z niej newsy od $x (pobiera ilość: $news_strona)
  15. while($news = mysql_fetch_array($mysql)){ // Pętla powtarzająca się $news_strona razy
  16. $time = time(); // Aktualna data w sekundach od 1970r.
  17. if(($news['date']+$dzien) <= $time){ // Warunek sprawdzający jak ma być wyświetlana data
  18. $data = date("d-m-Y");
  19. }
  20. else {
  21. $data = $time-$news['date'];
  22. $data = $data/60;
  23. $data = $data.' minut temu';
  24. }
  25. echo $news[1].'
  26.  
  27. Napisane przez '.$news[2].', '.$data.''; // Tu ustalacie jak ma być wyświetlany tekst
  28. }
  29. $mysql = mysql_query("select * from `news`"); // Zliczanie ilości newsów
  30. $ilosc_stron = mysql_num_rows($mysql); // To samo
  31. $ilosc_stron = ceil($ilosc_stron/$news_strona); // Obliczanie ile jest stron
  32. for($i=1;$i<=$ilosc_stron;$i++){
  33. echo "[$i]"; // Tu ustawcie jak mają być wyświetlane strony
  34. }
  35. }
  36. ?>

a oto błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\ded\news.php on line 15
gorden
Zamień linię 15 na:
  1. while($news = mysql_fetch_array($mysql) or die(mysql_error())){ // Pętla powtarzająca się $news_strona razy


Na pewno podałeś dobre dane do połączenia z bazą danych, stworzyłeś odpowiednie tabele etc.?
iksior
Teraz błąd wygląda następująco
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 'order by `ID` desc' at line 1
a tabele tworzyłem takim zapytaniem:
  1. CREATE TABLE `news` (
  2. `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `tekst` TEXT NOT NULL ,
  4. `autor` TEXT NOT NULL ,
  5. `date` BIGINT NOT NULL
  6. ) ENGINE = MYISAM;


ref

Refresh
xrtxgabv
W lini 15 daj sobie
Kod
echo "select * from `news` limit $x, $news_strona order   by `id` desc";

potem zapytanie które Ci wyświetli wykonaj bezpośrednio w bazie
zobaczysz czemu Ci nie zwraca żadnych rekordów
nospor
http://dev.mysql.com/doc/refman/5.0/en/select.html
I proponuję przyjrzeć się kolejności co się daje najpierw a co potem.
A następnie skonfronować tę kolejność z kolejnością w swoim zapytaniu
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.