JavaScriptben esetleg írhatsz egy illesztőkifejezést, ami pl a \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" stringet lecseréli \\\\\\\\\\\\\\\\" stringre. Akkor megoldódna a probléma. De ennek a leírása fejből még nem megy, igen ritkán használtam -sajnos- eddig ezt a lehetőséget.
"De mi lenne, ha ez így nézne ki:
$sqlsor = str_replace($hatarolo,"\\\\\\\\\\\\\\\\"",$sql)"
Ez nekem azért nem volt jó mert rengeteg \\\\\\\\\\\\\\\\ jelet tett egymás után. Ez egy olyan többszintű szűréshez, rendezéshez kell ami mindig hozzácsap valamilyen, felhasználó által választott szűrési, rendezési szempontot és szépen nő. Namost ahányszor elküldtem a feldolgozást anyiszor megduplázta a \\\\\\\\\\\\\\\\ jelek számát. Szerintem az összes variációt kipróbáltam ezzel a jellel és végül az a megoldás jött be amit leírtam. A szur()-be is beírtam de nem jött össze ezért kellett ezt az egész str_replace-es megoldást alkalmazni, de így nagyon faja.
Van ez az utasításod, hogy:
$sqlsor = str_replace($hatarolo,"'",$sql)
De mi lenne, ha ez így nézne ki:
$sqlsor = str_replace($hatarolo,"\\\\\\\\\\\\\\\\"",$sql)
Vagy továbbmegyek, nem kellene str_replace sem, ha ezt írnád be közvetlenül a szur()-ben. Szerintem ez lehet a hiba. Én legalábbis még mindig el szoktam néha véteni az idézőjelezést, pedig már C/PHP/Java/JavaScript-ezek egy ideje.
Igaziból nem értem hogy mit nem értettél a leírásomból amit a kódból meg fogsz, de tessék:
// A képernyőn lévő mezőkböl összehoz egy stringet.
// Ha a vessző helyére ' vagy / írsz nem lesz jó.
function szur()
{
var c = ",";
var s = document.form1.szures.value;
s = s+" and "+document.form1.selekt.value+"="+c+document.form1.eztet.value+c+"\\\\\\\\\\\\\\\\n";
document.form1.szures.value = s;
}
// itt jön a php
?>
$sql = "select * from tabla where ".substr($szures,4)." order by ".$sorrend or die ("Nincs ilyen elem!!");
// itt a csere
$hatarolo=",";
$sqlsor = str_replace($hatarolo,"'",$sql)
// és jöhet az értelmezés
$tabla = mySQL($bazis,$sqlsor);
?>
A megoldás: Valami "sima" karakterrel (ne ' és ne \\\\\\\\\\\\\\\\) elválasztani az SQL sort és utána mielött átadnánk feldolgozásra a mysql értelmezőnek, lecserélni a "sima" karaktert '-re.
:) :( :D >( 8) :P ??? ::) :-[ :-X :-* :'( :-\\\\\\\\\\\\\\\\ ;)
Azt már tudom hogy mitől csak azt nem tudom hogy lehetne kiküszöbölni. Mert ha '-t írom be ' helyett akkor jól írja ki, de a mysql ugyanúgy nem értelmezi.
Kérdésem lenne: Összeállítok egy stringet javascriptben ami egy mysql utasítás is lehetne egyben. Minden jó amíg nem használom a ' karaktert ahogy hozzáfűzöm ezt a nyomorult karaktert a string-hez és utána kiiratom, tele lesz \\\\\\\\\\\\\\\\ karakterrel.