Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MySQL] Prosta wyszukiwarka z mysql'a
Forum PHP.pl > Forum > Przedszkole
Vitoss
Chciałbym stworzyć wyszukiwarkę, która wyszukiwałaby wpisy z tabeli article, z pól: id, name oraz article

W tym celu tworzymy formularzyk:
  1. <form method="post">
  2. <input type="text" name="szukaj">
  3. <input type="submit" name="submit">
  4. </form>


No i teraz to, co tygryski lubią najbardziej, czyli dłubaninka z MySQL'em... a tu taki tygrysek jak ja ma problemy sadsmiley02.gif Jak stworzyć prosty kod, który pobierze wyniki i wyświetli je na stronie?
skowron-line
  1. <?php
  2. $zapytanie = "SELECT costam FROM artykul WHERE id = '".$szukaj."'";
  3. $query = mysql_query($zapytanie);
  4. while($wiersz = mysql_fetch_array($query))
  5. {
  6. echo"".$wiersz['costam']."";
  7. }
  8. ?>


pisane z palca wiec moze byc cos kicha ale mozesz tez uzyc LIKE

pzdr
Joachim Peters
Lepiej zrobić to własnie na LIKE:
  1. <?php
  2. $sql = "SELECT id, name, article FROM article WHERE LIKE name = '%".$text."%'";
  3. $result = @mysql_query($sql);
  4. while($wiersz = mysql_fetch_array($result))
  5.  {
  6.  
  7. echo $wiersz['name'];
  8.  
  9.  }
  10. ?>
skowron-line
d@ro
Cytat
$sql = "SELECT id, name, article FROM article WHERE LIKE name = '%".$text."%'";


powinno byc chyba tak

  1. <?php
  2. $sql = "SELECT id, name, article FROM article WHERE name LIKE '%".$text."%'"
  3. ?>
Vitoss
Dzięki za odpowiedzi, jednak wyświetla się błąd sad.gif


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/serw/public_html/chrumszuk.php on line 25


W linii 25 jest:
  1. <?php
  2. while($wiersz = mysql_fetch_array($result))
  3. ?>
skowron-line
  1. <?php
  2. $zapytanie = "SELECT costam FROM artykuly WHERE name like "%$slowo%" ";
  3. $query = mysql_query( $zapytanie );
  4. while($wiersz = mysql_fetch_array($query))
  5. {
  6. echo" ".$wiersz['costam']." ";
  7. }
  8. ?>

zobacz tak
revyag
Zrób
  1. <?php
  2. ?>
po mysql_query, bo wygląda to tak jakby zapytanie się źle wykonywało.
Vitoss
Dzięki, poprawiłem - okazało się, że przez własną głupotę nie dodałem jednej literki w nazwie tabeli tongue.gif

Wszystko pięknie, tylko mam jeden malutki problemik - mianowicie jak otwieram stronę, to już wyświetla mi wszystkie wpisy z tabeli - a wyszukiwarka działa prawidłowo... Jak zrobić, żeby tych wpisów na początku nie było?
skowron-line
pole na wpisanie szukanego slowa i submit i jak nacisniesz submita i bedzie wypelnione pole to poszuka w bazie i wyswietli czyli mniej wiecej cos takiego


  1. <?php
  2. echo"<input type=text name=znajdz value=10>
  3. <input type=submit name=szukaj value=szukaj>";
  4.  
  5. if(isset($szukaj))
  6. {
  7. if(empty($znajdz))
  8. {
  9. echo'puste';
  10. }
  11. else
  12. {
  13. //twoje zapytanie i jego wynik
  14. }
  15. }
  16. ?>

pzdr
Vitoss
Poprawiłem nazwy pól z formularzy i wszyyyyyyystko pięknie śmiga guitar.gif

Dziękuję bardzo, naprawdę jestem Wam wdzięczny! biggrin.gif
Joachim Peters
Cytat(skowron-line @ 7.06.2006, 22:35 ) *
  1. <?php
  2. while($wiersz = mysql_fetch_array($query))
  3. {
  4. echo" ".$wiersz['costam']." ";
  5. }
  6. ?>

nie można tak? ;|

  1. <?php
  2. while($wiersz = mysql_fetch_array($query))
  3. {
  4. echo $wiersz['costam'];
  5. }
  6. ?>
skowron-line
d@ro to zrob tak i zobacz co bedzie metoda prob i bledow to najlepszy sposob na nauke
Vitoss
A jeszcze takia kwestia winksmiley.jpg Jak zrobić, żeby przy okazji w wynikach wyszukiwania była widoczna nazwa kategorii? Kategorie są wpisane w tabeli kategorie i ich nazwy w polu nazwa?
erix
przyklad: system newsow, pobiera nazwe uzytkownika z innej tabeli na podstawie id
  1. SELECT news.ID, news.title, news.DATA, news.author, users.nick FROM news, users WHERE users.ID = news.author ORDER BY news.DATA
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.