Autor | Zpráva | ||
---|---|---|---|
vospunt Profil |
#1 · Zasláno: 19. 1. 2010, 23:47:17 · Upravil/a: vospunt
mám v DB tabulku se sloupci : interpret,soundex_interpret,song,soundex_song,keywords
vím nemusel jsem dělat sloupce soundex_ ale bylo to dřív jde mi o to, vyhledání sql příkazem neumím regilární výrazy tak se chci zeptat jestli tento SQL: <?php $x = ""; $keywords = $_POST[keywords]; $key = explode("%",$keywords); $pocet_poli = count($key); for ($y = 0; $y < $pocet_poli; $y++) { $x .= "(keywords LIKE '%".$key[$y]."%'"; $x .= " OR song LIKE '%".$key[$y]."%'"; $x .= " OR interpret LIKE '%".$key[$y]."%')"; if ($y+1 < $pocet_poli) {$x .= " AND ";} } for ($y = 0; $y < $pocet_poli; $y++) { $x_ .= "(soundex_interpret LIKE '".soundex($key[$y])."'"; $x_ .= " OR soundex_song LIKE '".soundex($key[$y])."'"; $x_ .= " OR soundex_album LIKE '".soundex($key[$y])."'"; $x_ .= ")"; if ($y+1 < $pocet_poli) {$x_ .= " AND ";} } $x__ = " ( soundex_interpret LIKE '".soundex($keywords)."'"; $x__ .= " and soundex_song Like '".soundex($keywords)."'"; $x__ .= " and SOUNDEX(keywords) Like '".soundex($keywords)."' )"; $sql = mysql_go("SELECT * FROM data WHERE ( ( $x ) or ( $x_ ) or ( $x__ ) ) ORDER BY datum DESC, ID DESC LIMIT 0,15"); ?> by šel nahradit za něco lepšího hezčího ... ani nefunguje tento SQL jak má... když vyhledám jedno slovo tak funguje výtečně ale když vyhledám spojení tak sice vypíše ale i to co by neměl prostě má vyhledat v sloupci interpret,song,keywords a když najde všechny hledaná slova je jedno v jakém sloupci tak vypíše prosím pomozte mi někdo reguláry jsou mocné věci ale ještě je neumím předem moc díky |
||
AM_ Profil |
#2 · Zasláno: 20. 1. 2010, 10:24:26
$keywords = $_POST[keywords];
chyba, $keywords = $_POST['keywords']; reguláry si tady moc nepomůžeš, tady není nic, co by jsi s nimi mohl porovnávat. Nevím, jak funguje soundex, když mu předáš string o více slovech, problém by mohl být tam. |
||
vospunt Profil |
#3 · Zasláno: 20. 1. 2010, 10:41:59
ne to normálně funguje jen že potřebuju vyhledávat o více slovech a netuším jestli to mám správně nebo ne ... je to tak :D lajcky napsaný :D
|
||
AM_ Profil |
#4 · Zasláno: 20. 1. 2010, 11:28:05
vospunt:
„ne to normálně funguje“ ano, PHP z historických důvodů nedefinované konstanty nahradí řetězcem hodnoty názvu konstanty, ale to neznamená, že to je správný zápis. Navíc to bude házet NOTICE chyby. |
||
vospunt Profil |
#5 · Zasláno: 20. 1. 2010, 11:34:54
ok změněno :) ale to neřeší můj problém s vyhledáním
|
||
TomášK Profil |
#6 · Zasláno: 20. 1. 2010, 14:17:41
Za lepší a hezčí považuju vyhledávání pomocí FULLTEXTU.
|
||
vospunt Profil |
#7 · Zasláno: 20. 1. 2010, 14:52:05
prosím dokázal byste mi napsat příklad FULLTEXTového vyhledání k mému případu ?
|
||
Časová prodleva: 13 let
|
0