Autor Zpráva
vospunt
Profil
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
$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
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
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
ok změněno :) ale to neřeší můj problém s vyhledáním
TomášK
Profil
Za lepší a hezčí považuju vyhledávání pomocí FULLTEXTU.
vospunt
Profil
prosím dokázal byste mi napsat příklad FULLTEXTového vyhledání k mému případu ?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0