Autor | Zpráva | ||
---|---|---|---|
ajajaj Profil |
#1 · Zasláno: 8. 1. 2013, 00:31:32
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 |
#2 · Zasláno: 8. 1. 2013, 00:50:29
ajajaj:
Ahoj, co obsahuje $_POST['nazev'], $string, $array? (Dumpni ty proměnný a výsledek napiš sem.) |
||
ajajaj Profil |
#3 · Zasláno: 8. 1. 2013, 01:42:24 · Upravil/a: ajajaj
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 |
#5 · Zasláno: 8. 1. 2013, 08:33:03
Navíc by se mysql_real_escape_string měla volat až na obsah toho pole.
|
||
ajajaj Profil |
#6 · Zasláno: 8. 1. 2013, 15:29:41
děkuji ;)
$result= mysql_query ("SELECT * FROM table WHERE typ='producer' and '" . mysql_real_escape_string($_POST["nazev"]) . "' LIKE CONCAT('%',nazev,'%')"); |
||
Časová prodleva: 11 let
|
0