Autor Zpráva
klaveska
Profil *
Mohl by mi nekdo poradit, jak do galerie obrazku vlozit ke kazdemu obrazku vlastni komentar? nebo aspon jak by to melo fungovat... melo by to byt pres MySQL. Ale nemam ani paru, jak... to musi mit kazdy obrazek svou tabulku v databazi?
Taps
Profil
klaveska
Já si myslím, že to bude fungovat podobně jak vkladání komentářů ke článkům
Alphard
Profil
to musi mit kazdy obrazek svou tabulku v databazi?
ne :-) to by to vypadalo

vše záleží na tom, jak to máš udělané
chceš dát pouze 1 komentář, nebo více?
jestli jen jeden a máš o každém obrázku záznam v db (např. cestu), jen přidáš sloupec pro komentář
jestli více a každá fotka má záznam v db, tak např. podle id spojiš s tabulkou komentare, kam je budeš ukládat
klaveska
Profil *
Alphard

EE fotky nemají v databázi žádné záznamy... vůbec o ni neví... Mám to udělané tak, že jsem si uploadl na FTP adresář s fotkama a pomocí jedneho scriptu se mi nahledy fotek vypisi na strance. Např. ze jsou fotky ve 4 sloupcich a na 4 radcich...
A zbytek ja na dalsich stranach...

Tady je zdrojak, ktery mi vytvari tu galerii:



<?php

Function ZobrazGalerii($cesta, $cesta_male,$strana = 2, $sirka_tabulky = "100%", $pocetH = 4, $pocetV = 4)
{
$adresar = OpenDir($cesta); // otevre adresar
$soubor = Array(); // zinicializuje pole
while ($zaznam = ReadDir($adresar)) { // nacte nazev souboru
if (!Is_Dir("$cesta/$zaznam")) { // zkontroluje zda neni nazev adresar
$soubor[] = $zaznam; // ulozi do pole soubor
}
}
CloseDir($adresar); // uzavre adresar
Sort($soubor); // srovna nazvy souboru

echo "<table width=$sirka_tabulky class=tabulkagalerie> <tr> ";
$sloupec = 0;$radka = 1;
$sirka = Floor(100 / $pocetH); // procentualni sirka jednoho sloupce

$obrazek_cislo = ($_GET["strana"] - 1) * $pocetH * $pocetV; // ktery obrazek bude prvni
while ($obrazek = $soubor[$obrazek_cislo]) // opakuj dokud nevycerpame vsechny obrazky

{
$sloupec++;
if ($sloupec > $pocetH) { // pokud sloupec prekroci pocet cloupcu,
$sloupec = 1; $radka++; echo "</tr><tr> "; // .., tak se vytvori nova radka
}
if ($radka > $pocetV) break; // pokud prekrocime pocet radku, skoncime cyklus
echo "<td width="$sirka%">";
echo "<a href="$cesta/$obrazek">";
echo "<img src="$cesta_male/$obrazek"></a>";
echo "</td> ";
$obrazek_cislo++;
}

echo "</tr><tr><td colspan=$pocetH align=center> ";
$pocet_stran = Ceil( Count($soubor) / ($pocetH * $pocetV) ); // spocitame pocet stran galerie
for ($i=1; $i<=$pocet_stran; $i++) { // cyklus pro zobrazeni navigacni listy
if ($i!=$_GET["strana"]) {
echo "<a href=?strana=$i>$i</a> | ";

} else {
echo "$i | ";
}
}
echo "</td></tr></table> ";
}

?>



Ja totiz nevim, jak se ty zaznamy fotek davaji do databaze...
Alphard
Profil
neupřesnil jsi, takže přepokládám 1 fotka = 1 komentář
nejlepší by bylo celé to překopat :-)
vytvořit tabulku se 3 sloupci - id, nazev_fotky a komentar
a stránkování předělat do zpracování z výsledků z databáze

ale to se ti asi nechce :-)
takže jestli je fotek přijatelné množství (počítá se na desítky, maximálně stovky), tak:
vytvoř tabulku se 2 sloupci - nazev_fotky a komentar
poté načteš všechny záznamy do asociativního pole

// tohle bude na začátku
$result = mysql_query ("select nazev_fotky, komentar from fotky");
if (!$result) echo mysql_error(); else
while (list ($jmeno, $komentar) = mysql_fetch_row ($result))
$fotky[$jmeno] = $komentar;

a pak

echo "<td width="$sirka%">";
echo "<a href="$cesta/$obrazek">";
echo "<img src="$cesta_male/$obrazek"></a>";
echo "<span>".$fotky[$obrazek]."</span>";
echo "</td>";



jestli 1 fotka = více komentářu, tak se komplikacím nevyhneš
klaveska
Profil *
Diky moc zitra na to skcim... Jenom jedna vec. Co je to asociativni pole? A potrebuji aby u kazde fotky byl formular a pod nim vypis komentaru od ostatnich uzivatelu..
Alphard
Profil
A potrebuji aby u kazde fotky byl formular a pod nim vypis komentaru od ostatnich uzivatelu..
aha, takže varianta 1 fotka = více komentářů, to bude složitější
zapomeň na předchozí příspěvek, tak to nepůjde
budou potřeba 2 tabulky
fotky - id | nazev
komentare - id | id_fotky | komentar
zpracování bude mnohem složitější
možná se spíš podívej po něčem již hotovém
klaveska
Profil *
jn snazil jsem se... ale bohuzel jsem nic nenasel... mozna jsem spatne hledal.

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