Tym razem na tapecie pojawilo sie trudniejsze zadanie. Pytanie wygenerowane w sposob tradycyjny wyglada mniej wiecej tak:
$sql = "SELECT a,b,c FROM tresc WHERE kategoria = 1 OR kategoria = 2 OR kategoria = 3 AND (grupa LIKE '%slowo%' OR grupa LIKE '%slowo2%' OR grupa LIKE '%slowo3%') ORDER BY kolejnosc DESC LIMIT 0, 10";
Chcodzi o to, że mam w tym zadaniu kilka roznych danych do przekazania w zapytaniu np:
pierwszy warunek to rożne id kategorii;
drugi to AND w którym są słowa wyszukiwane metodą LIKE;
nastepnie jest ORDER po kolumnie kolejnosc;
i na końcu LIMIT.
Co mam a co chcę osiągnąć:
- kategorie mam w tablicy i moge zamienic na string ?,?,?,?,?,?,?,?,? iwstawic WHERE IN - i bedzie ok
- slowa ktore maja byc wyszukane za pomoca LIKE chyba też tak moge zrobic - ale nie wiem czy moge przekazać do execute() dwie tablice ? a dodatkowo jak to połączyć ANDem
- ORDER BY tu mam na stałe wpisane 'kolejnosc DESC' - ale czy moglbym to rozbic na 2 dodatkowe zmienne i dynamicznie podstawic do zapytania ? bind Param można do tego użyć ?
- LIMIT - no tu tez mam zagadke - gdyby zapytanie bylo proste dalbym zwykly bindValue ale poniewaz wczesniej byly uzyte ?,?,?,? to zastanawiam sie czy nie dolaczyc tego co jest za LIMIT jak 2 dodatkowe ?,? i przeslac jako 1 tablica ?
Ogólnie tak jak widze sporo jest zamieszania z tym PDO.