goma smile Posted October 30, 2014 Report Share Posted October 30, 2014 Sveiki skatieties kkas lidzigs ka facebook'a timeline... Ir time line ar bildem :id | nosaukums | kopā_balsis | created_at..... Un ir tabula voteid | bildes_id | created_at un es vēlētos vaicājumu kas skatās bildes pēc pēdējām pievienotajām piemēram 7 dienas un pēc viņu balsojuma viņas kārtojās pēc šīm 7 dienu bildēm bildes turpinas kārtoties pēc populārājakām Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 30, 2014 Report Share Posted October 30, 2014 Please tell me those are not the actual column names in the database... Kur tieši ir problēma selektot no bilžu tabulas WHERE DATE(`created_at`) >= (CURDATE() - INTERVAL 1 WEEK) ORDER BY `total_votes` DESC LIMIT x OFFSET y? Vote tabula te vispār ņipričom, ja ir tāda kolonna. Quote Link to comment Share on other sites More sharing options...
goma smile Posted October 30, 2014 Author Report Share Posted October 30, 2014 Please tell me those are not the actual column names in the database... Kur tieši ir problēma selektot no bilžu tabulas WHERE DATE(`created_at`) >= (CURDATE() - INTERVAL 1 WEEK) ORDER BY `total_votes` DESC LIMIT x OFFSET y? Vote tabula te vispār ņipričom, ja ir tāda kolonna. Šis ņemt ikai where... bet kā pēc šī nedēļās cikla turpināt ar atlikušajām bildēm.. kuras būs tikai pēc tota_votes DESC Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 30, 2014 Report Share Posted October 30, 2014 "OFFSET y"...jeb tu domā iepriekšējās nedēļas? Tad jāpielāgo date salīdzināšana. Quote Link to comment Share on other sites More sharing options...
goma smile Posted October 30, 2014 Author Report Share Posted October 30, 2014 Nu mans plāns ir tāds Iet nedēļas tops nu tur 10 bildes kā pirmās pēc balsojuma (Pievienotas ar nedēļas intervālu) un pēc šīm 10 bildēm iet pārējas bildes pēc total_votes Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 30, 2014 Report Share Posted October 30, 2014 izskatīsies baigi dīvaini - pirmās 10 ar salīdzinoši zemu balsu skaitu, nākamās ar lielu (pievienotas agrāk, savākušas lielāku balsu skaitu). Quote Link to comment Share on other sites More sharing options...
goma smile Posted October 30, 2014 Author Report Share Posted October 30, 2014 izskatīsies baigi dīvaini - pirmās 10 ar salīdzinoši zemu balsu skaitu, nākamās ar lielu (pievienotas agrāk, savākušas lielāku balsu skaitu). es zinu bet tas domats lai pedejo labako izceltu... Ir iespējams tādu vaicājumu uztaisīt.. ? Quote Link to comment Share on other sites More sharing options...
e-remit Posted October 30, 2014 Report Share Posted October 30, 2014 Ir iespējams. Vienkāršākais - taisīt divus pieprasījumus, bet sarežģītāk, pēc principa: SELECT id, lauks1, lauks2, ord FROM (SELECT id, lauks1, lauks2, 0 AS ord FROM tabula WHERE lauks1 > :te_var_funkciju ORDER BY lauks1 LIMIT 10) UNION SELECT id, lauks1, lauks2, ord FROM (SELECT id, lauks1, lauks2, 1 AS ord FROM tabula ORDER BY lauks1 LIMIT 20) ORDER BY ord, lauks1 T.i. atlasi abus atsevišķi, tad ar UNION saliec kopā un skaties, kas sanāk. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 30, 2014 Report Share Posted October 30, 2014 (edited) Smukāk tomēr būtu atsevišķi, kodā būtu lasāmāk un saprotamāk. Pie tam otrajā selektā, visticamāk, vajag excludot tos id, kas ir pirmajā. Edited October 30, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
e-remit Posted October 30, 2014 Report Share Posted October 30, 2014 UNION strādā, kā DISTINCT, tāpēc arī var neuztraukties par to, vienīgi jāskatās uz ierakstu skaitu, lai pareizu dabūtu. Protams, šis risinājums var izrādīties lēns, bet diez vai autora kodam draud liela noslodze. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted October 30, 2014 Report Share Posted October 30, 2014 Tu mani nesaprati... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.