SQL provjera jel nešto je ili nije u praznoj listi

Ne, nikada. Ti si spominjao 0000.2 sec, ne ja.
:joy: :joy:

:joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy:

Doviđorno, šteta izgubljenog vremena na tebe. :wink:

1 Like

:joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy: :joy:

Stavrno, sto? Koji dio je sporan?
Moram priznati da sam probao prije nego sto sam napiso I dobio ocekivani rezultat

Ajme, odakle izvuce tu konstantu?
Predpostavljam da je to iz PHP-a konstanta?
Jeli netko u pitanju spominjao PHP?
Recimo I da jest to PHP, kakve veze ima max broj u PHP sa tamo nekim max brojem u nekoj bazi?

Ja sam od njega na prvu očekivao da je njegovo pametovanje barem nečim potkovano… ali od tog još ništa vidio nisam. Al sad kada gore vidim da je uspio napisat 00000.2sec umjesto 0.00002sec, sve mi je jasno koliko je znanja u njega… ko jedan moj frend koji mi je iskreno priznao da njemu niš nije jasno što decimalna točka služi i kojem je čudno kako je 0.1 veći broj od 0.050000 …heh. No taj frend barem zna da nezna… a ovo gore je žalosno vidjet…jer ne može biti tipfeler sa 5 nakucanih znakova na krivom mjestu.

Hahah, opet se hvataš za nebitne stvari i donosiš nekakve zaključke koje nemaju veze s vezom. Kako predvidljivo. :yawning_face:

Hej, daj prestani komentirati sam sebe. Ne sviđa mi se to šta smo zamijenili uloge :face_with_hand_over_mouth:

Kako ne? Pogledaj njegov post malo bolje i vidjeti ćeš da koristi PHP za taj dio.

ako je lista prazna, znaci da ne tražiš ništa ili tražiš null.

ako tražiš null, onda je x is null, inače ne izvršavaš query.

Ne čitaš/razumiješ zadatak.
… sa klijenta ti dolazi nekakav array podatak. Taj array može biti prazan, a i ne mora biti prazan.
S tim podatkom ideš u SQL SELECT… a moraš uvijek raditi select jer pored tog array podatka moguće imaš još parametara koji završavaju u WHERE djelu. Znači nebitno je jel array prazan ili nije…select se mora praviti. Tj. cilj je stvar automatizirati da ne moraš provjeravat jel array prazan/nije i po tome onda naštimavat varijante querya.

SQL query se tako popularizira automatski … tako da se bindaju podaci u njega … stoga, zadatak je naći način kako bindati prazan array u QUERY, a da se ne izmjeni logika selecta i da sintaksa querya ostane ispravna.
Uvijet je naravno da treba imati osjećaj kako binder radi i da je ponuđeno riješenje sukladno tome… jer binder se kači samo za placeholder koji zamjenjuje sa nečim … i ne kopa ništa više po query-u od placeholdera kojeg binda.

Ok, može se prihvatiti da binder eventualno malo mijenja okolinu oko placeholdera… ali bolje ako ne.

Zasad je @ognjen dao najbolje rješenje koje ispunjava sve uvjete zadatka.

Ajme meni, moj jorgovane, naravno, od mora karaktera, na jednom mjestu je stavio “$”.

Petunijo, pitaj njega u čemu je napisan taj tzv. binder.

Jeli bitno za ovo pitanje u cemu je napisano? Ja mislim da nije.
Covjek je pitao pitanje dao si mu odgovor i dobro…kada si pozelio nastaviti konverzaciju o tome jeli njegovo rjesenje legitimno ili ne, bilo bi bolje da si otvorio novi post, tamo objasnio svima sto je krivo i pokazo kako to rade majstori.

Pa ti si to spomenuo, a ne ja.

Nah… radije ću baljezgat o svemiru i davati glupe analogije jer to je nivo rasprave koju i inače vodi OP.

Ak’ ste vi normalni… :slight_smile:

$conditionArray = [];

ako nije prazan,
$someExtraCondition = " and x in $conditionArray"
else
$someExtraCondition = null

select … from where … . $someExtraCondition

vrlo jednostavno

Ne kažem da nije…ali sintaksom može puno bolje…nešto ovako:

$r = dbt::select("SELECT * FROM table WHERE id in @ids", ['ids'=>$ids]);

…i nemaš što brinuti i kemijati ako je lista prazna ili nije… pri tome tvoje se extra komplicira ako je više parametara/listi u igri…itd…

Isto tako minus za održavanje, jer si hardcodirao logiku koju ćeš kao takvu ponavljati na više mjesta u codeu. Ako ćeš htjeti upgrejdati nešto u toj logici …ubaciti nekakvu dodatnu kontrolu ili nešto…moraš ručno ići po svim tim mjestima i mijenjati/dodavati. Zato se ponavljajuća logika nikada ne hardcodira, nego se sprovodi posredno kroz odgovarajuću metodu, kako bi ta metoda bila centralni controler te logike…i kako bi na taj način iz jedne točke mogao upravljati logičkim karakteristikama svog codea.

To naravno kada se ispravno sprovodi nad svim mjestima, code postaje pjesma za održavanje. U suprotnom kasnije boli glava.

No što se tiče jednostavnosti, nije bilo nikada komplicirano ni tipkati x = x+1, pa su svejedno uveli x++.
Kada se može…treba uvijek evoluirati i ići ka naprijed. Puno naizgled malih koraka, ali prijeđe se na kraju velik put.

I sto ako je lista prazna?

To ti se zove dinamicki sql query.

Doctrine to ima rijeseno.

Tko voli neka izvoli.

Ako imam x parametara slozim si da mi se dimamicki kreira sql query u ovisnosti da li je parametar popunjen ili nije.

Jednostavno.