Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyszukiwarka wielu danych pętla!
Forum PHP.pl > Forum > Przedszkole
nikestylex7
Witam. Piszę prostą wyszukiwarkę lecz natknąłem się na problem. Mianowicie w mojej wyszukiwarce użytkownik może wyszukać oferty min

Miejsce startu : państwo - miejscowość - kod pocztowy
Miejsce docelowe : państwo - miejscowość - kod pocztowy
Dodatkowe info:
nazwa firmy - id ogłoszenia - rodzaj ładunku - rodzaj transportu

Mam problem ponieważ chciałbym uniknąć ton kodu typu
  1. if(!empty($_POST['country']) && !empty($_POST['country2']) &&!empty($_POST['place']) && !empty($_POST['place2']) &&)

itp
czyli wypisywania i sprawdzania każdego po kolei od wypisania wszystkich i stworzenia zapytania po wypisanie tylko dwóch czyli jednego państwa i drugiego.

Myślę nad pętlą tylko jak zrobić żeby w pętli sprawdzał które dane zostały wpisane przez użytkownika potem zapytał o nie w bazie która zawiera dwie tabele jedna to table1 która zawiera miejsce startu oraz docelowe a druga table2 która zawiera dodatkowe info. Wiem że moge skorzystać z UNION lecz jak nie wiem jak uporać się z początkiem .

Użytkownik nie ma wymogu wybrania wszystkich opcji może jedynie wybrac 2 państwa.
Pomocy...

Pomoże ktoś?
nikestylex7
Pomogłeś lecz stanąłem na pewnym etapie którego nie potrafię ugryźć, a mianowicie. Użytkownik może wyszukać wszystko po rożnych parametrach tzn: państwo, miasto, kod pocztowy, rodzaj ładunku, id ogłoszenia, nazwa firmy. Problem w tym że jak użytkownik wybierze obojętnie co i tak ma mu pokazać wszystko co jest połączone z tym typem. Nie wiem jak to dokładnie opisać ale się postaram.

użytkownik wybiera wszystko co jest możliwe czyli państwo - miejscowość - kod pocztowy - państwoSecond - miejscowośćSecond - kodpocztowySecond -
nazwa firmy - id ogłoszenia - rodzaj ładunku

Wyświetla mu się 1 ogłoszenie.

Potem próbuje po samych państwach też pokazało mu ogłoszenia tylko z wybranych państw lecz wyświetliło wszystkie informacje jak w przykładnie poniżej.

Potem chciałbym aby jak wybierze samą nazwę firmy , id ogłoszenia lub rodzaj ładunku wyświetlało się też wszystko związane z tym wyborem.

Aktualny przykład działa tylko dla państwo - miejscowość - kod pocztowy - państwoSecond - miejscowośćSecond - kodpocztowySecond nie wiem jak to połączyć żeby działało też jak wybierze się samo nazwa firmy - id ogłoszenia - rodzaj ładunku lub jak będzie chciał wybrać wszystko razem. Nie chce tworzyć ton kodu to zamienników if else if else. Najgorsze jest to że są 3 rodzaje tabel w bazie do których trzeba sie zwrócić i nie wiem jak to połączyć...

Może jakoś mnie nakierujecie mogę pisać głupoty ale robię to już 7h i zmęczyłem oczy... Dzięki za odp.

  1. if(isSet($_POST['search'])) {
  2. echo'Wyniki wyszukiwania :';
  3. $wh = array();
  4. if (!empty($_POST['searchCountry']))
  5. $wh[] = "cargoCountry = '$_POST[searchCountry]' ";
  6.  
  7. if (!empty($_POST['searchPlace']))
  8. $wh[] = "cargoPlace = '$_POST[searchPlace]' ";
  9.  
  10. if (!empty($_POST['searchCode']))
  11. $wh[] = "cargoCode = '$_POST[searchCode]' ";
  12.  
  13. if (!empty($_POST['searchCountrySecond']))
  14. $wh[] = "cargoCountrySecond = '$_POST[searchCountrySecond]'";
  15.  
  16. if (!empty($_POST['searchPlaceSecond']))
  17. $wh[] = "cargoPlaceSecond = '$_POST[searchPlaceSecond]' ";
  18.  
  19. if (!empty($_POST['searchCodeSecond']))
  20. $wh[] = "cargoCodeSecond = '$_POST[searchCodeSecond]'";
  21.  
  22. if (!empty($_POST['searchNoticeID']))
  23. $wh[] = "id = '$_POST[searchNoticeID] '";
  24.  
  25. //if (!empty($_POST['searchCargoType']))
  26. // $wh1[] = "cargoCargoType = '$_POST[searchCargoType]'";
  27.  
  28. //if (!empty($_POST['searchCname']))
  29. //$wh2[] = "cname = '%{$_POST[searchCname]}%'";
  30.  
  31. if (!empty($wh))
  32. $where = 'where '.implode(' and ', $wh);
  33. else
  34. $where = '';
  35.  
  36. //if (!empty($wh1))
  37. //$whereSecond = 'where '.implode(' and ', $wh1);
  38. //else
  39. //$whereSecond = '';
  40.  
  41. //if (!empty($wh2))
  42. //$whereThird = 'where '.implode(' and ', $wh2);
  43. //else
  44. //$whereThird = '';
  45.  
  46. if(empty($_POST['searchCountry']) && empty($_POST['searchPlace']) && empty($_POST['searchCode']) && empty($_POST['searchCountrySecond']) && empty($_POST['searchPlaceSecond']) && empty($_POST['searchCodeSecond']) && empty($_POST['searchNoticeID']) && empty($_POST['searchCargoType']) && empty($_POST['searchCname'])) {
  47. die('Podstawą wyszukiwania jest podanie państwa startu oraz państwa docelowego lub id ogłoszenia bądź nazwy firmy.');
  48. }else {
  49. $sql = 'select * from cargoAdd '.$where;
  50.  
  51. // if(!empty($wh1))
  52. //$sqlSecond = 'select * from cargoAddInfo '.$whereSecond;
  53. //if(!empty($wh2))
  54. //$sqlThird = 'select * from user '.$whereThird;
  55.  
  56. $result=mysql_query($sql);
  57. $obAmount=mysql_num_rows($result);
  58. echo'Znaleziono: '.$obAmount.' ogłoszeń<br /><br />';
  59. for($x=0;$x<$obAmount;$x++)
  60. {
  61. $row=mysql_fetch_assoc($result);
  62. $row2 = $row['id'];
  63. $row3 = $row['userID'];
  64. $question = mysql_query("SELECT * FROM cargoAddInfo WHERE uniqID = '$row2' ");
  65. $rowSecond=mysql_fetch_assoc($question);
  66. $question2 = mysql_query("SELECT * FROM user WHERE id_log = '$row3' ");
  67. $rowThird=mysql_fetch_assoc($question2);
  68. echo $x+1;
  69. echo '. ';
  70. echo $row['cargoCountry']."<br />".$row['cargoPlace']."<br />".$row['cargoCode']."<br />".$row['cargoDatetime']."<br />".
  71. $row['cargoCountrySecond']."<br />".$row['cargoPlaceSecond']."<br />".$row['cargoCodeSecond']."<br />".$row['cargoDatetimeSecond']."<br />".
  72. $rowSecond['uniqID']."<br />".$rowSecond['cargoTypeBuild']."<br />".$rowSecond['cargoCargo']."<br />".$rowSecond['cargoLoadCargo']."<br />".$rowSecond['cargoBid']."<br />".
  73. $rowSecond['cargoCurrency']."<br />".$rowSecond['cargoCheckCargo']."<br />".$rowSecond['cargoWidth']."<br />".$rowSecond['cargoHeight']."<br />".$rowSecond['cargoVolume']."<br />".
  74. $rowSecond['cargoLoadType']."<br />".$rowSecond['cargoCargoType']."<br />".$rowSecond['cargoWhat1']."<br />".$rowSecond['cargoWhat2']."<br />".$rowSecond['cargoWhat3']."<br />".$rowSecond['cargoWhat4']."<br />".
  75. $rowSecond['cargoWhat5']."<br />".$rowSecond['cargoWhat6']."<br />".$rowSecond['cargoWhat7']."<br />".$rowSecond['cargoWhat8']."<br />".$rowSecond['cargoText']."<br />".$rowThird['cname'];
  76. echo'<br />';
  77. }
  78. }
  79. }


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