Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]problem z wyświetlaniem wyników wyszukiwania
Forum PHP.pl > Forum > PHP
Mikos
Witam,
posiadam na stronie wyszukiwarke, ktora wyswietla wyniki w tabeli. Problem w tym, ze za kazdym razem brakuje jednego rekordu(pierwszy, ktory zostal dodawny do bazy), ktory powinien znalezc sie w wynikach wyszukiwania. Bede wdzieczny za sugestie;)
  1. if(preg_match("/$priorytet/i", $row[$mysql_row]) && preg_match("/$stopien/i", $row[$mysql_row2]))
  2. {
  3.  
  4. echo' <table id="tabela">';
  5. echo' <tr style="background-color:#1F1F1F; color:#F8F8F8;"><td><strong>Nazwa treningu</strong></td>';
  6. echo' <td><strong>Priorytet</strong></td>';
  7. echo' <td><strong>Stopień zaawansowania</strong></td>';
  8. echo' <td><strong>Dni w tygodniu</strong></td>';
  9. echo' <td><strong>Cel</strong></td>';
  10. echo' </tr>';
  11.  
  12. while($row = mysql_fetch_array($result)){
  13. for ($i=0; $i<count($numrows); $i++)
  14. {
  15. $rawid = ($row[id]);
  16. $rawnazwa = ($row[title]);
  17. $rawpriorytet = ($row[priorytet]);
  18. $rawstopien = ($row[stopien]);
  19. $rawdni = ($row[dni]);
  20. $rawcel = ($row[cel]);
  21. $rawdata = ($row[data]);
  22. <tr onMouseover=this.bgColor='#C1C1C1' onMouseout=this.bgColor='white'><td><font style='text-transform: uppercase;'><a href='index.php?id=".$rawid."'>".$rawnazwa."</a></td></font>
  23. <td>".$rawpriorytet."</td>
  24. <td>".$rawstopien."</td>
  25. <td>".$rawdni."</td>
  26. <td>".$rawcel."</td>
  27. </tr></table>";
  28.  
witul
Napisz jakiego zapytania uzywasz? jakis offset w sqlu?
Mikos
  1. $query = "SELECT * FROM $db_table WHERE priorytet like '%{$priorytet}%' AND stopien like '%{$stopien}%'";
witul
a jak wydasz takie zapytanie bezposrednio w konsoli mysql/postgresql albo phpmyadmin/phppgadmin to daje dobre wyniki czy tez bledne?
franki01
  1. if(preg_match("/$priorytet/i", $row[$mysql_row]) && preg_match("/$stopien/i", $row[$mysql_row2]))

Tutaj używasz $row. Może już użyłeś wcześniej mysql_fetch_array() albo coś podobnego? Mógłbyś pokazać trochę kodu powyżej?
Mikos
Cytat(witul @ 30.08.2009, 21:48:58 ) *
a jak wydasz takie zapytanie bezposrednio w konsoli mysql/postgresql albo phpmyadmin/phppgadmin to daje dobre wyniki czy tez bledne?

wtedy dziala wszystko w porzadku.


@franki
mysql_fetch_array() uzywam dwukrotnie. Oto kod:
  1. $priorytet = implode(',',$_POST['priorytet']);
  2. $stopien = implode(',',$_POST['stopien']); //
  3.  
  4. $query = "SELECT * FROM $db_table WHERE priorytet like '%{$priorytet}%' AND stopien like '%{$stopien}%'";//
  5. $result = mysql_query($query);
  6. $numrows = mysql_num_rows($result);
  7. $row = mysql_fetch_array($result);
  8.  
  9. echo'<div class="text"> Znaleziono: <b>'.$numrows.'</b> wyników dla warunków zapytania: <b>'.$stopien.'</b> <b>'.$priorytet.' </b></div>';
  10.  
  11. if(preg_match("/$priorytet/i", $row[$mysql_row]) && preg_match("/$stopien/i", $row[$mysql_row2]))
  12. {
  13.  
  14. echo' <table id="tabela">';
  15. echo' <tr style="background-color:#1F1F1F; color:#F8F8F8;"><td><strong>Nazwa treningu</strong></td>';
  16. echo' <td><strong>Priorytet</strong></td>';
  17. echo' <td><strong>Stopień zaawansowania</strong></td>';
  18. echo' <td><strong>Dni w tygodniu</strong></td>';
  19. echo' <td><strong>Cel</strong></td>';
  20. echo' </tr>';
  21.  
  22. while($row = mysql_fetch_array($result)){
  23. for ($i=0; $i<count($numrows); $i++)
  24. {
  25. $rawid = ($row[id]);
  26. $rawnazwa = ($row[title]);
  27. $rawpriorytet = ($row[priorytet]);
  28. $rawstopien = ($row[stopien]);
  29. $rawdni = ($row[dni]);
  30. $rawcel = ($row[cel]);
  31. $rawdata = ($row[data]);
  32. <tr onMouseover=this.bgColor='#C1C1C1' onMouseout=this.bgColor='white'><td><font style='text-transform: uppercase;'><a href='index.php?id=".$rawid."'>".$rawnazwa."</a></td></font>
  33. <td>".$rawpriorytet."</td>
  34. <td>".$rawstopien."</td>
  35. <td>".$rawdni."</td>
  36. <td>".$rawcel."</td>
  37. </tr></table>";
franki01
Linia 7. Twojego kodu pobiera już pierwszy wiersz tego zapytania, przez co nie może być już użyty w pętli. Po tej siódmej linijce wstaw taką funkcję:
  1. mysql_data_seek ($result, 0);
Mikos
Jesteś wielki!:)
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.