Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Podział bazy danych, Stronicowanie dzienne
djgarsi
post 23.02.2010, 18:30:39
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Witam. Interesuje mnie, jak wykonać zapytanie i zdefiniować funkcje dziennego stronicowania bazy danych?
Przykład może być taki: http://algorytmy.pl/?id=2071


--------------------
Go to the top of the page
+Quote Post
Mchl
post 23.02.2010, 18:41:24
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Kod
//wyżej oczywiście wywołanie zapyrania (zwykły SELECT FROM ORDER BY data DESC)

$currentDate = null;
while($row = mysql_fetch_assoc($result)) {
  if($row['data'] != $currentDate) {
    $currentDate = $row['data'];
    echo "---------- $currentDate".PHP_EOL;
  }
  echo $row['czas']." ".$row['wpis'].PHP_EOL;
}


Ten post edytował Mchl 23.02.2010, 18:42:06
Go to the top of the page
+Quote Post
djgarsi
post 23.02.2010, 18:51:41
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Aj. No i nie śmiga.sad.gif

  1. define('ILOSC_WYNIKOW_NA_STRONIE', 30);
  2.  
  3. include('db_connect.php');
  4.  
  5.  
  6. $SQL = "SELECT COUNT(*) FROM file WHERE cat='4'"; // Zapytanie liczące ilość wpisów w bazie
  7. $RES = mysql_query($SQL);
  8. list($iloscWpisow) = mysql_fetch_row($RES);
  9.  
  10. $SQL = "SELECT *
  11. FROM file
  12. WHERE cat='4'
  13. ORDER BY id DESC
  14. LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  15. // pobiera ILOSC_NA_STRONIE rekordów z bazy, sortując wg daty rosnąco, zaczynając od $_GET['strona']*ILOSC_NA_STRONIE
  16. $RES = mysql_query($SQL); // wykonujemy zapytanie
  17. while($AFR_file = mysql_fetch_assoc($RES)){
  18. /*Wyswietlanie wyników, przykładowo:*/
  19. echo '<b><a href=file.php?plik='.$AFR_file['id'].'>['.$AFR_file['data'].'] '.$AFR_file['name'].'</a></b><br>';
  20. echo 'Serwer: '.$AFR_file['licencja'].' | Pobran: '.$AFR_file['pobran'].' | '.$AFR_file['opis'].'<br /><br />';
  21. }
  22. echo '<hr><center>';
  23.  
  24. //Teraz wypadało by wyświetlić jakąś nawigację
  25.  
  26. //jesli nie jesteśmy na pierwszej stronie
  27. if($_GET['strona']>0){
  28. //wyswietlamy link do poprzedniej strony
  29. echo '<a href="?strona='.($_GET['strona']-1).'">Poprzednie</a> ';
  30. }
  31.  
  32. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  33. echo '<a href="?strona='.($i).'"><b>[ '.($i+1).' ]</b></a> ';
  34. }
  35. //jeśli nie jesteśmy na ostatniej stronie
  36. if($_GET['strona']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  37. //wyswietlamy link do nastepnej strony
  38. echo ' <a href="?strona='.($_GET['strona']+1).'">Następne</a></center>';
  39. }


Mam taki kod stronicowania. Do tego chciałbym jeszcze wyniki podzielić na dni. Jest to możliwe??


--------------------
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 Wersja Lo-Fi Aktualny czas: 8.07.2025 - 10:05