Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wyszukiwarka na stronie
badowl
post 19.11.2011, 21:51:19
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Witam. Staram się napisać wyszukiwarkę która wyszuka w bazie danych pośród tytułów i artykułów żądaną frazę.
  1. <form method="get" action="<?=$_SERVER['PHP_SELF']?>">
  2. <input type="text" name="word" />
  3. <input type="submit" value="Szukaj" />
  4. </form>
  5. <?php
  6. mysql_connect("localhost", "user", "password") or die(mysql_error());
  7. $keyword = $_GET['word'];
  8. $keyword = trim($keyword);
  9. print "Wyniki wyszukiwania";
  10. $sql = "SELECT title, article FROM tresc WHERE title LIKE $keyword OR article LIKE $keyword";
  11. $result = mysql_query($sql) or die(mysql_error());
  12. while ($row = mysql_fetch_assoc($result)){
  13. print '<a href="wynik.php?id=$row[id]">row[title]</a>';
  14. }
  15. if(mysql_num_rows($result)==0){
  16. print "Brak wynikow!";
  17. }
  18. ?>



Po otworzeniu strony wyświetla się błąd:
"Notice: Undefined index: word in C:\xampp\htdocs\kurs\szukaj.php on line 15
Wyniki wyszukiwaniaYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OR article LIKE' at line 1"

Po wpisaniu słowa które chcę wyszukać wyświetla się:
"Unknown column 'slowo' in 'where clause'"

W czym tkwi problem?
Go to the top of the page
+Quote Post
Psajkus
post 19.11.2011, 22:00:03
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 5
Dołączył: 26.06.2011

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


"Notice: Undefined index: word in C:\xampp\htdocs\kurs\szukaj.php on line 15 a co w tym nie jest jasne?

jak nie przesyłasz zmiennej word to wywala Ci błąd. daj:
  1.  
  2. $keyword = '';
  3. if(isset($_GET['word']) {
  4. $keyword = trim(strip_tags($_GET['word']));


i będzie gitara;

Co do tego komunikatu "Unknown column 'slowo' in 'where clause'" to w tabeli nie istynieje kolumna i nazwie 'slowo'.
Go to the top of the page
+Quote Post
badowl
post 20.11.2011, 18:18:35
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 18.07.2011

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


Teraz sie wyświetla:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OR article LIKE' at line 1" ;/

Sam do tego doszedłem smile.gif Oto gotowy kod. Może komuś się przyda.
  1. <form method="get" action="<?=$_SERVER['PHP_SELF']?>">
  2. <input type="text" name="word" />
  3. <input type="submit" name="submit" value="Szukaj" />
  4. </form>
  5. <?php
  6. if (isset($_GET['submit'])){
  7. mysql_connect('localhost', 'user', 'password') or die(mysql_error());
  8. $keyword = "";
  9. if(isset($_GET['word'])) {
  10. $keyword = $_GET['word'];
  11. }
  12. print "Wyniki wyszukiwania";
  13. $sql = "SELECT * FROM tabela WHERE title LIKE '%$keyword%' OR article LIKE '%$keyword%'";
  14. $result = mysql_query($sql) or die(mysql_error());
  15. while ($row = mysql_fetch_assoc($result)){
  16. print '<br /><a href="szukaj.php?id='
  17. . $row['id'] . '">'
  18. . $row['title'] . '</a>';
  19. }
  20. if(mysql_num_rows($result)==0){
  21. print "Brak wynikow!";
  22. }
  23. }
  24. else{
  25. print "Wpisz slowo które chcesz wyszukac.";
  26. }
  27. ?>


Ten post edytował badowl 20.11.2011, 08:09:43
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: 1.06.2024 - 00:24