PHP adatbázisból adat sztringgel illesztése..
Sziasztok!
Ezzel a gonddal küszködök, nem nagyon jutok vele előre!
Adatbázisban különböző táblákból szedek ki azonosítókat, azokat "," - vel illesztem össze. Tehát ilyen alakú adatokat kapok: "1,1,2,1" stb..
Aztán van egy tábla, amiben az egyik mezőben épp ilyen adatok vannak, ezekre és még névre szűrnék.. de nem nagyon akarja a hasonlóságot sem felfedezni..
Már konvertáltam (string)-gel a kinyert adatot stb.. de nem ok.
Ha beégetem az SQL select-be mondjuk az "1,1,7" értéket, akkor jól szűri a rekordokat, de ha a lekért adatokból összeillesztett változót adom át neki, nem működik.
Névre imput-ból elkért adattal szűrök, az is jól működik!
Végül már a konkrétan "1,1,7"-re beállított értékű változót hasonlítom az "1,1,7" illesztett kulcsértékekkel, de nem látja egyezőnek..
Biztosan nagy zagyvaságnak tűnik..
Na, itt a kód:
Nem tudom, mennyire látható így át.. ha kell, beillesztem az egész kódsort!
Köszönöm előre is!
■ Ezzel a gonddal küszködök, nem nagyon jutok vele előre!
Adatbázisban különböző táblákból szedek ki azonosítókat, azokat "," - vel illesztem össze. Tehát ilyen alakú adatokat kapok: "1,1,2,1" stb..
Aztán van egy tábla, amiben az egyik mezőben épp ilyen adatok vannak, ezekre és még névre szűrnék.. de nem nagyon akarja a hasonlóságot sem felfedezni..
Már konvertáltam (string)-gel a kinyert adatot stb.. de nem ok.
Ha beégetem az SQL select-be mondjuk az "1,1,7" értéket, akkor jól szűri a rekordokat, de ha a lekért adatokból összeillesztett változót adom át neki, nem működik.
Névre imput-ból elkért adattal szűrök, az is jól működik!
Végül már a konkrétan "1,1,7"-re beállított értékű változót hasonlítom az "1,1,7" illesztett kulcsértékekkel, de nem látja egyezőnek..
Biztosan nagy zagyvaságnak tűnik..
Na, itt a kód:
if($_POST['nev_elso']!=0){
if($_POST['masodik_szint']!=0){
if($_POST['harmadik_szint']!=0){
$dolgozo_hely = $_POST['nev_elso'].",".$_POST['masodik_szint'].",".$_POST['harmadik_szint'];
}
else $dolgozo_hely = $_POST['nev_elso'].",".$_POST['masodik_szint'];
}
else $dolgozo_hely = $_POST['nev_elso'];
}
else $dolgozo_hely = "";
trim((string)$dolgozo_hely);
$query = "SELECT * FROM dolgozo WHERE nev LIKE '$nev_gyors%' AND kod LIKE $dolgozo_hely%'";
if($_POST['masodik_szint']!=0){
if($_POST['harmadik_szint']!=0){
$dolgozo_hely = $_POST['nev_elso'].",".$_POST['masodik_szint'].",".$_POST['harmadik_szint'];
}
else $dolgozo_hely = $_POST['nev_elso'].",".$_POST['masodik_szint'];
}
else $dolgozo_hely = $_POST['nev_elso'];
}
else $dolgozo_hely = "";
trim((string)$dolgozo_hely);
$query = "SELECT * FROM dolgozo WHERE nev LIKE '$nev_gyors%' AND kod LIKE $dolgozo_hely%'";
Nem tudom, mennyire látható így át.. ha kell, beillesztem az egész kódsort!
Köszönöm előre is!
A $query-ben biztos, hogy
Az ifeid szörnyűek, ami az else ágakat illeti, legalábbis formailag.
Tartalmilag én ott látom a hibát, hogy a $nev_gyors változódnak nincs értéke, így AND kapcsolattal olyan sorokat fogsz megkapni, amiben a nev mező üres.
Ha mégsem az, csak nem másoltad be a kódnak azt a részét, akkor próbáld ilyen select-tel:
Remélem gondoltál arra, hogy
Igen, remélem a
htmlspecialchars($_POST['fname'])
megoldás a problémára!
Egyébként köszönöm, nagyon gyorsak vagytok :-)
Nem
Ja, most látom hogy itt is
Köszönöm még egyszer!
Ja, itt a dolgozo
1 Szabó Ferenc 2245 1,1,,2 szabofe##kukac##gmail.hu
2 Fekete Péter 1360 1,2,12 feketep##kukac##josa.hu
3 Szabó Péter 2325 1,1,1,1 petersz##kukac##yahoo.com
4 Jósa Péter 4534 1,1 josa##kukac##kod.ho
Itt pedig a form:
Másképp
$query
, valamint futtasd le azt a query-t mondjuk MySQL konzolban, vagy phpMyAdmin-ban. Amennyiben nem MySQL-t használsz, akkor a kód ebben a formában valószínűleg nem fog működni, de nem írtad, milyen adatbázist használsz.Megj: az
emptyempty
még mindig csak azt jelenti, hogyempty
.Phpmyadminnal lettek a táblák
Gondoltam már a karakterkódolásból adódó nemegyezésre. Szal megírtam a selectet a phpmyadmin felületén, és azt másoltam be a php kódba.. de az sem oldotta meg..
Tyú a kutya fáját, működik! :-)
Nagyon szépen köszönöm!
Soha nem használtam még a
mysql_real_escape_string(implode(array_map('trim', $szintek), ',') függvényeket, meglesem a manualban hogy pontosan mit is csinálnak!
Köszönöm még egyszer!! :-)