na gerai bandau aiskintis qutwala parasyta skriptuka, jeigu ka nupezesiu mazu kas nors pataisys ir paaiskins kame kampas.
Pirmame stulpeli visus post duomenis paverciam i kintamuosius
antram sukurem masyva $query[0] => $kazkas, $query[1] => $kazkas2, $query[2] => $kazkas3
tuomet kintamaji $TRUE uzsetinu teigemai reiksmiai.
su $is_empty neaisku cia kodo truksta bet kiek suprantu tikrina ar masyve dabartinis kintamasis yra uzsetintas
if (current($is_empty)) {
cia kiekviena $query reiksme is masyvo prilyginama $value reiksmei nu pvz query[1]=value[1]
foreach ($query AS $value) {
uzsetina nauja masyva su reiksme ' AND ' kad veliau vygdant duomenu bazes uzklausa kiekviena paieskos dali atskirtu zodziu AND.
ir jei gerai suprantu kaip tik priskire $value reiksme taip $and[] masyvas padideja vienu AND
$and[] = ' AND '; //AND masyvas deti i uzklausa
cia sito nelabaisuprantu kam tie '__'
suskiciuoja kiek is viso and[] turi uzsetintu reiksmiu atima 1 kad neperdaug AND pridetu. Siuo atveju turim 3 reiksmes tai padaro 2
$count = count($and) - 1;
patikrinam kiek supratau ar uzsetinta reiksme and[2]?
if(isset($and[$count])) {
ir ta paskutine and[] reiksme pakeicia vietoje AND zodzio ' ' tarpuka
paleidziame cikla kol $TRUE nebus False tol ciklas suksis ratu.
paleidziam nauja masyva $select kur sujungemiame $query__ ir $and i viena
$select[] .= current($query__) . current($and);
tikrina jei bent vieno masyvo pasibaigs reiksmes tada $TRUE nustatys false ir ciklas bus nutrauktas
if (!next($query__) || !next ($and))
$TRUE = false; // jeigu tikrinimas FALSE stabdome ciklą
o implode dar nezinau ka daro reikes paskaityt bet logiskai mastant sudes i selecta visas reiksmes
$select = 'SELECT * FROM lentele WHERE '.implode('', $select);
tik cia klaida ar as kazko nezinau pas qutwala
while ($TRUE){ // Kai kintamasis TRUE yra TRUE
$select[] .= current($query__) . current($and); //rikiuojame M1 C1 M2, t.y. : $_POST AND $_POST..
if (!next($query__) || !next ($and)) //tikrinimas ar bėra masyve reikšmių
$TRUE = false; // jeigu tikrinimas FALSE stabdome ciklą
}
$select = 'SELECT * FROM lentele WHERE '.implode('', $select); // masyvą verčiame į STRING
}else{
//error_report i sablona, kad paieskos uzklausa tuscia galima ir paprasciau su siuo: if(!current($query)) { //klaida, kad tuscia uzklausa} //vykdome toliau koda
}
while { atsidaro
if (kazkas) {<-- neatsidaro
$TRUE = false;
}<-- uzdaro tai cia uzdaro ka while ?
toliau kodas
na sedejau ir logiskai masciau ir stai ka ismasciau :) mazu po biski pradesiu suprast masyvu nauda ir ju panaudojima...