Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]WYszukiwarka
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam.

Zrobiłem sobie wyszukiwarkę opartą o bazę mysql ale niestety jakiś mam błąd.

  1. <?php
  2. include('config.php');
  3. if(isSet($_POST['pole'])){
  4. $user = mysql_fetch_array(mysql_query("SELECT user_name FROM users WHERE user LIKE '%$_POST[gracz]%' "));
  5.  
  6. echo '<table>';
  7. while ($cos = mysql_fetch_row($user))
  8. {
  9. echo '<tr><td>'. $cos[0] .'</td><td>'. $cos[1] .'</td></tr>';
  10. }
  11. echo '<table>';
  12.  
  13. }
  14. else{
  15. echo'<form method=post action=szukaj.php>
  16. <input type=text name=gracz>
  17. <input type=submit name=pole value=Szukaj>
  18. </form>';
  19. }
  20. ?>
Spawnm
A jaki to błąd? mysql_error().
Nie pakuj $_POST do zapytań bez filtracji.
Croos22
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /xxxx/szukaj.php on line 4

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /xxxx/szukaj.php on line 7

Czy dane filtruje się za pomocą htmlspecialchars ?
konrados
No ale przede wszystkim to jakieś dziwne używanie funkcji mysql_... powinno być raczej:
  1. $gracz = $_POST['gracz'];
  2. $user = mysql_query("SELECT user_name FROM users WHERE user LIKE '%$gracz%' ") or die (mysql_error());
  3.  
  4. echo '<table>';
  5. while ($cos = mysql_fetch_row($user))
  6. {
  7. echo '<tr><td>'. $cos[0] .'</td><td>'. $cos[1] .'</td></tr>';
  8. }


Dołożyłem też mysql_error do funk. mysql_query

A dane filtrujemy za pomocą htmlspecialchars oraz mysql_real_escape_string
Croos22
Podzieliłem to na dwie części php i html bo wywalało błędy ale znów teraz wyświetla mi echo wszystkich użytkowników jakie są w bazie.

  1.  
  2.  
  3. <form method=post action=szukaj.php>
  4. <input type=text name=gracz>
  5. <input type=submit name=pole value=Szukaj>
  6. </form>
  7.  
  8.  
  9. <?php
  10. include('config.php');
  11. $gracz = $_POST['gracz'];
  12. $user = mysql_query("SELECT * FROM users WHERE user_name LIKE '%$gracz%' ") or die (mysql_error());
  13.  
  14.  
  15. while ($cos = mysql_fetch_row($user))
  16. {
  17. echo '<tr><td>'. $cos[0] .'</td><td>'. $cos[1] .'</td></tr>';
  18. }
  19.  
  20. ?>
konrados
A weź gdzieś wstaw echo $gracz; co byśmy wiedzieli, że się prawidłowo przesłało
Croos22
W jakim celu mam wstawić?
Nic się nie pokazało, bez zmian.
konrados
"Nic się nie pokazało, bez zmian" == $gracz jest pusty?
Właśnie dlatego "W jakim celu mam wstawić?" byś zobaczył, że $gracz jest pusty.........

Czyli gdzie indziej jest błąd, w ogóle nie wysyła tej zmiennej via POST.

Zarzuć może całym plikiem, zarówno formularza jak i "szukaj.php" czy jak to tam było.
Croos22
Proszę oto kod:

  1. <form method=post action=szukaj.php>
  2. <input type=text value="Nazwa gracza" name=gracz>
  3. <input type=submit name=pole value=Szukaj>
  4. </form>
  5.  
  6.  
  7. <?php
  8. include('config.php');
  9. $gracz = $_POST['gracz'];
  10. $user = mysql_query("SELECT * FROM users WHERE user_name LIKE '%$gracz%' ") or die (mysql_error());
  11.  
  12.  
  13. while ($cos = mysql_fetch_row($user))
  14. {
  15. echo '<tr><td>'. $cos[0] .' </td><td><a href="'. $cos[1] .'">'. $cos[1] .'</a> </td></tr>';
  16. }
  17.  
  18.  
  19.  
  20. ?>
konrados
Czemu nie możesz powiedzieć co wypluwa echo $gracz; ? I czy jakieś błędy występują?

Poddaje się. Może ktoś mądrzejszy się wypowie.
cywill
Przydał mi się Twój kod - chociaż nie jest doskonały.
W Twoim kodzie brakuje połączenia z baząexclamation.gif!
Poprawiłem go trochę, a mianowicie dodałem:

  1. <?php
  2. include('config.php');
  3. connection();


i wszystko gra wink.gif

Jeśli komuś to pomoże to sie cieszę - sam zaczynam programowanie w PHP więc często teraz będę się udzielał.

Pozdrawiam
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.