Rendrování (náhodný výber) obrázku z DB

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
parti
Člen | 117
+
0
-

Dobrý den potřeboval bych poradit.
Je nějaká možnost respektive asi bude jak z DB vypsat obrázky ale jako náhodý výber(render)?
Takhle mám postavený dotaz do db který mi je tahá ven na frontend.

má nette nějaku možnost jak do dotazu zabudovat například Order by … a něco.
Děkuji moc za nápady

public function getPhotos($galleryId = NULL){

        if ($galleryId == NULL) {

            return $this->database
                ->table(self::TABLE_NAME)
                ->where('smazano', FALSE);
        }

        return $this->database
                ->table(self::TABLE_NAME)
                ->where('smazano', FALSE)
                ->where('galerie_id',$galleryId);

    }
Šaman
Člen | 2666
+
0
-

Samozřejmě má – zkoušel jsi třeba googlit „nette database order by“? Tohle je první odkaz.
Nicméně pro náhodné zobrazení bych si spíš načetl všechna dostupná id, z nich nějaká vybral a jejich záznamy si pak načetl a zobrazil.

Editoval Šaman (28. 12. 2016 0:03)

parti
Člen | 117
+
0
-

ano zkoušel než sem napíšu nejaky dotaz vždy se nejdřiv zeptám googlu. Samozrejme budu pátrat dále jenom občas dobrá rada ušetří spoustu času anebo pomuže nasmeřovat.

Editoval parti (28. 12. 2016 0:10)

igor.pocta
Člen | 100
+
0
-

Pokud jako „náhodý výběr(render)“ myslíš náhodný výběr, tak
je možnost napsat si tam vlastní query, kde ti ten náhodný výběr provede databázový server.
„$database->query("SELECT * FROM tabulka ORDER BY RAND() LIMIT 10“);

parti
Člen | 117
+
0
-

super dekuji jdu to zkusit
Dik moc za radu

parti
Člen | 117
+
0
-

**Call to undefined method Nette\Database\Table\Selection::rend(), did you mean rewind()? **

Nevím ale říka mi to že rend to nezná?
Takhle jsem napsal dotaz do db

public function getPhotoRender($galleryId){
       return $this->database
        ->table('galerie')
               ->where('smazano', FALSE)
               ->order ('galerie_id',$galleryId)->rend();
   }

Editoval parti (28. 12. 2016 0:37)

uestla
Backer | 799
+
0
-

@parti rend() tu nikdo nezmiňoval, to ses jen přehlédl.

Svého dosáhneš pomocí ->order('RAND()').

parti
Člen | 117
+
0
-

Dekuji moc funguje to
Fakt super komunita a super lide na foru.
Ješte jednou DIK

Editoval parti (28. 12. 2016 21:15)