Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] Wyszukiwanie
Forum PHP.pl > Forum > Przedszkole
asdcc
Witam. Zacząłem interesować się PHP. Napisałem wyszukiwarkę.

  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%'";
  3. ?>


To jest kod wyszukujący z bazy podane słowa, ale wyszukuje tylko w tytul. Chcialbym, zeby wyszukiwalo takze w: tresc, tresc_cd i kom. Próbowałem wszelkich sposobów, pogooglowalem, poszukalem na forum, ale niestety nic. Proszę o pomoc.
fotex
  1. <?php
  2.  
  3. if (!$_POST[podstawaszukania] || !$_POST[haslo] ) 
  4. { 
  5. print "Nie zostało wpisane żadne hasło do wyszukiwarki";
  6. exit; 
  7.  } 
  8.  
  9. $podstawaszukania = $_POST[podstawaszukania]; 
  10.  $haslo= $_POST[haslo];
  11. @$db = mysql_pconnect("localhost", "myszcz01_aukcja", "komiszke");
  12. if (!$db) 
  13.  { 
  14. print "wystąpił błąd w połączeniu"; 
  15. exit; 
  16.  } 
  17.  
  18. mysql_select_db("myszcz01_aukcja"); 
  19.  
  20. $query = "select * from lance_jobs where ".$podstawaszukania." like '%".$haslo."%'"; 
  21. $result = mysql_query($query); 
  22.  $num_results = mysql_num_rows($result); 
  23.  print "<a href='index.php'>Wstecz</a>";
  24. print "<center><p><font size='5'>Ilość znalezionych: ".$num_results."</font></p></center>"; 
  25. print "<center><table width='800' border='0'>";
  26. print "<tr bgcolor='#E1E1E1'><td width='100'><font color='red'>Tytuł</font></td>";
  27. print "<td width='157'><font color='red'>Wojew&oacute;dztwo</font></td>";
  28. print "<td width='221'><font color='red'>Opis</font></td></tr>";
  29. for ($i=0; $i <$num_results; $i++) { 
  30.  $row = mysql_fetch_array($result); 
  31. print "<tr>";
  32. print "<td style='border:none;'>";
  33. print stripslashes($row ["job_title"]);
  34. print "</td>";
  35. print "<td style='border:none;'>";
  36. print stripslashes($row["job_country"]);
  37. print "</td>";
  38. print "<td style='border:none;'>";
  39. print stripslashes($row["job_desc"]);
  40. print "</td></center>";
  41. }
  42. ?>

to jest przykład jaki zastosowałem u siebie.Wyszukuje wg różnych kryteriów
asdcc
Dobrze, ale jak ktoś zaznaczy: Wszystkie? To jak mam to wpisać? Własnie tego nie wiem. Czy np.


  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul OR tresc LIKE '%$searchterms%'"
  3. ?>


Tego nie wiem. Jak tak wpisuje, nieststye nie pokazuje nic, ani błędu, ani wyników, chociaż one są.
fotex
Podaj strukture bazy, bo tak w ciemno to ciezko okreslic:)Ps: to jest cały kod skryptu?
asdcc
  1. <?
  2.  
  3.  
  4.  
  5. $searchterms = $_POST['searchterms'];
  6.  
  7. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%'";
  8. $result = mysql_query($query);
  9. while($r = mysql_fetch_array($result)){
  10.  
  11. echo''.$r['tresc'].'';
  12.  
  13. }
  14.  
  15.  
  16.  
  17.  
  18. ?>


Oto cały kod. Jest jeszcze pole szukania. A wyżej łączy się z bazą. W tym momencie wyszukuje tylko w kolumnie tytuł. A ja chce, zeby i w tresc i tresc_cd smile.gif
fotex
  1. <?php
  2. $searchterms = $_POST['searchterms'];
  3.  
  4. $query = &#092;"SELECT * FROM news WHERE tresc_cd OR tresc LIKE '%$searchterms%'\";
  5. $result = mysql_query($query);
  6. while($r = mysql_fetch_array($result)){
  7.  
  8. echo''.$r['tresc'].'';
  9. echo''.$r['tresc_cd'].'';
  10.  
  11. }
  12. ?>



Takie rozwiązanie ci nie działa?
asdcc
Własnie nie.
phpion
Cytat(fotex @ 20.12.2007, 19:11:38 ) *
]
Takie rozwiązanie ci nie działa?

A tobie działa? Nie ma prawa.

  1. <?php
  2. $query = "SELECT * FROM news WHERE tytul LIKE '%$searchterms%' OR tresc_cd LIKE '%$searchterms%'";
  3. ?>
fotex
No właśnie teraz zdałem sobie sprawe po twoim poście że wprowadzam go w błąd:)Oczywiście phpion.com ma racje
asdcc
Dziękuję Wam bardzo. Działa smile.gif

Witam. Mam do Was jeszcze jedno pytanie, a nie będę zaśmiecał forum kolejnym tematem. Mianowicie: czy można wyciągnąć z bazy tylko pierwsze 40 liter danego pola? Np tresc:

  1. <?php
  2. $zapytanie = "SELECT tresc FROM news";
  3. ?>


Co tu trzeba by dodać, aby wyciągane były tylko pierwsze 40 znaków TRESC. I czy to w ogóle możliwe.

Z góry dziękuję za odpowiedź, pozdrawiam.
drPayton
funkcja LEFT(), czyli w Twoim przykładzie:
  1. <?php
  2. $zapytanie = "SELECT LEFT(`tresc`, 40) FROM `news`";
  3. ?>
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.