Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Wyszukiwarka[mysql]
Forum PHP.pl > Forum > Przedszkole
endriut
Witam mam taką tabele :

  1. `id_dane` INT NOT NULL AUTO_INCREMENT ,
  2. `imie` VARCHAR( 20 ) NOT NULL ,
  3. `nazwisko` VARCHAR( 20 ) NOT NULL ,
  4. `ksywka` VARCHAR( 20 ) NOT NULL ,
  5. `miasto` VARCHAR( 30 ) NOT NULL ,
  6. `szkola` VARCHAR( 20 ) NOT NULL ,
  7. `rok` VARCHAR( 20 ) NOT NULL ,
  8. `wojew` VARCHAR( 20 ) NOT NULL ,
  9. `email` VARCHAR( 30 ) NOT NULL ,
  10.  
  11. PRIMARY KEY ( `id_dane` )
  12. );


i chciałbym zrobic do niej wyszukiwarkę na stonie wyszukiwanie na podstawie hasła/haseł : Imienia, Nazwiska, Ksywki, Miasta. Wiem ze nikt mi tego nie napisze i wcale tego nie chcem prosze jedynie o nakierowanie na dobra drogę.


czy to jest dobra droga ?
  1. <?php$Word=$_POST['Word'];?>
  2. <?php$sql="SELECT * FROM tabela where $Search like '%$Word%' ";$result = mysql_query($sql);?>
pink
Cytat(endriut @ 2.09.2007, 16:40:19 ) *
Witam mam taką tabele :

  1. `id_dane` INT NOT NULL AUTO_INCREMENT ,
  2. `imie` VARCHAR( 20 ) NOT NULL ,
  3. `nazwisko` VARCHAR( 20 ) NOT NULL ,
  4. `ksywka` VARCHAR( 20 ) NOT NULL ,
  5. `miasto` VARCHAR( 30 ) NOT NULL ,
  6. `szkola` VARCHAR( 20 ) NOT NULL ,
  7. `rok` VARCHAR( 20 ) NOT NULL ,
  8. `wojew` VARCHAR( 20 ) NOT NULL ,
  9. `email` VARCHAR( 30 ) NOT NULL ,
  10.  
  11. PRIMARY KEY ( `id_dane` )
  12. );


i chciałbym zrobic do niej wyszukiwarkę na stonie wyszukiwanie na podstawie hasła/haseł : Imienia, Nazwiska, Ksywki, Miasta. Wiem ze nikt mi tego nie napisze i wcale tego nie chcem prosze jedynie o nakierowanie na dobra drogę.


czy to jest dobra droga ?
  1. <?php
  2.  
  3. ?>


Mniej więcej, zależy od potrzeb może:

  1. <?php
  2. $strWhere = "'%" . mysql_escape_string($_POST['word']) . "%'";
  3. ?>

  1. SELECT * FROM tabela WHERE (imie LIKE $strWhere OR nazwisko LIKE $strWhere OR ksywka LIKE $strWhere)
endriut
  1. <?php$wysz = array();if (!empty($_POST[&#092;"login\"]))   $wysz[] = 'login = '.$_POST[\"login\"];    if (!empty($_POST[\"nazwisko\"]))   $wysz[] = 'nazwisko = '.$_POST[\"nazwisko\"];     if (!empty($_POST[\"ksywka\"]))     $wysz[] = 'ksywka = '.$_POST[\"ksywka\"];  if (!empty($_POST[\"miasto\"]))   $wysz[] = 'miasto = '.$_POST[\"miasto\"]; if (!empty($_POST[\"rok\"]))    $wysz[] = 'rok = '.$_POST[\"rok\"];      $where = 'where '.implode(' and ', $wysz);else  $where = ''; ?><?php
  1. $sql = mysql_connect ("localhost", "root", "krasnal");mysql_select_db("baza");$wynik = mysql_query("SELECT * FROM dane_uzytk WHERE nazwa LIKE '%$where%'");
a tak może być jak tak to co dalej musze zrobic ?
  1. <?php$wysz = array();if (!empty($_POST[&#092;"imie\"]))   $wysz[] = 'imie = '.$_POST[\"imie\"];    if (!empty($_POST[\"nazwisko\"]))   $wysz[] = 'nazwisko = '.$_POST[\"nazwisko\"];     if (!empty($_POST[\"ksywka\"]))     $wysz[] = 'ksywka = '.$_POST[\"ksywka\"];  if (!empty($_POST[\"miasto\"]))   $wysz[] = 'miasto = '.$_POST[\"miasto\"]; if (!empty($_POST[\"rok\"]))    $wysz[] = 'rok = '.$_POST[\"rok\"];  if (!empty($wysz)) $where = 'where '.implode(' and ', $wysz); else   $where = '';?>
pomocy moze tak byc
  1. $sql = mysql_connect ("localhost", "root", "krasnal"); mysql_select_db("baza");
co dalej
  1. $wynik = mysql_query("SELECT * FROM 'dane_uzytk' WHERE nazwa LIKE '%$where%'"); while ($w = mysql_fetch_array($wynik)) {
bladWarning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in .. on line 6 a w lini 6 while($r=mysql_fetch_array($result))jeszcze tak
  1. <?phpmysql_connect(&#092;"localhost\",\"root\",\"krasnal\"); mysql_select_db(\"baza\"); $search=$_POST[\"search\"];$result = mysql_query(\"SELECT * FROM dane_uzytk WHERE nazwa LIKE '%$search%'\");while($r=mysql_fetch_array($result)){  $nazwa=$r[\"nazwa\"];  echo '$nazwa'; ;}?>
ten sam błąd nie widzę błędu a jest on oczywisty. Bardzo proszę Was o pomoc!
strife
Spróbuj takie zapytanie, (pisane z palca)

  1. <?php
  2. $word = $_POST['word'];
  3. $query = mysql_query("SELECT * FROM 'dane_uzytk' WHERE imie LIKE %".$word."% OR nazwisko LIKE %".$word."% OR ksywka LIKE %".$word."%");
  4. // dalsze instrukcje
  5. ?>
endriut
  1. <?php
  2.  
  3.  
  4.  
  5. echo'SEARCH RESULTS <br/>'; 
  6.  
  7. $_POST['what']=trim($_POST['what']); 
  8.  
  9. if(empty($_POST['what'])) 
  10.  
  11. die('Search string is empty. Please try again'); 
  12.  
  13. else 
  14. { 
  15.  
  16.  
  17. $what = $_POST['what'];
  18.  
  19. mysql_connect("localhost","root","krasnal");
  20. mysql_select_db("absolwenci");
  21.  
  22. // $query = mysql_query("SELECT * FROM 'dane_uzytk' WHERE imie LIKE %".$what."% OR nazwisko LIKE %".$what."% OR ksywka LIKE %".$what."%");
  23.  
  24. $query= "Select * From dane_uzytk Where imie Like '%{$_POST['what']}%' Or nazwisko Like '%{$_POST['what']}%' Or ksywka Like '%{$_POST['what']}%' Or szkola Like '%{$_POST['what']}%' Or rok Like '%{$_POST['what']}%'"; 
  25.  
  26.  
  27.  
  28.  
  29. $result= mysql_query($query); 
  30. echo'There is search results<br/><br />'; 
  31.  
  32. $row= mysql_fetch_array ($result); 
  33.  
  34. $imie = $row["imie"];
  35. $nazwisko = $row["nazwisko"]; 
  36. $ksywka = $row["ksywka"]; 
  37. $szkola = $row["szkola"]; 
  38. $rok = $row["rok"]; 
  39.  
  40.  
  41. echo "<table>"; 
  42. echo "<tr><td>imie = $imie</td>
  43. <td>nazwisko= $nazwisko</td>
  44. <td>ksywka = $ksywka</td>
  45. <td>szkola = $szkola</td></tr>"; 
  46.  
  47.  
  48. } 
  49.  
  50.  
  51. ?>


zrobiłem i działa ale jak teraz zrobić zeby wyświetlało mi wszystkie wyniki a nie jeden
strife
Cytat
zrobiłem i działa ale jak teraz zrobić zeby wyświetlało mi wszystkie wyniki a nie jeden

Poczytać manuala, mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual.
endriut
heh zrobiłem smile.gif

i kolejny problem

jak skonstuowac pytanie zeby mi jakos odzielało słowa,
teraz gdy wpisze razem imie z nazwiskiem logicznie nic nie znajdzie,
co zrobić ?
pink
Cytat(endriut @ 3.09.2007, 16:45:21 ) *
heh zrobiłem smile.gif

i kolejny problem

jak skonstuowac pytanie zeby mi jakos odzielało słowa,
teraz gdy wpisze razem imie z nazwiskiem logicznie nic nie znajdzie,
co zrobić ?


Zrobić dwa osobne pola w formularzu?
I poczytaj sobie o mysql_escape_string() albo chociaż addslashes()
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.