Autor Zpráva
ajajaj
Profil
Ahoj, prosím o radu.

Mám problém při výběru dat z databáze když prvek v poli začíná číslem. Myslel jsem že to vyřeším str_word_count ale nepomohlo to. Prostě mi následující dotaz nevrátí výsledek např.: 3M Technology

jinak hodnoty které porovnávám jsou max do 6 slov, takže pokud bude nějaká sakra úchylná konstrukce, tak jsem ochoten ji využít

$string = mysql_real_escape_string($_POST['nazev']);
$array = str_word_count ($string,1,'0123456789');

$result= mysql_query ("SELECT * FROM table WHERE sloupec1='xxx' AND sloupec2
IN('" . implode("',' ", $array) . "')");
Sir Tom
Profil
ajajaj:
Ahoj, co obsahuje $_POST['nazev'], $string, $array? (Dumpni ty proměnný a výsledek napiš sem.)
ajajaj
Profil
string(25) "3M Scientific Anglers GPX" string(25) "3M Scientific Anglers GPX" array(4) { [0]=> string(2) "3M" [1]=> string(10) "Scientific" [2]=> string(7) "Anglers" [3]=> string(3) "GPX" }


proháním to ajaxem a testuji jestli neobsahuje řetězec název výrobce abych ho nemusel zadávat samostatně
Alphard
Profil
Není v tom implode() blbě mezera? "',' " přidá mezeru na začátek každého slova kromě prvního.
Ale pokud by byl název značky dvouslovný, stejně to nenajde. Pak by to chtělo vytvořit dotaz pomocí like.
Kajman
Profil
Navíc by se mysql_real_escape_string měla volat až na obsah toho pole.
ajajaj
Profil
děkuji ;)

$result= mysql_query ("SELECT * FROM table WHERE typ='producer' and '" . mysql_real_escape_string($_POST["nazev"]) . "' LIKE CONCAT('%',nazev,'%')");

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: