Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> formularz wyszukiwarki aut blad przy wyszukiwaniu po kilku polach, gdy wyszukuje auta po marce to dziala gdy po marce i roku produkcji ni
Murek1993
post 23.04.2012, 11:39:08
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.04.2012

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


Witam mam problem mam baze aut i chce je wyszukiwac po polach marka, rokprodukcji ,cenaminimalna-cenamaksymaln. Ale gdy akceptuje on 1 kryterium to reszty nie , te $ first sprawdza czy pole 1 jest ustawione czyli czy dodawac "and" analizawalem kod i nie wiem gdzie blad , dodatkowo dam tabele z mysql pojazdy


  1. $dbc=mysqli_connect('localhost', 'root', '', 'komis');
  2.  
  3. if(isset($_POST['submitted'])){
  4.  
  5. $ask="select * from pojazdy";
  6. $ask.=" where ";
  7. if(isset($_POST['marka']) and !empty($_POST['marka'])){
  8. $first=true;
  9. $ask.="marka like '%{$_POST['marka']}%'";}
  10. if(isset($_POST['rokprodukcji'])){
  11. if(isset($first) and ($first)){
  12. $ask.=" and ";
  13. $first=true;
  14. }
  15. $ask.="rok_produkcji like '%{$_POST['rokprodukcji']}%'";}
  16. if(isset($_POST['cenamin'])){
  17. if(isset($first) and ($first)){
  18. $ask.=" and ";
  19. $first=true;
  20. }
  21. $ask.="cena>= '%{$_POST['cenamin']}%'";}
  22. if(isset($_POST['cenamax'])){
  23. if(isset($first) and ($first)){
  24. $ask.=" and ";
  25. $first=true;
  26. }
  27. $ask.="cena<= '%{$_POST['cenamax']}%'";}
  28.  
  29. $ask.=";";
  30. /* if (isset($_POST['marka'])) $marka=$_POST['marka'];
  31. if (isset($_POST['kryterium'])) $kryterium=$_POST['kryterium'];
  32.  
  33. if (!empty($kryterium)){
  34. $dbc=mysqli_connect('localhost', 'root', '', 'komis');
  35. $q="Select * from ksiazki where ".$metoda." like '%".strtoupper($kryterium)."%'"; */
  36. $w=mysqli_query($dbc, $ask);
  37. echo '<h1>Auta spelniajace kryteria</h1>';
  38. echo '<table border="1">';
  39. while($row=mysqli_fetch_array($w)){
  40. echo '<tr>';
  41. /*echo "<td>$row[0]</td>";
  42. echo "<td>$row[1]</td>";*/
  43. for($j=0; $j<13; $j++){
  44. echo "<td>$row[$j]</td>";
  45. }
  46. echo '</tr>';
  47. }
  48. echo '</table>';
  49. mysqli_free_result($w);
  50. mysqli_close($dbc);
  51. }/* else {
  52. echo '<h1>Nie wypełniłeś wszystkich pól formularza</h1>';
  53. }*/
  54.  
  55. ?>


  1. <h1>Wyszukiwanie Aut</h1>
  2. <form action="carsearcher.php" method="post">
  3. <p>
  4. <label for="marka">Wpisz marke</label>
  5. <input type="text" name="marka" value="" />
  6. </p>
  7. <p>
  8. <label for="rokprodukcji">Wpisz rok produkcji</label>
  9. <input type="text" name="rokproduckji" value="" />
  10. </p>
  11. <p>
  12. <label for="cena">Wpisz zakres cenowy</label> min
  13. <input type="text" name="cenamin" value="" />max
  14. <input type="text" name="cenamax" value="" />
  15. </p>
  16.  
  17. <p>
  18. <input type="hidden" name="submitted" value="true" />
  19. <input type="submit" value="Wyszukaj" />
  20. </p>
  21. </form>
  22.  
  23. </body>
  24. </html>
  25. <h1>Wyszukiwanie Aut</h1>
  26. <form action="carsearcher.php" method="post">
  27. <p>
  28. <label for="marka">Wpisz marke</label>
  29. <input type="text" name="marka" value="" />
  30. </p>
  31. <p>
  32. <label for="rokprodukcji">Wpisz rok produkcji</label>
  33. <input type="text" name="rokproduckji" value="" />
  34. </p>
  35. <p>
  36. <label for="cena">Wpisz zakres cenowy</label> min
  37. <input type="text" name="cenamin" value="" />max
  38. <input type="text" name="cenamax" value="" />
  39. </p>
  40.  
  41. <p>
  42. <input type="hidden" name="submitted" value="true" />
  43. <input type="submit" value="Wyszukaj" />
  44. </p>
  45. </form>
  46.  
  47. </body>
  48. </html>


  1. CREATE TABLE pojazdy(
  2. id_pojazdu smallint(4) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. id_sprzedajacego smallint(4) UNSIGNED NOT NULL,
  4. marka varchar(20) NOT NULL,
  5. model varchar(20) NOT NULL,
  6. typ_nadwozia varchar(10) NOT NULL,
  7. rodzaj_paliwa varchar(12)NOT NULL,
  8. pojemnosc_silnika varchar(8) NOT NULL,
  9. moc varchar(5),
  10. kolor varchar (10),
  11. rok_produkcji year NOT NULL,
  12. przebieg mediumint(6) UNSIGNED,
  13. typ_napedu varchar (8) ,
  14. cena mediumint(6) UNSIGNED NOT NULL,
  15. STATUS varchar(15) NOT NULL,
  16. PRIMARY KEY(id_pojazdu),
  17. INDEX (rok_produkcji),
  18. INDEX (marka),
  19. INDEX (cena));
  20. INSERT INTO pojazdy VALUES (NULL,22,'Opel','Astra','kombi','diesel','1900','150','czarny','2008',160000,'przod',28999,'niesprzedany');
  21. INSERT INTO pojazdy VALUES (NULL,23,'Alfa Romeo','156','Sedan','benzyna','2000','150','czarny','2000',90000,'przod',5200,'niesprzedany');
  22. INSERT INTO pojazdy VALUES (NULL,24,'BMW','E46','Sedan','diesel','2000','150','srebrny','2002',137100,'tyl',23500,'niesprzedany');
  23. INSERT INTO pojazdy VALUES (NULL,25,'Volkswagen','Passat','Sedan','benzyna','1595','75','niebieski','1996',278000,'przod',8499,'niesprzedany');
  24. INSERT INTO pojazdy VALUES (NULL,26,'Jaguar','X-type','kombi','diesel','2000','131','zielony','2004',168000,'tyl',20900,'niesprzedany');
  25. INSERT INTO pojazdy VALUES (NULL,22,'Ford','Mondeo_4','sedan','benzyna','2521','220','niebieski','2010',1000,NULL,50000,'niesprzedany');
  26. INSERT INTO pojazdy VALUES (NULL,22,'BMW','x5_E70','SUV','benzyna','2993','235','szary','2007',1700,NULL,32800,'niesprzedany');
  27.  
  28.  
  29. INSERT INTO pojazdy VALUES (NULL,1,'Honda','Civic','Sedan','benzyna','1500','150','czarny','1998',105000,'przod',8500,'sprzedany');
  30. INSERT INTO pojazdy VALUES (NULL,2,'Citroen','c5','kombi','diesel','2000','138','zloty','2008',141747 ,'przod',41900,'sprzedany');
  31. INSERT INTO pojazdy VALUES (NULL,3,'Opel','Frontera','terenowy','diesel','2500',NULL,NULL,'1996',180000,'4x4',11000,'sprzedany');
  32. INSERT INTO pojazdy VALUES (NULL,4,'Opel','Vectra B','Hatchback','benzyna','1600',NULL,'grafitowy','1996',172000,'przod',7000,'sprzedany');
  33. INSERT INTO pojazdy VALUES (NULL,5,'Volkswagen','Golf IV','Hatchback','diesel','1900','101','niebieski','2005',178600,'przod',18600,'sprzedany');
  34. INSERT INTO pojazdy VALUES (NULL,6,'Volkswagen','Touran','Van','diesel','1900','105','srebrny','2007',188200,'przod',38500,'sprzedany');
  35. INSERT INTO pojazdy VALUES (NULL,7,'Land Rover','Freelander','SUV','diesel','2000','112','czarny','2003',159000,'4x4',24900,'sprzedany');
  36. INSERT INTO pojazdy VALUES (NULL,8,'BMW','320','Sedan','diesel','2000','163','srebrny','2006',183000,'tyl',34500,'sprzedany');
  37. INSERT INTO pojazdy VALUES (NULL,9,'Mazda','6','kombi','diesel','2000','140','czarny','2008',144000,'przod',45900,'sprzedany');
  38. INSERT INTO pojazdy VALUES (NULL,10,'Audi','A4','kombi','diesel','2500','163','srebrny','2003',256000,'przod',25500,'sprzedany');
  39.  
  40. INSERT INTO pojazdy VALUES (NULL,11,'Hyundai','i40','Sedan','benzyna','1999','178','srebrny','2012',10,'przod',78075,'sprzedany');
  41. INSERT INTO pojazdy VALUES (NULL,12,'Opel','Corsa_D','VAn','diesla','1248','75','zolty','2009',13075,NULL,43860,'sprzedany');
  42. INSERT INTO pojazdy VALUES (NULL,13,'Nissan','Note','Minivan','benzyna','1386','88','czarny','2006',33300,NULL,22800,'sprzedany');
  43. INSERT INTO pojazdy VALUES (NULL,14,'BMW','Z4_E89','roadster','benzyna','1997','184','czarny','2010',2700,NULL,70800,'sprzedany');
  44. INSERT INTO pojazdy VALUES (NULL,15,'Ford','Mondeo_4','sedan','benzyna','2521','220','niebieski','2010',3000,NULL,50000,'sprzedany');
  45. INSERT INTO pojazdy VALUES (NULL,16,'Mercedes','CL_W215','Coupe','benzyna','5980','612','srebrny','2006',4500,'4kola',39000,'sprzedany');
  46.  
  47. INSERT INTO pojazdy VALUES (NULL,17,'Ford','Focus','Sedan','benzyna','1599','101','srebrny','2006',107000,'przod',19999,'sprzedany');
  48. INSERT INTO pojazdy VALUES (NULL,18,'Peugeot','307','Hatchback','diesel','2000','90','srebrny','2004',160000,'przod',14200,'sprzedany');
  49. INSERT INTO pojazdy VALUES (NULL,19,'Nissan','Navara','Pickup','benzyna+gaz','4000','270','srebrny','2007',10000,'4x4',44900,'sprzedany');
  50. INSERT INTO pojazdy VALUES (NULL,20,'Mercedes','E320','Sedan','diesel','3200','197','srebrny','2002',220000,'przod',24500,'sprzedany');
  51. INSERT INTO pojazdy VALUES (NULL,21,'Toyota','RAV4','SUV','benzyna','1998','150','niebieski','2003',106000,'4x4',24900,'sprzedany');
  52.  
  53.  


Ten post edytował Murek1993 23.04.2012, 11:41:40
Go to the top of the page
+Quote Post
bebzon_hc
post 23.04.2012, 13:02:27
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 10.02.2011
Skąd: Rawicz

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


Robiłem niedawno coś podobnego... mam chyba mniej inwazyjny kod.

  1. /* START - DYNAMICZNE ZAPYTANIE MySQL */
  2. $zapytanie = "SELECT
  3. oc.id_order,
  4. DATE_FORMAT(oc.date, '%d-%m-%Y') AS date,
  5. DATE_FORMAT(oc.date, '%H:%i') AS time,
  6. u.name,
  7. u.surname,
  8. c.firm_name,
  9. m.module_name,
  10. oc.edition_number,
  11. oc.newspapers
  12. FROM orders_current AS oc
  13. INNER JOIN users AS u ON oc.users_id_user = u.id_user
  14. INNER JOIN clients AS c ON oc.clients_id_client = c.id_client AND u.offices_id_office = ".$_SESSION['offices_id_office']."
  15. INNER JOIN modules AS m ON oc.modules_id_module = m.id_module
  16. WHERE ";
  17.  
  18. $where = array();
  19. if (!empty($_POST['on_off_name'])) { $where[] = "c.firm_name LIKE '%".$_POST['firm_name']."%'";};
  20. if (!empty($_POST['on_off_nip'])) { $where[] = "c.nip LIKE '%".$_POST['nip']."%'";};
  21. if (!empty($_POST['on_off_date'])) { $where[] = "oc.date LIKE '".$_POST['date']."%'";};
  22. if (!empty($_POST['on_off_user'])) { $where[] = "oc.users_id_user LIKE '".$_POST['id_user']."'";};
  23. $zapytanie .= implode(' AND ', $where);
  24. $zapytanie .= ";";
  25. /* KONIEC - DYNAMICZNE ZAPYTANIE MYSQL */


Ten post edytował bebzon_hc 23.04.2012, 13:03:41
Go to the top of the page
+Quote Post
Murek1993
post 23.04.2012, 20:33:40
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 23.04.2012

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


małe zainteresowanie watkiem to dam ze pomogl , chodz kod musze rozwiklac bardziej ten twój
Go to the top of the page
+Quote Post
bebzon_hc
post 24.04.2012, 09:51:11
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 10.02.2011
Skąd: Rawicz

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


kod który wrzuciłem buduje samo zapytanie mysql. Musisz jesczze wrzucic to do funkcji mysql_query. Każdy "if" to jedno kryterium (pole w formularzu - u Ciebie np. cena min, cena max, marka, itp.) według którego wyszukujesz. Mnie też ktoś z tym pomógł hehehe więc sumienie mnie ruszyło smile.gif

Ten post edytował bebzon_hc 24.04.2012, 09:54:12
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 Wersja Lo-Fi Aktualny czas: 25.04.2024 - 13:20