mam pewien problem z wyświetlaniem spisu galerii na mojej stronie: http://www.balony.aeroklub.wloclawek.pl/index.php?id=4
żeby objaśnić o co mi chodzi posłużę się kodem wyświetlania bloku z tytułem, datą, miniaturką (linkiem do galerii właściwej), opisem i autorem
Kod
$wynik = mysql_query ("SELECT * FROM opisy WHERE nazwa_katalogu = '$nazwa' ORDER BY data DESC") or die(mysql_error());
while ($rekord = mysql_fetch_array($wynik))
{
print "<div class=\"tekst\"><strong>".$rekord[tytul]."</strong></div>";
print "<div class=\"tekst\"><i>".$rekord[data]."</i></div>";
print "
<div class=\"galeria_thumb\">";
print "<a href=\"index.php?id=4&action=zobacz&galeria=".$rekord[nazwa_katalogu]."\">";
print "<img src='".$miniatura."' alt='picture' border=\"0\" /></a></div>";
print "<div class=\"tekst\">".$rekord[opis]."</div>";
print "<p> </p>";
print "<p> </p>";
print "<div class=\"autor\"><strong>autor: </strong>".$rekord[autor]."</div>
";
print "<hr class=\"thin\" />";
}
while ($rekord = mysql_fetch_array($wynik))
{
print "<div class=\"tekst\"><strong>".$rekord[tytul]."</strong></div>";
print "<div class=\"tekst\"><i>".$rekord[data]."</i></div>";
print "
<div class=\"galeria_thumb\">";
print "<a href=\"index.php?id=4&action=zobacz&galeria=".$rekord[nazwa_katalogu]."\">";
print "<img src='".$miniatura."' alt='picture' border=\"0\" /></a></div>";
print "<div class=\"tekst\">".$rekord[opis]."</div>";
print "<p> </p>";
print "<p> </p>";
print "<div class=\"autor\"><strong>autor: </strong>".$rekord[autor]."</div>
";
print "<hr class=\"thin\" />";
}
chodzi o to że nie potrafię posortować tych bloków wedle czegokolwiek. jak doszedłem problem tkwi w tym że podczas zapytania ograniczam ilość pobranych rekordów do jednego, czyli tylko do tego gdzie nazwa_katalogu = '$nazwa'. co prawda jak usunę klauzulę WHERE to wpisy się sortują, ale wtedy cały skrypt się zapętla i każdy blok jest wyświetlany tyle razy ile jest ich wszystkich.
nie wiem jak sobie z tym poradzić: posortować rekordy w tabeli jeszcze przed drukowaniem (jak?), rozbić zapytanie na dwa (spróbowałem i działa tak samo jak w jednym, ale pewnie coś źle robię) czy może jeszcze jakoś inaczej?
edit:
doszedłem do wniosku że błąd wielokrotnego wypisywania tego samego rekordu pochodzi z instrukcji które są bezpośrednio powyżej kodu który wstawiłem:
Kod
else
{
$path = ("galerie");
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
$fName = $file;
$file = $path.'/'.$file;
if(is_dir($file))
{
$aktualny = explode("/", $file);
$nazwa = $aktualny[1];
$zapytanie = mysql_query("SHOW TABLE STATUS LIKE '$nazwa';");
if (mysql_num_rows($zapytanie) == 1)
{
{
$path = ("galerie");
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
$fName = $file;
$file = $path.'/'.$file;
if(is_dir($file))
{
$aktualny = explode("/", $file);
$nazwa = $aktualny[1];
$zapytanie = mysql_query("SHOW TABLE STATUS LIKE '$nazwa';");
if (mysql_num_rows($zapytanie) == 1)
{
przyznam się że część jest zaczerpnięta z netu i za bardzo nie kumam jak to działa :/