Nette\database a vypsani nahodneho prvku z tabulky potomka

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

Ahoj, trápím se s tím už skoro celý den, a už si nevím rady. Mám tabulky galerie_kategorie (id, nazev, popis, cas) a galerie (id, fotka, galerie_kategorie_id) reprezentovány modely galerieSeznam a galerie. V seznamu kategorii chci vypisovat jednu nahodnou fotku z dané kategorie, nicméně nedaří se mi tabulky propojit. Příkládám příslušný presenter a šablonu. Předem díky za pomoc.

<?php
namespace FrontModule;
class GaleriePresenter extends BasePresenter
{
  private $galerieSeznam, $galerie;

  public function renderDefault() {
    $this->galerieSeznam = $this->context->createGalerieSeznam();
    $this->template->galerieSeznam = $this->galerieSeznam->order("cas DESC");
  }
}
?>
{block content}
  <div class="content">
    {foreach $galerieSeznam as $galerie}
      <a n:href="Galerie:detail $galerie->id">
        <div>
          {$galerie->related('galerie')->order("RAND()")->limit(1)->get("fotka")}
        </div>
        <b>{$galerie->nazev}</b><br />
        pocet fotek: {$galerie->related('galerie')->count()}<br />
        <i>{$galerie->popis}</i>
      </a>
    {/foreach}
  </div>
{/block}

Editoval carpi (19. 5. 2012 2:24)

brabijan
Člen | 8
+
0
-

Vyřešeno, prosím o lock.

{block content}
  <div class="content">
    {foreach $galerieSeznam as $galerie}
      <a n:href="Galerie:detail $galerie->id">
        <div>
          {foreach $galerie->related('galerie')->order("rand()")->limit(1) as $fotky}
            {$fotky->fotka}
          {/foreach}
        </div>
        <b>{$galerie->nazev}</b><br />
        pocet fotek: {$galerie->related('galerie')->count()}<br />
        <i>{$galerie->popis}</i>
        <div class="clear"></div>
      </a>
    {/foreach}
  </div>
{/block}

Editoval carpi (19. 5. 2012 16:23)

PavelV
Člen | 6
+
0
-

ORDER BY RAND() je nemoudré. http://www.titov.net/…-from-table/ a desítky dalších článků na toto téma.