Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Listowanie, Potrzebuje pomocy przy nauce listowania
Zagiewa
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


Witam. Potrzebuje nauczyć się listować rekordy z bazy SQL. Problem polega na tym, że w teorii mniej więcej wiem jak to ma wyglądać ale nie potrafię nic sklecić co by działało. Więc jak już wspomniałem nie szukam gotowca a porad. Do tej pory mam jakiś zaczątek kodu który wydaje się być w pełni poprawny a wygląda tak:
  1. $sql = "SELECT id, tytul FROM news";
  2. $result = mysql_query($sql) or
  3. die("Sprawdź wynik! " . mysql_error());
  4.  
  5. $sql2 = "SELECT COUNT(*) FROM news";
  6. $result2 = mysql_query($sql2) or
  7. die("Sprawdź wynik! " . mysql_error());
  8. $ilosc = mysql_result($result2,0);

Oczywiście przed tym wszystkim jest jeszcze fragment kodu który łączy mnie z bazą ale myślę, że nie ma potrzeby go podawać. Co to napisałem działa ale moje pierwsze pytanie: czy z tych dwóch zapytań do bazy nie da się zrobić jednego?

Ten post edytował Zagiewa 20.10.2010, 20:26:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zagiewa
post
Post #2





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 12.08.2009

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


kryspuss Dzięki, to jedno mam już za sobą. Zacząłem pisać dalej ale natknąłem się na kolejną przeszkodę. Najpierw jednak pokaże co mam:
  1. $sql = "SELECT id, tytul FROM news";
  2. $result = mysql_query($sql) or
  3. die("Sprawdź rezultat! " . mysql_error());
  4. $ilewierszy = mysql_num_rows($result);
  5.  
  6. $na_stronie = 5; //ilosc wierszy wieswietlanych na jednej stronie
  7. $ile_stron = $ilewierszy/$na_stronie; //ilosc stron
  8. $lp = 1; //wartosc poczatkowa liczby porzadkowej ktorej wartosc bedzie rozla o 1 z kazdym kolejnym wyswietlanym wpisem
  9. $wiersze = 1; //wartosc od ktorej maja byc wyswietlane rekordy z bazy

Jak widać z dwóch zapytań zostało jedno + dodałem zmienne które myślę, że są niezbędne chociaż to wyjdzie z czasem. Do tej pory ucząc się listowania uczyłem się na pętli for gdzie zmienna "x" miała wartość 100 i była to ilość tak jak by rekordów i jakoś działało. Tutaj jednak muszę stworzyć taką pętlę, która pobierze tylko pierwsze 5 rekordów z bazy, wyświetli je i zatrzyma się. Problem w tym, że nie wiem jak taką pętlę skonstruować.

Do tej pory do wypisywania rekordów używałem pętli while gdzie wyglądała tak:
  1. while($wypisz = mysql_fetch_array($result))

Oczywiście pętle while można zatrzymać ale nie da się później jej wznowić od miejsca w którym się zatrzymała. Mam rację? Dlatego wyjściem jest petla for bo mogę skonstruować bardziej złożony warunek ale jaki i tu jest problem. Może jakieś porady bo do tej pory napisałem coś takiego ale nie działa (IMG:style_emoticons/default/sad.gif)
  1. for($wiersze; $wiersze <= $na_stronie; $wiersze++) {
  2.  
  3. $wypisz = mysql_fetch_array($result);
  4. $id = $wypisz['id'];
  5. $tytul = $wypisz['tytul'];
  6.  
  7. echo '
  8. <tr>
  9. <td>' .$lp. '</td><td>' .$tytul. '</td><td>Edycja</td><td>Komentarze</td>
  10. </tr>
  11. ';
  12.  
  13. $lp++;
  14. }
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 15:05