Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wybranie rekordów z bazy danych zawierajacych dane słowo
masta105
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


Witam. mam kod
  1. <h3 id="nazwa">Lista Filmów znajdujaca sie w bazie:)</h3>
  2. <?php
  3. include ('index.php');
  4.  
  5.  
  6. $zapytanie = "SELECT DISTINCT gatunek FROM filmy ORDER BY gatunek ASC";
  7.  
  8. $gatunek = mysql_query($zapytanie) or die('Blad: ' . mysql_error());
  9.  
  10.  
  11. while ($rekord = mysql_fetch_assoc($gatunek)) {
  12.  
  13. echo "<h4>" . $rekord['gatunek']."</h4>\n";
  14.  
  15. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  16. WHERE gatunek='". $rekord['gatunek'] ."' ORDER BY gatunek DESC";
  17.  
  18.  
  19.  
  20. $filmy = mysql_query($zapytanie) or die ('Wybór flimow nieudany, blad: ' . mysql_error());
  21. $razem = mysql_num_rows($filmy);
  22.  
  23.  
  24. ?>
  25.  
  26. <table id="tablesorter-demo" class="tablesorter" border="0" cellpadding="0" cellspacing="1">
  27. <thead>
  28. <tr>
  29. <th class="header ">&nbsp;</th>
  30. <th class="header headerSortDown">Nazwa:</th>
  31. <th class="header headerSortUp">Gatunek:</th>
  32. <th class="header">Rok:</th>
  33. <th class="header">Gdzie:</th>
  34. <th class="header">Uwagi:</th>
  35.  
  36. </tr></thead>
  37. <?php
  38.  
  39.  
  40. while ($prod = mysql_fetch_assoc($filmy)) {
  41.  
  42.  
  43. ?>
  44. <td>
  45. <a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=usun&id=<?php echo $prod['rok'];?>">usun</a>
  46. </td>
  47. <?php
  48. echo "<td>" . $prod['nazwa'] . "</td><td>". $prod['gatunek'] ."</td><td>". $prod['rok'] ."</td><td>". $prod['gdzie'] ."</td><td>". $prod['uwagi'] ."</td>";
  49.  
  50. echo "</tr>\n";
  51. }
  52.  
  53. ?>
  54. </table>
  55. <b>Razem: <?php echo $razem;?> film/ow.</b><p />
  56. <?php
  57. }
  58.  
  59.  
  60. ?>
  61. <tbody></tbody>
  62. <table>
  63. </body>
  64. </html>
i potrzebuje żeby zapytanie wyszukiwało i wyświetlało wyniki zawierających słowo np. komedia wraz z innymi wyrazami.
gdzieś czytałem że można użyć LIKE lecz gdy próbuje je "wcisnąć" w kod wyskakują mi błedy
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


LIKE albo MATCH AGAINTS. Poczytaj o nich, to nic trudnego.
Go to the top of the page
+Quote Post
masta105
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


a możesz mnie jeszcze jakoś na kierować(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
elektrrrus
post
Post #4





Grupa: Zarejestrowani
Postów: 175
Pomógł: 18
Dołączył: 11.06.2007
Skąd: Koszalin/Poznań

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


google.pl
Go to the top of the page
+Quote Post
masta105
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


znalazłem coś lecz przy próbie wyświetlenia wyskakuje mi
  1. Wybór flimow nieudany, blad: Something is wrong in your syntax obok 'MATCH(gatunek) AGAINST ('kom') AS score ORDER BY gatunek DESC' w linii 2
a oto kod
  1. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  2. WHERE gatunek='". $rekord['gatunek'] ."' MATCH(gatunek) AGAINST ('kom') ORDER BY gatunek DESC";
Go to the top of the page
+Quote Post
croc
post
Post #6





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Nie działało Ci prawdopodobnie dlatego, że pogubiłeś się z apostrofami. Poradź się wuja Google i spróbuj jeszcze raz.

EDIT
Zobacz jak się wstawia kilka warunków naraz.

Ten post edytował croc 27.10.2011, 22:23:35
Go to the top of the page
+Quote Post
masta105
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


w zapytaniu czy całym kodzie? gdy mam zapytanie
  1. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  2. WHERE gatunek='". $rekord['gatunek'] ."' ORDER BY gatunek DESC";
wszystko było ok gdy dodałem
  1. MATCH(gatunek) AGAINST ('kom')
wyskakuje bład

Ten post edytował masta105 27.10.2011, 22:26:12
Go to the top of the page
+Quote Post
croc
post
Post #8





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Na tym forum nikt nie pomaga leniwcom afrykańskim. Wykaż trochę dobrej woli, to na pewno sam dojdziesz do tego co jest błędem. Chyba że masz zerowe pojęcie o PHP/MySQL, to będzie ciężko. Bo kod - jak mniemam - nie jest Twój.
Go to the top of the page
+Quote Post
masta105
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


nie kod nie jest mój posiadam go z kursu. Edytuje w miarę możliwości i swoich możliwości + próby, i pomoc na forach. przeglądam różne strony na temat MATCH AGAINST lecz moje rezultaty są marne
Go to the top of the page
+Quote Post
abort
post
Post #10





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


http://dev.mysql.com/doc/refman/5.5/en/retrieving-data.html

Tam jest o zadawaniu zapytań do bazy. To jest podstawa, na tym na razie się wyłożyłeś.
Go to the top of the page
+Quote Post
masta105
post
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


gdy kod
  1. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  2. WHERE rok='". $rekord['rok'] ."' AND rok ORDER BY rok DESC";
(rok ma typ INT) i działa poprawnie a kod
  1. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  2. WHERE gatunek='". $rekord['gatunek'] ."'AND gatunek ORDER BY gatunek DESC";
(gatunek ma typ varchar) jest niepoprawny gdyż nie wyświetlają się wynik gdy usunąłem AND gatunek wyświetlają się wynik. jest to wynik różnych typów przechowywania rekordów?
Go to the top of the page
+Quote Post
croc
post
Post #12





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Nie, to jest wynik źle zapisanego zapytania. Zrób sobie:
  1. echo $zapytanie;

I mam nadzieję, że sam zobaczysz, że coś jest nie tak...
Go to the top of the page
+Quote Post
masta105
post
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


dzięki znalazłem ten problem i działa. teraz jak użyje MATCH i AGAINST wraz z
  1. gatunek='". $rekord['gatunek'] ."'
powinno chodzić jeśli nie to musze szukać dalej
Go to the top of the page
+Quote Post
croc
post
Post #14





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Pamiętaj, że MATCH AGAINST nie działa w tabelach typu InnoDB. Pamiętaj też, że musisz nałożyć indeks typu FULLTEXT na pole, na którym chcesz użyć MATCH AGAINST.
Go to the top of the page
+Quote Post
masta105
post
Post #15





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 27.10.2011

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


udało mi się wykorzystać LIKE.
w phpMyAdmin nałozyłem FULLTEXT (tak mi sie wydaje)
Nazwa klucza |Typ |Moc |Pole
PRIMARY | PRIMARY | 481 | id
gatunek | FULLTEXT | 43 | gatunek

kod taki mam
  1. $zapytanie = "SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy
  2. WHERE gatunek='". $rekord['gatunek'] ."' AND MATCH (gatunek) AGAINST('komed') ORDER BY gatunek DESC";
i wychodzi mi

  1. SELECT nazwa , gatunek, rok, gdzie, uwagi FROM filmy WHERE gatunek=' Dramat, Komedia' AND MATCH (gatunek) AGAINST('komed') ORDER BY gatunek DESCWybór flimow nieudany, blad: Can't find FULLTEXT index matching the column list
Go to the top of the page
+Quote Post
croc
post
Post #16





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Google naprawdę wie.

A swoją drogą to czytasz chociaż te swoje zapytania? Bo poza błędem z indeksem masz kilka innych - weź się w garść, chłopie (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 23:02