Naime, imam bazu artikala, ali nemam kategorije, vec samo opširan naziv artikla (npr. Futrola x345 za Apple iPhone 7 teget).
E sad meni nastaje pakao oko pretrage, jer imam i paginaciju..
Način za preragu izvlačim iz url-a: mojsajt.com/proizvodi/futrole/1/apple-iphone-5c gde je $arg2 naziv kategorije npr. futrola, $arg3 broj za paginaciju, $arg4 model telefona
Prvo radim pretragu po fiktivnoj kategoriji (futrola, torbica, futrole), gde koristim upit ILI ILI - u ovom slucaju samo tri, jer nema č,ć itd u nazivu pa da moram obe varijante da testiram).
$sql = array();
$words = array('futrola','futrole','torbica');
foreach($words as $word){
$sql[] = '(lower(naziv) LIKE \'%'.$word.'%\')';
}
$limit = 48;
if($arg3 == ""){
$arg3 = 0;
}
$offset = $arg3*48;
$sqlNumRows ='SELECT * FROM artikli WHERE '.implode(" OR ", $sql).' ORDER BY id DESC';
$sql = 'SELECT * FROM artikli WHERE '.implode(" OR ", $sql).' ORDER BY id DESC LIMIT '.$limit.' OFFSET '.$offset;
$poslednjih10 = $oDb->get_results($sql);
$brRezultata = $oDb->num_rows($sqlNumRows);
I to radi ok, izlista sve, ide paginacija itd.. odradim foreach petlju i prikazem sve proizvode koji imaju u nazivu futrola ili vec zadata rec.
Ali onda kada trazim po modelu telefona npr Apple iPhone 7 ja moram sad prethodnu pretragu da suzim na naziv u kome se nalazi i APPLE i IPHONE i 7
E sad ja tu drugu pretragu moram da ubacim u prethodnu foreach petlju i da ispitam svaki naziv da li u sebi sadrzi sve tri reci.
if($arg4 != ""){
$words2 = explode("-",$arg4);
$zadnjaRec = end($words2);
$arrayArtikal = strtolower($artikalNaziv);
$arrayArtikli = explode(" ",$arrayArtikal);
foreach($arrayArtikli as $arrayArtik){
if($zadnjaRec === $arrayArtik){
//prikazi taj proizvod
}
} else //dalje sve ok radi.
Gornji primer je samo pretraga po sifri artikla (npr samo 5s), i to mi pravi problem, a ne po sva tri elementa.
Problem je u paginaciji, jer meni npr pretrazi prvih 48 unosa gde nema sve tri reci, tek na 6toj strani mi je artikal i on izvrti petlju ali ne prikaze nista.
Kako da napisem sql ili logiku za prikaz artikala po ova dva osnova.. Prvi je pretraga baze sa ili ili ili recima, a zatim filter tih rezultata sa I I I ..