Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wyszukiwanie w MYSQL i zwracanie w php, Jak wyszukać po innych polach tabeli
serwislap
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 9.02.2011

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


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
Go to the top of the page
+Quote Post
ylk
post
Post #2





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

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


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

questionmark.gif
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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()).

Ten post edytował mortus 28.04.2011, 08:29:01
Go to the top of the page
+Quote Post
serwislap
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 9.02.2011

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


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 !
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 Aktualny czas: 21.08.2025 - 12:47