Fulltextové vyhledávání – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Fulltextové vyhledávání – PHP – Fórum – Programujte.comFulltextové vyhledávání – PHP – Fórum – Programujte.com

 

J'ann Baill
~ Anonymní uživatel
9 příspěvků
14. 10. 2007   #1
-
0
-

Našel by se nějaký dobrák, který by mi poradil s fulltextovým vyhledáváním?

Mám dotaz na mysql, který když zadám přes phpMyAdmina normálně funguje a mysql mi vyhodí výsledky, ale když ho zkouším zadat přes PHP skript, tak fungovat přestane... zkoušel jsem výsledky vypsat přes mysql_fetch_array, ale to vyhodí chybu :(



SELECT *,
MATCH (nazev, popis, text)
AGAINST ('Lorem Ipsum' IN BOOLEAN MODE) AS skore1 ,
(
(3 * (
MATCH (nazev)
AGAINST ('Lorem Ipsum')
)
) + (2 *(
MATCH (popis)
AGAINST ('Lorem Ipsum')
)
) + (
MATCH (text)
AGAINST ('Lorem Ipsum')
)
) AS skore2
FROM clanky WHERE verejne=1 HAVING skore1 > 0
ORDER BY skore1 DESC, skore2 DESC;


Nevíte někdo co s tím je? :)

P.S.: ten sql dotaz je sestavený podle http://kaviarovetoasty.com/blog/fulltextove-vyhledavani-razene-podle-relevance.html. Testuju to na localhostu pod EasyPHP 1.8

Nahlásit jako SPAM
IP: ...–
survik1
~ Moderátor
0
Posthunter
14. 10. 2007   #2
-
0
-

vzhledem k tomu, že teď nestíhám, tak se tě jen zkusím zeptat. máš podporovanou verzi mysql?

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
Zelenáč0
Posthunter
14. 10. 2007   #3
-
0
-

Chjo... JAKOU CHYBU???

Nahlásit jako SPAM
IP: 89.176.254.–
J'ann Baill
~ Anonymní uživatel
9 příspěvků
14. 10. 2007   #4
-
0
-

Survik1: pokud dobře rozumím dotazu, tak jo (s mysql nedělám moc dlouho...)

Zelenáč:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\vyhledavani.php on line 25

nebo

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\vyhledavani.php on line 25

Nahlásit jako SPAM
IP: ...–
meneltharion0
Návštěvník
14. 10. 2007   #5
-
0
-
Nahlásit jako SPAM
IP: ...–
Zelenáč0
Posthunter
14. 10. 2007   #6
-
0
-


Už si někdy slyšel o funkci die() a mysql_error()???


mysql_connect() or die("Nepodarilo se pripojit k databazi");
mysql_query() or die("S tim dotazem je neco spatne..");
echo("Chyba: ".mysql_error());


Usetris si tim mnoho problemu a hledani chyb v kodu...

Nahlásit jako SPAM
IP: 89.176.254.–
J'ann Baill
~ Anonymní uživatel
9 příspěvků
14. 10. 2007   #7
-
0
-

meneltharion: ne, připojení k databázi je v poho

zelenáč: slyšel a používám ;) - a i když jsem dal k dotazu na db or die("chyba") tak to nepomůže...

Nahlásit jako SPAM
IP: ...–
Zelenáč0
Posthunter
14. 10. 2007   #8
-
0
-

A mysql_error() pise co?

Nahlásit jako SPAM
IP: 89.176.254.–
J'ann Baill
~ Anonymní uživatel
9 příspěvků
14. 10. 2007   #9
-
0
-

Zelenáč: nic - ani u mysql_query("dotaz"), ani u mysql_fetch_array. Jenom mysql_errno() píše u mysql_fetch_array() chybu číslo 0 :-/

Nahlásit jako SPAM
IP: ...–
meneltharion0
Návštěvník
15. 10. 2007   #10
-
0
-

A nemohl by být problém v zastaralých/chybových verzích PHP/MySQL, které jsou obsaženy v EasyPHP?

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
15. 10. 2007   #11
-
0
-

J'ann Baill: Query vyzerá o.k. zbežne, ale:

Ad 1) K odpovedi na otazku od survik1 si mohol prihodiť aj verziu mysql, ktorú používaš. Fulltext začal byť podporovaný od ver. 4.

Ad 2) ...
$r = MySQL_query( ...to query... );
mysql_num_rows($r) -- ak toto hlasi "supplied argument is not a valid MySQL result", to znamena $r maš nejaké odveci, alebo sa query nevykonalo, pretože je chybne(syntax/nazvy tabuliek/stlpcov/indexov/...). Takže neverim že nasledujuci kod nehodí žiadnu chybu:

MySQL_query( ...to query... );

echo MySQL_error();
exit;


Ad 3) Máš zadefinované fulltext indexy ?

Ad 4)

Zelenáč: nic - ani u mysql_query("dotaz"), ani u mysql_fetch_array. Jenom mysql_errno() píše u mysql_fetch_array() chybu číslo 0 :-/


to znie, akoby si urobil niečo také:
$a = MySQL_qyery(... // query prebehne v poriadku, žiadne errors, ulozi sa resource do [podtrzene]$a[/podtrzene]
MySQL_num_rows($b); // ty pouzijes [podtrzene]$b[/podtrzene] (alebo [podtrzene]$a[/podtrzene] medzitým prepíšeš)


Skús poslať problémovú časť zdrojáku.

Nahlásit jako SPAM
IP: ...–
Prog.
J'ann Baill
~ Anonymní uživatel
9 příspěvků
15. 10. 2007   #12
-
0
-

Prog.:

1) verze mysql: 4.1.9-max (přes dotaz select version() )

2) všechno by mělo být ok - už jenom proto, že mi to, při zadávání přes phpmyadmina, funguje
A kód opravdu nic nevyhodí :((

3) jj, mám

4) tohle trochu nechápu O:-) -> do $sql napíšu dotaz a v $vysl ho vyvolávám (do proměnné $vysl sem zkoušel dát to mysql_fetch_array, když to nefungovalo tak mysql_num_rows - abych zistil, jestli nemám chybu někde ve funkci mysql_fetch_array) - žádnou proměnnou jinak nepřepisuju

Tady je ten kód:



<?php
require "inc/db.php"; //spojení s databází

$sql = "SELECT *,
MATCH (nazev, popis, text)
AGAINST ('Lorem Ipsum' IN BOOLEAN MODE) AS skore1 ,
(
(3 * (
MATCH (nazev)
AGAINST ('Lorem Ipsum')
)
) + (2 *(
MATCH (popis)
AGAINST ('Lorem Ipsum')
)
) + (
MATCH (text)
AGAINST ('Lorem Ipsum')
)
) AS skore2
FROM clanky WHERE verejne=1 HAVING skore1 > 0
ORDER BY skore1 DESC, skore2 DESC" or die("chyba1");
$vysl = mysql_fetch_array($sql) or die("chyba2");
echo $vysl;
?>


a výstup stránky je:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\vyhledavani.php on line 23
chyba2

Nahlásit jako SPAM
IP: ...–
insider0
Věrný člen
15. 10. 2007   #13
-
0
-

aaaa, to kdybys tady dal jako prvni prispevek, tak hned v druhem mas odpoved ...

<?php

require "inc/db.php"; //spojení s databází

$sql = "SELECT *,
MATCH (nazev, popis, text)
AGAINST ('Lorem Ipsum' IN BOOLEAN MODE) AS skore1 ,
(
(3 * (
MATCH (nazev)
AGAINST ('Lorem Ipsum')
)
) + (2 *(
MATCH (popis)
AGAINST ('Lorem Ipsum')
)
) + (
MATCH (text)
AGAINST ('Lorem Ipsum')
)
) AS skore2
FROM clanky WHERE verejne=1 HAVING skore1 > 0
ORDER BY skore1 DESC, skore2 DESC" or die("chyba1");
$sql = mysql_query($sql); // musis vykonat dotaz a az pak muzes prochazet vysledky
$vysl = mysql_fetch_array($sql) or die("chyba2");
echo $vysl;
?>

Nahlásit jako SPAM
IP: ...–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
Prog.0
Věrný člen
16. 10. 2007   #14
-
0
-

Here we are... :-)

Nahlásit jako SPAM
IP: ...–
Prog.
J'ann Baill
~ Anonymní uživatel
9 příspěvků
16. 10. 2007   #15
-
0
-

Ježiši, já sem blb :D. Všem se moc omlouvám za blbý dotaz :D

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý