Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] wyszukiwarka a stronicowanie
pijanyadmin
post 26.01.2008, 02:05:15
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


obecnie wyszukiwatrka wygląda tak i spełnia swoje zadanie bez problemu

  1. <?php
  2.  
  3. $szukaj=mysql_real_escape_string($_POST['szukaj']);
  4. $result = mysql_query('SELECT login FROM userdata WHERE szukaj = $szukaj');
  5. $sql= "SELECT * FROM userdata WHERE login LIKE '%$szukaj%'";
  6. $result2 = mysql_query($sql);
  7. $iles = mysql_num_rows($result2);
  8.  
  9. $res = mysql_query("SELECT * FROM userdata");
  10. $num_results = mysql_num_rows($res);
  11.  
  12. $end = gen_www();
  13. $run = $end - $start;
  14.  
  15. ?>
  16.  
  17. <h2>Wyniki wyszukiwania: </h2>
  18. <div class="profil">Znaleziono:<?php echo "<b>$iles</b>"; ?> z <?php echo "<b>$num_results</b>"; ?> <?php echo "Strona wygenerowana w " . substr($run, 0, 5) . " sek."; ?></div>
  19. <div class="profil1">widok: alfabetycznie | data rejestracji | ocena</div>
  20.  
  21. <?php
  22. while ($wiersz = mysql_fetch_array($result2)) 
  23. {
  24. echo '<div class="profil"><b>'.$wiersz['login'].' </b></div>';
  25. echo '<img height="32" width="25" src='.$wiersz[fotografia].' style="float:left; margin-right: 10px;" alt="" />';
  26. echo 'email: '.$wiersz[email].'';
  27. echo '<br /> opis: '.$wiersz[opis].'';
  28. }
  29.  
  30. ?>


jednak próbowałem zrobić stronicowanie przeglądając forum, tylko że... nie udało mi się do końca... minowicie jakie ma być zapytanie $sql które wyszuka w bazie wyraz zadany przez formularz? to znalazłem na forum

  1. <?php
  2. $sql = mysql_query('SELECT * FROM userdata');
  3. $ile = mysql_num_rows($sql); //ilosc wszystkich rekordow (nie stron !!)
  4. $na_strone = 5; //ilość rekordów max
  5. $stron = ceil ($ile / $na_strone); //stony w zaokrągleniu
  6. $szukaj=mysql_real_escape_string($_POST['szukaj']); //pobranie z formularza
  7.  
  8. for ($i = 1; $i < $stron; $i++) echo ' <a href="?strona='.($i+1).'">strona '.($i+1).'</a> ';
  9. if (!isset($_GET['strona'])) $strona = 1; else $strona = (int)$_GET['strona'];
  10.  
  11. $sql = mysql_query("SELECT * FROM userdata WHERE ".szukaj = $szukaj." LIMIT ".(($strona-1)*$na_strone).','.($strona*$na_strone)); // tak odczytujesz
  12. ?>


tylko jak to połączyć z
'
  1. <?php
  2. $szukaj=mysql_real_escape_string($_POST['szukaj']);
  3. $result = mysql_query('SELECT login FROM userdata WHERE szukaj = $szukaj');
  4. $sql= "SELECT * FROM userdata WHERE login LIKE '%$szukaj%'";
  5. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
potreb
post 26.01.2008, 09:22:02
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Moze będzie działać :/

  1. <?php
  2. function pages ($first, $countpages, $nrpages, $zap) {
  3. if($countpages > $nrpages ){
  4. $countpages = $countpages/$nrpages; 
  5. $ile = ceil($countpages); 
  6. if ($first!=0) echo("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($first-$nrpages) . "\" title=\"Poprzednie\"><big>Ť</big></a> "); 
  7. echo $countpages."<br>";
  8. for ($i=1;$i<=$ile;$i++) 
  9. { 
  10. echo("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($i*$nrpages-$nrpages) . "\" title=\"" . ($i*$nrpages-($nrpages-1)) . "-" . ($i*$nrpages) ."\">");
  11. if ( $countpages > 6 ) {if ($first==($i*$nrpages-$nrpages)) 
  12.  { 
  13. echo ("<b>|" . $i . "|</b></a> "); $akt=$i-1; } else { print ("|" . $i . "|</a> "); 
  14.  } 
  15. } else 
  16.  {
  17.  if ($first==($i*$nrpages-$nrpages)) 
  18.  { 
  19.  echo ("<b>|" . $i . "|</b></a> "); $akt=$i; } else { print ("|" . $i . "|</a> ");  
  20.  } 
  21. }
  22. } 
  23. if ($akt<$ile) echo ("<a href=\"".$_SERVER['PHP_SELF']."?first=" . ($first+$nrpages) . "\" title=\"Następne\"><big>ť</big></a>");
  24. }
  25. }
  26.  
  27. if (!isset($_GET['first'])) $first = 0; else $first = (int) $_GET['first']; 
  28. $nrpages = 2; 
  29. $szukaj=mysql_real_escape_string($_POST['szukaj']);
  30. $result = mysql_query('SELECT login FROM userdata WHERE szukaj = $szukaj');
  31. // do czego ci zapytanie result, przeciez sie do niego nie odwojuesz
  32. $zap= "SELECT * FROM userdata WHERE login LIKE '%$szukaj%' LIMIT $first,$nrpages;";
  33. $countpages = mysql_num_rows(mysql_query("SELECT * FROM userdata WHERE login LIKE '%$szukaj%' "));
  34. $quer = mysql_query($zap);
  35. ?>
  36.  
  37. <h2>Wyniki wyszukiwania: </h2>
  38. <div class="profil">Znaleziono:<?php echo "<b>$countpages</b>"; ?> z <?php echo "<b>$num_results</b>"; ?> <?php echo "Strona wygenerowana w " . substr($run, 0, 5) . " sek."; ?></div>
  39. <div class="profil1">widok: alfabetycznie | data rejestracji | ocena</div>
  40.  
  41. <?php
  42. while ($wiersz = mysql_fetch_array($quer)) 
  43. {
  44. echo '<div class="profil"><b>'.$wiersz['login'].' </b></div>';
  45. echo '<img height="32" width="25" src='.$wiersz[fotografia].' style="float:left; margin-right: 10px;" alt="" />';
  46. echo 'email: '.$wiersz[email].'';
  47. echo '<br /> opis: '.$wiersz[opis].'';
  48.  
  49. echo pages($first, $countpages, $nrpages, $zap);
  50. }
  51.  
  52. ?>


Ten post edytował potreb 26.01.2008, 09:22:47


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 26.01.2008, 16:42:46
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


poprawiłem to troche i jest problem po wczytaniu danych [2][3] itp. minowicie są gubione dane które zostały wczytane z formularza

Kod
$szukaj=mysql_real_escape_string($_POST['szukaj']);



i zamiast tego po kliknieciu na [2] [3] [4] wyświetlane są wyniki z całej bazy a nie tylko te przechwycone z formularza na stronie [1]

  1. <?php
  2.  
  3. function pages ($first, $countpages, $nrpages, $zap) {
  4. if($countpages > $nrpages ){
  5. $countpages = $countpages/$nrpages; 
  6. $ile = ceil($countpages); 
  7. if ($first!=0) echo("<a href=\"".$_SERVER['PHP_SELF']."?id1=wynik&first=" . ($first-$nrpages) . "\" title=\"Poprzednie\">Poprzednie</a> "); 
  8. echo $countpages."<br>";
  9. for ($i=1;$i<=$ile;$i++) 
  10. { 
  11. echo("<a href=\"".$_SERVER['PHP_SELF']."?id1=wynik&first=" . ($i*$nrpages-$nrpages) . "\" title=\"" . ($i*$nrpages-($nrpages-1)) . "-" . ($i*$nrpages) ."\">");
  12. if ( $countpages > 6 ) {if ($first==($i*$nrpages-$nrpages)) 
  13.  { 
  14. echo ("<b>|" . $i . "|</b></a> "); $akt=$i-1; } else { print ("|" . $i . "|</a> "); 
  15.  } 
  16. } 
  17.  
  18. else {
  19. if ($first==($i*$nrpages-$nrpages)) 
  20.  { 
  21. echo ("<b>|" . $i . "|</b></a> "); $akt=$i; } else { print ("|" . $i . "|</a> ");  
  22.  } 
  23. }
  24. } 
  25. if ($akt<$ile) echo ("<a href=\"".$_SERVER['PHP_SELF']."?id1=wynik&first=" . ($first+$nrpages) . "\" title=\"Następne\">Następne</a>");
  26. }
  27. }
  28.  
  29. if (!isset($_GET['first'])) $first = 0; else $first = (int) $_GET['first']; 
  30. $nrpages = 3; 
  31. $szukaj=mysql_real_escape_string($_POST['szukaj']);
  32. $zap= "SELECT * FROM userdata WHERE login LIKE '%$szukaj%' LIMIT $first,$nrpages;";
  33. $countpages = mysql_num_rows(mysql_query("SELECT * FROM userdata WHERE login LIKE '%$szukaj%' "));
  34. $quer = mysql_query($zap);
  35.  
  36. ?>
  37.  
  38. <h2>Wyniki wyszukiwania: </h2>
  39. <?php echo pages($first, $countpages, $nrpages, $zap); ?>
  40. <div class="profil">Znaleziono:<?php echo "<b>$countpages</b>"; ?> z <?php echo "<b>$num_results</b>"; ?> <?php echo "Strona wygenerowana w " . substr($run, 0, 5) . " sek."; ?></div>
  41. <div class="profil1">widok: alfabetycznie | data rejestracji | ocena</div>
  42.  
  43. <?php
  44.  
  45. while ($wiersz = mysql_fetch_array($quer)) 
  46. {
  47. echo '<div class="profil"><b>'.$wiersz['login'].' </b></div>';
  48. echo '<img height="32" width="25" src='.$wiersz[fotografia].' style="float:left; margin-right: 10px;" alt="" />';
  49. echo 'email: '.$wiersz[email].'';
  50. echo '<br /> opis: '.$wiersz[opis].'';
  51.  
  52.  
  53. }
  54.  
  55. ?>
Go to the top of the page
+Quote Post
Kicok
post 26.01.2008, 19:36:02
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Wyszukiwarek nie pisze się z użyciem $_POST.

Popraw swój kod, zmień w formularzu method="post" na method="get" a linki do kolejnych stron twórz w taki sposób:

  1. <?php
  2.  
  3. echo '<a href="' . $_SERVER['PHP_SELF'] . '?id=wynik&amp;szukaj=' . rawurlencode( $_GET['szukaj'] ) . '&amp;first=' . ( $i * $nrpages - $nrpages ) . '">' . $i . '</a>';
  4.  
  5. ?>


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
pijanyadmin
post 27.01.2008, 03:01:10
Post #5





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


pozmieniałem jaednak teraz nie działa w tym includowanie, czyli w ogóle wyświetlanie wyników wyszukania

  1. <?php
  2.  
  3. function pages ($first, $countpages, $nrpages, $zap) {
  4. if($countpages > $nrpages ){
  5. $countpages = $countpages/$nrpages; 
  6. $ile = ceil($countpages); 
  7. if ($first!=0) echo("<a href=\"".$_SERVER['PHP_SELF']."?id1=wynik&first=" . ($first-$nrpages) . "\" title=\"Poprzednie\">Poprzednie</a> "); 
  8. echo $countpages."<br>";
  9. for ($i=1;$i<=$ile;$i++) 
  10. { 
  11.  echo '<a href="' . $_SERVER['PHP_SELF'] . '?id1=wynik&first=' . rawurlencode( $_GET['szukaj'] ) . '?id1=wynik&first=' . ( $i * $nrpages - $nrpages ) . '">' . $i . '</a>';
  12. if ( $countpages > 6 ) {if ($first==($i*$nrpages-$nrpages)) 
  13.  { 
  14. echo ("<b>|" . $i . "|</b></a> "); $akt=$i-1; } else { print ("|" . $i . "|</a> "); 
  15.  } 
  16. } 
  17.  
  18. else {
  19. if ($first==($i*$nrpages-$nrpages)) 
  20.  { 
  21. echo ("<b>|" . $i . "|</b></a> "); $akt=$i; } else { print ("|" . $i . "|</a> ");  
  22.  } 
  23. }
  24. } 
  25. if ($akt<$ile) echo ("<a href=\"".$_SERVER['PHP_SELF']."?id1=wynik&first=" . ($first+$nrpages) . "\" title=\"Następne\">Następne</a>");
  26. }
  27. }
  28.  
  29. if (!isset($_GET['first'])) $first = 0; else $first = (int) $_GET['first']; 
  30. $nrpages = 3; 
  31. $szukaj=mysql_real_escape_string($_GET['szukaj']);
  32. $zap= "SELECT * FROM userdata WHERE login LIKE '%$szukaj%' LIMIT $first,$nrpages;";
  33. $countpages = mysql_num_rows(mysql_query("SELECT * FROM userdata WHERE login LIKE '%$szukaj%' "));
  34. $quer = mysql_query($zap);
  35.  
  36. ?>
  37.  
  38. <h2>Wyniki wyszukiwania: </h2>
  39. <?php echo pages($first, $countpages, $nrpages, $zap); ?>
  40. <div class="profil">Znaleziono:<?php echo "<b>$countpages</b>"; ?> z <?php echo "<b>$num_results</b>"; ?> <?php echo "Strona wygenerowana w " . substr($run, 0, 5) . " sek."; ?></div>
  41. <div class="profil1">widok: alfabetycznie | data rejestracji | ocena</div>
  42.  
  43. <?php
  44.  
  45. while ($wiersz = mysql_fetch_array($quer)) 
  46. {
  47. echo '<div class="profil"><b>'.$wiersz['login'].' </b></div>';
  48. echo '<img height="32" width="25" src='.$wiersz[fotografia].' style="float:left; margin-right: 10px;" alt="" />';
  49. echo 'email: '.$wiersz[email].'';
  50. echo '<br /> opis: '.$wiersz[opis].'';
  51.  
  52.  
  53. }
  54.  
  55. ?>
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: 19.07.2025 - 09:46