Autor Zpráva
panmagor
Profil *
Uhňácal jsem si jednoduchou galerii, kdy do složky naházím soubory, do DB zapíší název a následně je zobrazím na stránce.. JENŽE- Já bych u konkrétní série fotek chtěl zobrazit i název, z jaké akce pocházejí.. Ale pokud zařadím výpis názvu do "while" tak se mi zobrazí u každé fotky.. Jak upravit, aby se zobrazil pouze jednou (nad první fotografií z dané akce)?

$res = mysql_query("SELECT idfoto,nazev,akce FROM galerie JOIN akce"); 
    if( mysql_num_rows($res) == 0){ echo "Žádné fotky v galerii"; }
     
    while ( $data = mysql_fetch_assoc($res)) 
{
    echo "<a href=img/foto/$data[nazev]>";
    echo "<img src=img/foto/$data[nazev] class=\"mini\">";
    echo "</a>";
  
} 
kletely
Profil
panmagor
Použi WHERE ;)
deter
Profil
panmagor: nejlepší by bylo, kdyby jsi si rozdělil akce a fotografie do dvou různých tabulek. V tabulce akce by jsi pak měl například sloupce id_akce, nazev_akce a ve fotografie ..cokoliv ... a id_akce.
Dotaz by pak vypadal nějak následovně :

function vyblij_fotky($akce_k_zobrazeni) {

$query="SELECT f.nazev, f.id_akce, a.id_akce, a.nazev_akce FROM fotografie f INNER JOIN akce a ON f.id_akce=a.id_akce WHERE a.id_akce=='$akce_k_zobrazeni' "

$res = mysql_query($query);
if( mysql_num_rows($res) == 0){ echo "Žádné fotky v galerii"; }

$x=mysql_fetch_assoc($res); echo $x['nazev_akce']; //Tady se vypíše název té dané akce
while ( $data = mysql_fetch_assoc($res))
{
echo "<a href=img/foto/$data[nazev]>";
echo "<img src=img/foto/$data[nazev] class=\"mini\">";
echo "</a>";

}

vyblij_fotky('1'); // vyblije všechny fotky z akce, která má id 1

vyblij_fotky('2'); // vyblije všechny fotky z akce, která má id 2

atd...
panmagor
Profil *
nejlepší by bylo, kdyby jsi si rozdělil akce a fotografie do dvou různých tabulek

Přesně tak to mám ;-) Díky za radu.. Mrknu na to...
panmagor
Profil *
Tak jsem po menších problémech ten script víceméně upravil tak, že funguje. Nefungoval mi s

id_akce=='$akce_k_zobrazeni'
. Když jsem to zapsal jako
id_akce='$akce_k_zobrazeni'
Tak to šlo. A má to stále jeden háček... Nevypíše to první položku z tabulky "galerie" tedy- Nezobrazí to první fotku galerie. Ostatní ano...
panmagor
Profil *
Tak mi kolega pomohl...
$i= 0;
  while ( $data = mysql_fetch_assoc($query) )
  {
  if ($i == 0)  echo '<p class="nadpis">'.$data['akce'].'</p>'; $i++;
  echo '<a href=img/foto/'.$data['nazev'].'>';
  echo '<img src=img/foto/'.$data['nazev'].' class="mini">';
  echo "</a>";

  } 
panmagor
Profil *
Ještě jedna věc... Pokud platí podmínka, že mysql_fetch_row vrátí 0 (Tedy zobrazí hlášku, že je galerie prázdná). Jenže ta hláška se zobrazí pokaždé, když já tu funkci zavolám. Takže pokud zavolám přesně jako v tom scriptu, mám vedle sebe 2x že je prádná.. Dalo by se to nějak omezit?

function vyblij_fotky($akce_k_zobrazeni) 
{
  
  $query = mysql_query("SELECT nazev,idakce,id_akce,akce FROM galerie JOIN akce ON id_akce=idakce WHERE idakce = '$akce_k_zobrazeni'");
  
  if( (mysql_num_rows($query) == 0) ){ echo "Žádné fotky v galerii"; }
  
  $i= 0;
  
  while ( $data = mysql_fetch_assoc($query) )
  {
  if ($i == 0)  echo '<p class="nadpis">'.$data['akce'].'</p>'; $i++;
  echo '<a href=img/foto/'.$data['nazev'].'>';
  echo '<img src=img/foto/'.$data['nazev'].' class="mini">';
  echo "</a>";

  } 
}
  vyblij_fotky('1');
  vyblij_fotky('2');

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0