Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL]Podsumowanie (zliczenie) wyników w wyszukiwarce
Forum PHP.pl > Forum > Przedszkole
Cenoniada
Witam,

Witam, pytanie laickie, jakiej funkcji użyć aby uzyskać krótkie podsumowanie (wyliczenie wyrzuconych przez bazę wyników oraz czasu w jakim się to zapytanie odbyło) które wyglądać ma tak :


Wyniki szukania 1 - 10 z 555 dla frazy [b]fraza[/b]. (0.12 sekundy)

Zmienna wyników 1 - 10, 11 - 20, 21 - 30.. itd
Zmienna 555 - czyli ilość wytypowanych wyników
Zmienna (0.12 sekundy) - czas w jakim wytypowano wszystkie rekordy z zapytania
Spawnm
Zmienna wyników 1 - 10, 11 - 20, 21 - 30.. itd
to chyba będą dane z limit/between w sql
czyli od którego miejsca zacząłeś pobierać i na którym skończyłeś .


Zmienna 555 - czyli ilość wytypowanych wyników
czyli num_rows dla zapytania select [cos] where [warunek szukania ]ale bez limit.



Zmienna (0.12 sekundy) - czas w jakim wytypowano wszystkie rekordy z zapytania

to się chyba robiło że na początku pliku dajesz jedno microtime do zmiennej,
na końcu kolejne , od 2giego odejmujesz 1sze i masz czas ładowania strony / obszaru między zmiennymi.
Cenoniada
Dzięki, zrobiłem to i fajnie wyszło, tylko funkcja liczenia rows przy limitach wyświetlania działa troszku inaczej (co prawda pokazuje prawidłową liczbę ale za każdym razem wyświetlała błąd). Trzeba było zastosować mnożnik stron i zaokrąglić wyniki do 10.

Wyniki w stylu

1 - 10, 11 - 20, 21 - 30 itd..

zrobiłem łatwo :

[php]
<?php $wyników = ($pages * 10); ?>
<?php $strona2 = ($page * 10); ?>
<?php $strona1 = ($strona2 - 9); ?>
[\php]

tylko jest maleńki problem stron ($page) gdy jest ich kilkaset to ciągną się w nieskończoność poszerzając stronę, przydało by się coś aby usuwać strony (wyniki) starsze coś np. nie pokazuj wyników (%page - 5) bo zawsze pokazuje np. następnych 5 wyników w prawo.

smile.gif jak by to questionmark.gif?
Spawnm
no to np: select id from cos where id>'$id_aktualne' LIMIT 5 ?
albo pokaż kod coś z nim pokombinujemy ;]
presscot
  1. <?php
  2. w zależności jak wygląda struktora danych jakie mają być wyświetlane uzywam WHERE w celu ustalenia co ma byc wyswietlane dla jakich oczu
  3.  
  4. $temat=array();
  5.  
  6.  
  7. $il=3; // ilosc wyswietlanych wiadomosci na jaednej stronie
  8. $ile = 'SELECT * FROM tabela WHERE indentyfikacja="'.$_SESSION['indentyfikacja'].'"';
  9. $wynik = mysql_query($ile);
  10. $ilosc = mysql_num_rows($wynik); //ilosc wszytskich rekordów spełniajacych warunek where
  11.  
  12.  
  13. if (isset($_GET['view'])) $od = $_GET['view']; else $od = 0; // zmienna wczytywana przez GET ktora ma ustalic od jakiego rekordu rozpocząc wyswietlanie
  14.  
  15.  
  16. $query='SELECT * FROM tabela WHERE indentyfikacja="'.$_SESSION['indentyfikacja'].'" ORDER BY czas DESC LIMIT '.$od.' , '.$il; // zapytanie dotyczące danego zagadnienia, segregowane wg przeciwienstwa kolumny czas, wywołane rekordy od zmiennej "od" do zmiennej "il"
  17.  
  18. $result = mysql_query ($query);
  19.  
  20. while ($row = mysql_fetch_array($result)) {
  21. array_push($temat, $row['temat']);
  22. } // przekaznie kolumn do tablic
  23.  
  24.  
  25.  
  26. // przekazanie tablic do interpretatora smarty, jelsi nie uzywasz smartów poprostu pomin ten etap
  27. $smarty->assign_by_ref('temat', $temat);
  28.  
  29. $smarty->assign('prze', $il);
  30. $smarty->assign('ilosc', $ilosc);
  31. $smarty->assign('od', $od);
  32.  
  33. return $smarty->fetch('templates/tabela.tpl');
  34.  
  35.  
  36. //a teraz w pliku tpl albo jak wolisz dalej w php
  37.  
  38. <h3>Wyniki od {$od+1} do {if $od+$prze < $ilosc}{$od+$prze}{else}{$ilosc}{/if} z {$ilosc}</h3>
  39.  
  40. <div>{if $od != '0'}<a href="index.php?view=0">&laquo;&laquo;</a>{else}&laquo;&laquo;&nbsp;{/if}
  41. {if $od != '0'}<a href="index.php?view={$od-$prze}">&laquo;</a>{else}&laquo;{/if}
  42.  
  43. {math equation="floor(a / b - c)" a=$od b=$prze c=3 assign="nod"}
  44. {math equation="floor(a / b + c)" a=$od b=$prze c=3 assign="ndo"}
  45.  
  46. {if $ilosc%$prze == 0}
  47. {if $nod <= 0}{assign var='nod' value=1}{/if}
  48. {if $ndo > floor($ilosc / $prze)}{math equation="floor(a / b)" a=$ilosc b=$prze assign="ndo"}{/if}
  49. {else}
  50. {math equation="floor(a + b)" a=$nod b=1 assign="nod"}
  51. {math equation="floor(a + b)" a=$ndo b=1 assign="ndo"}
  52. {if $nod <= 0}{assign var='nod' value=1}{/if}
  53. {if $ndo > floor($ilosc / $prze + 1)}{math equation="floor(a / b + c)" a=$ilosc b=$prze c=1 assign="ndo"}{/if}
  54. {/if}
  55.  
  56. {math equation="a + b" a=$ndo b=1 assign="ndo"}
  57.  
  58. {section name=foo start=$nod loop=$ndo step=1}
  59. {if $od == floor($smarty.section.foo.index * $prze - $prze)}{$smarty.section.foo.index}{else}<a href="index.php?view={math equation="floor(a * b - b)" a=$smarty.section.foo.index b=$prze}">{$smarty.section.foo.index}</a>{/if}
  60. {/section}
  61.  
  62. {if $ilosc%$prze == 0}
  63. {if $od < floor($ilosc / $prze) * $prze - $prze}<a href="index.php?view={$od+$prze}">&raquo;</a>{else}&raquo{/if}
  64.  
  65. {if $od < floor($ilosc / $prze) * $prze - $prze}<a href="index.php?view={math equation="floor($ilosc / $prze) * $prze - $prze" a=$ilosc b=$prze}">&raquo;&raquo;</a>{else}&raquo;&raquo;{/if}
  66. {else}
  67. {if $od < floor($ilosc / $prze + 1) * $prze - $prze}<a href="index.php?view={$od+$prze}">&raquo;</a>{else}&raquo{/if}
  68.  
  69. {if $od < floor($ilosc / $prze + 1) * $prze - $prze}<a href="index.php?view={math equation="floor(a / b + c) * b - b" a=$ilosc b=$prze c=1}">&raquo;&raquo;</a>{else}&raquo;&raquo;{/if}
  70. {/if}
  71. </div>
  72. ?>



// a teraz wyliczenie ile czasu potrzebuje server na wygenerowanie strony

  1. <?php
  2.  
  3.  function czas() {
  4.      list($msek, $sek) = explode(" ", microtime());
  5.      return ((float)$msek + (float)$sek);
  6.  }
  7.  
  8.  $czas_poczatku = czas();
  9.  
  10.  
  11. // tutaj jest miejsce na wlasciwą tresc strony
  12.  
  13.  
  14.  $czas_konca = czas();
  15.  
  16.  $czas_trwania = round($czas_konca - $czas_poczatku, 4);
  17.  
  18. echo('<script type="text/javascript">
  19. document.getElementById('nazwa_diva').innerHTML="Strona wygenerowana w '.$czas_trwania.' sek";
  20. </script>');
  21.  
  22. // z tego wzgledu ze czas generuje się dopiero na koncu generowania strony to dopisujemy kod js ktory przeniesie wygenerowaną wartość do diva ktorego podamy w funkcji getElementById
  23.  
  24.  
  25. ?>
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.