Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyszukiwanie w MYSQL i zwracanie w php
Forum PHP.pl > Forum > Przedszkole
serwislap
Witam serdecznie.

Mam następujący problem.
Posiadam gotowy skrypt w php do prowadzenia finansów firmy.
Metodą "klonowania" przerobiłem sobie skrypt który dodaje rewersy w firmie z nowo przyjętym sprzętem
na moduł gwarancji.
Skrypt ten posiada wyszukiwarkę która wyszukuje użytkownika i zwraca wynik wyszukiwarce.
W Bazie Mysql dodałem nowe pola które nazywają się odpowiednio :
  1. data_wydania
  2. okres_gwarancji
  3. rodzaj naprawy


obecny kod wyszukiwarki jest taki :
  1. <?php
  2. require_once "config.php";
  3. $baza = polacz();
  4. $rewers = $_POST[rewers];
  5. if($_POST[rewers]>0)
  6. {
  7.  
  8. if($rewers>1000000000)
  9. {
  10. $zap = mysql_query("SELECT id FROM rewers WHERE kod = $rewers AND usunieto=0");
  11. if(mysql_num_rows($zap)>0)
  12. header("Location:index.php?mod=rewersy&submod=szukaj&kod=kod$rewers");
  13. else
  14. header("Location:index.php?mod=rewersy&msg=14");
  15. }
  16. else
  17. {
  18. $zap = mysql_query("SELECT id FROM rewers WHERE id=$rewers AND usunieto=0");
  19. if(mysql_num_rows($zap)>0)
  20. header("Location:index.php?mod=gwarancje&submod=szukaj_b&idr=$rewers");
  21. else
  22. header("Location:index.php?mod=rewersy&msg=14");
  23. }
  24. }
  25. elseif($_POST[rewers]!="")
  26. {
  27. $zap = mysql_query("SELECT id FROM rewers WHERE zglaszajacy LIKE \"%$rewers%\" AND usunieto=0");
  28. if(mysql_num_rows($zap)>0)
  29. header("Location:index.php?mod=gwarancje&submod=szukaj_a&zglaszajacy=$rewers");
  30. else
  31. header("Location:index.php?mod=rewersy&msg=15");
  32. }
  33.  
  34.  
  35.  
  36.  
  37.  
  38. $dane_d .= '<form action="" method="POST" id="szukaj">
  39. <table align="center"><tbody>
  40. <tr><th>Numer gwarancji / ID / Zgłaszający:</th></tr>
  41. <tr><td><input type="text" name="rewers" id="course" class="input" onkeyup="rewers_numer(this.value);"/></td></tr>
  42. <tr><td align="right">
  43. <input type="submit" name="szukaj_rewers" value="szukaj" class="submit" /></td></tr>
  44. </tbody></table></form>
  45.  
  46. ';
  47. ?>


Moje pytanie jak zmienić żeby wyszukiwał mi tylko tych użytkowników którzy mają wypełnione pole "data_wydania" a nie jak obecnie po nazwie "kod" lub "zglaszający"
Tylko chodzi o to że w formularzu chcę nadal wpisać po tych parametrach ale żeby wyświetlał tylko te gwarancje które są w systemie z wypełnionym pole"data_wydania"

Jestem troszkę kulawy w php i wielu rzeczach dochodzę metodą prób i błędów.
Może ktoś pomoże mi w zmianie tego zapytania.

Pozdrawiam serdecznie
ylk
  1. (...) WHERE data_wydania IS NOT NULL AND data_wydania!='0000-00-00'

questionmark.gif
mortus
Raczej należałoby dodać fragment kolegi ylk, do już istniejących zapytań.
W linii 12:
  1. SELECT id FROM rewers WHERE kod = $rewers AND usunieto=0 AND data_wydania IS NOT NULL AND data_wydania!='0000-00-00'
i w linii 29:
  1. SELECT id FROM rewers WHERE zglaszajacy LIKE \"%$rewers%\" AND usunieto=0 AND data_wydania IS NOT NULL AND data_wydania!='0000-00-00'
Poza tym mam uwagę co do linii 6. Jeśli użytkownik nie wypełni pola tekstowego i kliknie 'Szukaj', to skrypt może się w tym miejscu wywalić. Dlatego warto sprawdzić, czy użytkownik przesłał jakieś dane:
  1. if(isset($_POST['rewers']) && $_POST['rewers']!='') {
  2. $rewers = $_POST['rewers'];
  3. // tutaj wykonujemy interesujący nas fragment kodu, przy czym zamiast posługiwać się zmienną $_POST['rewers'], posługujemy się zmienną $rewers, jak niżej
  4. if($rewers > 0) {
  5. // ...
  6. } else {
  7. // ...
  8. }
  9. } else {
  10. // jeżeli użytkownik nie wpisał żadnych informacji to wyświetl odpowiedni komunikat i wyświetl ponownie formularz
  11. }
Można jeszcze przefiltrować dane sprawdzając, czy wprowadzony tekst jest liczbą, czy napisem (zobacz is_int()).
serwislap
Kolego "mortus" jesteś wielki smile.gif
Wszystko chodzi dokładnie tak jak chciałem smile.gif
Bardzo dziękuję za pomoc i zamykam temat.

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.