Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [php][mysql] wyszukiwarka
Forum PHP.pl > Forum > Przedszkole
kalafoon
witam smile.gif
jesli ktos m trozek czasu to prosze o pomoc w skrypcie wyszukiwania.
Mam 2 pola input. Chce zeby wyszukiwarka szukala czesci wspolnej czyli zapytania w bazie sa pomiedzy AND.
Ale nie dziala - gdy wpisze samo ID to wyszukuje, gdy wypelnie oba pola to wyszukuje, ale gdy wpisuje tylko slowo w inpucie phrase to nie znajduje nic :/ tak jakby szukal phrase+puste id.
Chce zeby dzialalo to tak: koles wpisuje tylko ID - daje szukaj i jest. Potem wpisuje samo slowo kluczowe i znajduje. A trzecia opcja to gdy sie wpisze ID i slowo to znajdzie jeden rekord z dokladnie takimi danymi.

Bardzo prosze o pomoc jesli ktos znajdzie chwilke czasu...pozdrawiam

  1. <?
  2. include ("polaczenie.php");
  3.  
  4. echo '
  5. <head>
  6. <link rel="Stylesheet" type="text/css" href="style.css"/>
  7. </head>
  8. <body>
  9. <div id="usuwanie">';
  10.  
  11. '<table>
  12.  <tr>
  13.  <td class="temat" colspan="7">USUÑ PRODUKT</td>
  14.  </tr>
  15.  
  16.  <tr>
  17.  <td class="podtemat" colspan="1">
  18. <a class="link_zolty" href="javascript:location.reload()">Od¶wie¿</a>
  19. </td>
  20. <td class="podtemat" colspan="2">';
  21. $resultat = mysql_query('SELECT * FROM produkty'); 
  22. $num_rows = mysql_num_rows($resultat); 
  23.  echo 'Liczba produktów w bazie: '.$num_rows.'';
  24.  echo '</td>
  25.  
  26.  <td class="podtemat" colspan="1">';
  27. $result=mysql_query("Select * From produkty Where ID_Produktu='$id' And NazwaProduktu Like '%$phrase%'") or die ("Zapytanie niepoprawne");
  28.  $obAmount=mysql_num_rows($result);
  29.  
  30. echo '
  31. </td>
  32.  
  33.  
  34.  <td class="podtemat" colspan="3">
  35.  
  36.  <form action="produkty_szukanie.php" method="POST">
  37. Wyszukaj produkt: <input type="text" name="phrase"/>
  38. ID: <input type="text" name="id" />
  39. <input type="submit" value="Szukaj"/>
  40.  
  41.  </form>
  42.  </td>
  43.  </tr>
  44.  
  45.  <tr>
  46.  <td class="opcje">ID</td>
  47.  <td class="opcje">Nazwa</td>
  48.  <td class="opcje">Opis</td>
  49.  <td class="opcje">Cena</td>
  50.  <td class="opcje">Cena na wy³±czno¶æ</td>
  51.  <td class="opcje">Data dodania</td>';
  52.  
  53. $styl="baza";
  54. for($x=0;$x<$obAmount;$x++)
  55. {
  56.  if ($styl=="baza") {
  57.  $styl="baza2"; }
  58.  else { $styl="baza";}
  59.  
  60. echo '<tr>';
  61. $row=mysql_fetch_assoc($result);
  62. echo '<td class="'.$styl.'">';
  63.  echo $row['ID_Produktu'];  
  64. echo '</td>';
  65. echo '<td class="'.$styl.'">';
  66.  echo $row['NazwaProduktu'];
  67. echo '</td>';
  68. echo '<td class="'.$styl.'">';
  69.  echo $row['InfoMale'];
  70. echo '</td>';
  71.  echo '<td class="'.$styl.'">';
  72.  echo $row['Cena'];
  73. echo '</td>';
  74.  echo '<td class="'.$styl.'">';
  75.  echo $row['CenaNaWylacznosc'];
  76. echo '</td>';
  77.  echo '<td class="'.$styl.'">';
  78.  echo $row['DataDodania'];
  79. echo '</td>
  80.  </tr>';
  81. }
  82. echo'</tr> 
  83. <tr>
  84. <td class="stopka" colspan="7">
  85. </td>
  86. </tr>
  87. </table>
  88. </body>';
  89.  
  90. ?>
nospor
warunki do zapytania musisz budowac dynamicznie na podstawie tego co otrzymasz z forma
http://forum.php.pl/index.php?showtopic=34450&st=0
kalafoon
ok dzieki za nakierowanie. Tylko ze nie wiem jak to przelozyc na moj skrypt bo nie wiem czy te zmienne ktore s± w przykladzie $warunek, $sql itp nie sa powiazane z jakims kodem wczesniej a podstawilem i nie dziala sad.gif ... moglys mi z tym pomoc ?

pozdrawiam
nospor
to pokaz jak to zrobiles po przerobce a ja ci powiem co masz ¼le.
kalafoon
  1. <?php
  2. if ($id)
  3.  $result = 'ID_Produktu = $id';
  4. if ($phrase)
  5.  $wh[] = 'NazwaProduktu = %$phrase%';
  6. // if (tutaj nie wiem co wpisac w warunku)
  7.  $wh[] = '%$phrase% and $id';  
  8. //.....
  9. if (!empty($wh))
  10.  $where = 'where '.implode(' and ', $wh);
  11. else
  12.  $where = '';
  13.  
  14. $sql = 'select * from produkty '.$where;
  15. ?>


to oczywscie dotyczy kodu co dalem na poczatku...zamiast zapytania
  1. <?php
  2. $result=mysql_query("Select * From produkty Where ID_Produktu='{$_POST['id']}' And NazwaProduktu Like '%{$_POST['phrase']}%'") or die ("Zapytanie niepoprawne");
  3. $obAmount=mysql_num_rows($result);
  4. ?>
nospor
Wogole nie zaczailes oco biega
  1. <?php
  2. if (!empty($_POST['phrase']))
  3.  $wh[] = 'NazwaProduktu = '%'.$_POST['phrase'].'%'';
  4. if (!empty($_POST['id']))
  5.  $wh[] = 'ID_Produktu='.$_POST['id'];  
  6. //.....
  7. ?>
kalafoon
kurcze nie dziala mi to :/
teraz moj plik wyglada tak: co jest zle ? sad.gif

  1. <?
  2. include ("polaczenie.php");
  3.  
  4. echo '
  5. <head>
  6. <link rel="Stylesheet" type="text/css" href="style.css"/>
  7. </head>
  8. <body>
  9. <div id="usuwanie">';
  10.  
  11. '<table>
  12.  <tr>
  13.  <td class="temat" colspan="7">USUÑ PRODUKT</td>
  14.  </tr>
  15.  
  16.  <tr>
  17.  <td class="podtemat" colspan="1">
  18. <a class="link_zolty" href="javascript:location.reload()">Od¶wie¿</a>
  19. </td>
  20. <td class="podtemat" colspan="2">';
  21. //$resultat = mysql_query('SELECT * FROM produkty'); 
  22. //$num_rows = mysql_num_rows($resultat); 
  23.  //echo 'Liczba produktów w bazie: '.$num_rows.'';
  24.  echo '</td>
  25.  
  26.  <td class="podtemat" colspan="1">';
  27.  
  28. if (!empty($_POST['phrase'])) 
  29.  $wh[] = 'NazwaProduktu = '%'.$_POST['phrase'].'%'';
  30. if (!empty($_POST['id'])) 
  31.  $wh[] = 'ID_Produktu='.$_POST['id']; 
  32. if (!empty($wh)) 
  33.  $where = 'where '.implode(' and ', $wh); 
  34.  else 
  35.  $where = ''; 
  36.  
  37.  $result = 'select * from produkty '.$where;
  38.  $obAmount=mysql_num_rows($result);
  39.  
  40. //  $result=mysql_query("Select * From produkty Where ID_Produktu='{$_POST['id']}' And NazwaProduktu Like '%{$_POST['phrase']}%'") or die ("Zapytanie niepoprawne");
  41. //  $obAmount=mysql_num_rows($result);
  42.  
  43. echo '
  44. </td>
  45.  
  46.  
  47.  <td class="podtemat" colspan="3">
  48.  
  49.  <form action="produkty_szukanie.php" method="POST">
  50. Wyszukaj produkt: <input type="text" name="phrase"/>
  51. ID: <input type="text" name="id" />
  52. <input type="submit" value="Szukaj"/>
  53.  
  54.  </form>
  55.  </td>
  56.  </tr>
  57.  
  58.  <tr>
  59.  <td class="opcje">ID</td>
  60.  <td class="opcje">Nazwa</td>
  61.  <td class="opcje">Opis</td>
  62.  <td class="opcje">Cena</td>
  63.  <td class="opcje">Cena na wy³±czno¶æ</td>
  64.  <td class="opcje">Data dodania</td>';
  65.  
  66. $styl="baza";
  67. for($x=0;$x<$obAmount;$x++)
  68. {
  69.  if ($styl=="baza") {
  70.  $styl="baza2"; }
  71.  else { $styl="baza";}
  72.  
  73. echo '<tr>';
  74. $row=mysql_fetch_assoc($result);
  75. echo '<td class="'.$styl.'">';
  76.  echo $row['ID_Produktu'];  
  77. echo '</td>';
  78. echo '<td class="'.$styl.'">';
  79.  echo $row['NazwaProduktu'];
  80. echo '</td>';
  81. echo '<td class="'.$styl.'">';
  82.  echo $row['InfoMale'];
  83. echo '</td>';
  84.  echo '<td class="'.$styl.'">';
  85.  echo $row['Cena'];
  86. echo '</td>';
  87.  echo '<td class="'.$styl.'">';
  88.  echo $row['CenaNaWylacznosc'];
  89. echo '</td>';
  90.  echo '<td class="'.$styl.'">';
  91.  echo $row['DataDodania'];
  92. echo '</td>
  93.  </tr>';
  94. }
  95. echo'</tr> 
  96. <tr>
  97. <td class="stopka" colspan="7">
  98. </td>
  99. </tr>
  100. </table>
  101. </body>';
  102.  
  103. ?>
nospor
'select * from produkty '.$where; - to jest zapytanie. Musisz je jeszczy wykonac przy uzyciu mysql_query() i dalej obsluzyc tak jak miales do tej pory.
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.