[ nikol@c @ 08.10.2007. 08:28 ] @
Na sajtu imam foto galeriju, koja slike kupi iz jednog foldera pomocu php skripte. Sve to radi OK, samo redosljed po kome su slike poredane uopste nije logican. Nisu poredane po imenu, datumu, velicini... Kada obrisem sliku sa servera i ponovo je uploadujem ona se vrati na svoje staro mjesto, sto mi govori da mora postojati neka logika po kojoj ih skripta slaze na stranicu.

Pozdrav,

P.S. Nisam postavio kod jer se mozda neko susretao sa ovim pa mozda vec zna sta bi moglo biti.
[ dakipro @ 08.10.2007. 08:34 ] @
Ja sam se susretao, ali oupsteni odgovor je kao gatanje u zrna. Reorderuj niz koji se kreira od skupljenih slika iz foldera.
[ nikol@c @ 08.10.2007. 09:05 ] @
Evo skripta.

Code:

<?
if (!isset($col)) {
?>
<script language="JavaScript">
var sirina_ekrana=screen.width;

if (sirina_ekrana=="640")

window.location="http://www.king.ba/foto_galeri...ILS&col=3&DIR=<?php echo "$DIR"; ?>";
}
else if (sirina_ekrana=="800")

window.location="http://www.king.ba/foto_galeri...ILS&col=4&DIR=<?php echo "$DIR"; ?>";
}
else if (sirina_ekrana=="1024")

window.location="http://www.king.ba/foto_galeri...ILS&col=6&DIR=<?php echo "$DIR"; ?>";
}
else

window.location="http://www.king.ba/foto_galeri...ILS&col=6&DIR=<?php echo "$DIR"; ?>";
}
</script>
<? } else {
?>
<script language="JavaScript">

function Uvecaj_sliku(S,W,H) {
 prikaz_slike = 'http://www.king.ba/foto_galerija/prikaz_slika.php?slika='+S;
 window.open(prikaz_slike,"",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width='+W+',height='+H+'');
}

</script>

<?php 

require ("conf.php");

MYSQL_CONNECT($host, $kor_ime, $lozinka) OR DIE("Nemoguce je spojiti se na bazu !!!");
@MYSQL_SELECT_db("$ime_baze") or die( "Nemoguce je spojiti se na bazu // Ime baze ???");

   $sql="select id, naslov_kolekcije, opis_kolekcije, direktorijum, broj_slika from slike where direktorijum='$DIR'";
   $result=MySQL_query($sql);

while($rezultat = MySQL_fetch_array($result))

{

$id             = $rezultat["id"];
$naslov_kolekcije    = $rezultat["naslov_kolekcije"];
$opis_kolekcije        = $rezultat["opis_kolekcije"];
$direktorijum        = $rezultat["direktorijum"];
$broj_slika        = $rezultat["broj_slika"];


echo "<font face=\"Arial\" size=\"2\" color=\"#000066\"><span style=\"background-color: #FFFFFF\">&nbsp;<b>$naslov_kolekcije</b>&nbsp;</span><br><br>";
if ($broj_slika!="0") {
/*echo "Broj slika u kolekciji: <b>$#broj_slika</b><br>";*/ }
echo "$opis_kolekcije<br>
<img border=\"0\" src=\"images/transp_10x20.gif\" width=\"50\" height=\"20\"></font>";

}

$direktorijum = $DIR; //Direktorijum gde je kolekcija//

if (!file_exists ("kolekcije_slika/thumbnails/$direktorijum")) {
mkdir ("kolekcije_slika/thumbnails/$direktorijum", 0777); }

$slike_dir = opendir("kolekcije_slika/$direktorijum"); 

$count = 0;

while ($file = readdir($slike_dir)) 

     if ($file != "." && $file != "..") 
     { 
        if (!file_exists ("kolekcije_slika/thumbnails/$direktorijum/th_$file"))
        {
                system("convert -geometry 100 /home/virtual/king.ba/html/foto_galerija/kolekcije_slika/$direktorijum/$file /home/virtual/king.ba/html/foto_galerija/kolekcije_slika/thumbnails/$direktorijum/th_$file");  

        $sql="select broj_slika from slike where direktorijum='$DIR'";
        $result=MySQL_query($sql);

        while($rezultat = MySQL_fetch_array($result))

            {

            $broj_slika = $rezultat["broj_slika"];

            $broj_slika=$broj_slika+1;

            $update = "UPDATE slike SET broj_slika='$broj_slika' WHERE direktorijum='$DIR'";
            @MYSQL_query($update) or die("Update // GRESKA!");

            } //Kraj While za UPDATE broja slika u kolekciji

         }
     
        $SetSlika[$count] = array (
        "BrojSlike"    => ++$count,
        "NazivSlike"   => "http://www.king.ba/foto_galerija/kolekcije_slika/".$direktorijum."/".$file,
        "TambSlike"    => "http://www.king.ba/foto_galerija/kolekcije_slika/thumbnails/".$direktorijum."/th_".$file);
     } 
}

closedir($slike_dir); 


// Obrada prikaza nadjenih slika.
$nKolona  = $col; 
$count    = 0;

If (count($SetSlika)>0)
{    
    echo "<table  border=\"0\" cellpadding=\"0\" cellspacing=\"14\">\n";
    printf ("<tr>\n");    
    foreach ($SetSlika as $rec) 
    {
        If ($count <= $nKolona - 1)
        {
       $fajl1 = $rec["NazivSlike"];
       $fajl2 = $rec["TambSlike"];

 $fajl_velicina = ereg_replace( "http://www.king.ba/foto_galerija/", "", $fajl1);
 $velicina = GetImageSize("$fajl_velicina"); 
 $sirina = $velicina[0]+40;
 $visina = $velicina[1]+20;

       echo "<td><a href=\"javascript:Uvecaj_sliku('$fajl1','$sirina','$visina')\" onMouseover=\"window.status='Klikni ako zelis da vidis vecu sliku!'; return true\" onMouseout=\"window.status=' '; return true\"><img border=\"1\" src=\"$fajl2\" width=\"100\" alt=\"Klikni ako zelis da vidis vecu sliku!\"></a></td>\n";
           ++$count;
        }   
        Else
        {
           printf ("</tr>\n");
           printf ("<tr>\n");
           $count    = 1;

       $fajl1 = $rec["NazivSlike"];
       $fajl2 = $rec["TambSlike"];

 $fajl_velicina = ereg_replace( "http://www.king.ba/foto_galerija/", "", $fajl1);
 $velicina = GetImageSize("$fajl_velicina"); 
 $sirina = $velicina[0]+40;
 $visina = $velicina[1]+20;

       echo "<td><a href=\"javascript:Uvecaj_sliku('$fajl1','$sirina','$visina')\" onMouseover=\"window.status='Klikni ako zelis da vidis vecu sliku!'; return true\" onMouseout=\"window.status=' '; return true\"><img border=\"1\" src=\"$fajl2\" width=\"100\" alt=\"Klikni ako zelis da vidis vecu sliku!\"></a></td>\n";
        }
    }
    printf ("</tr>\n");    
    echo "</table>\n"; 

    echo "<br>\n
    <a href=\"http://www.king.ba/foto_galerija/index.php?dn=SLIKE\" onMouseover=\"window.status='Nazad!'; return true\" onMouseout=\"window.status=' '; return true\"><img src=\"images/nazad_forma.gif\" border=\"0\" hspace=\"25\" alt=\"Vratite se nazad!\"></a><p></p>
<p></p>";

}

} //Kraj !isset ?>




Pitanje, kako ovdje da reorderujem niz.
[ dakipro @ 08.10.2007. 09:19 ] @
Hehe, obozavam mesan php sa html-om
Bojim se da nikako ovo sto sam ti ja reko, niz se uopste i ne pravi... Za sad mi na pamet pada samo da prepravis ceo kod, da prvo skupi sve slike u niz, pa onda da krene crtanje stranice.
P.S. Definitino bi trebao da pogledas neke savremenije tehnike programiranja, bar da pochnes da radis sa nekim templet systemom, ako si uopste ovo ti pisao
[ [KS] @ 08.10.2007. 11:21 ] @
php.net/array

Imas tu funkcije za sortiranje array-a kako zelis ... a mozes i sam napisati jednu

Da se radi o mojoj skripti ja bih uradio ovako:

Code:

        $SetSlika[$count] = array (
        "BrojSlike"    => ++$count,
        "NazivSlike"   => "http://www.king.ba/foto_galerija/kolekcije_slika/".$direktorijum."/".$file,
        "TambSlike"    => "http://www.king.ba/foto_galerija/kolekcije_slika/thumbnails/".$direktorijum."/th_".$file);
     } 


bih zamjenio sa

Code:

 $SetSlika[$count] = $file;
 


a kasnije bih koristio

Code:

 sort($SetSlika);
 


Jer se BrojSlike moze dobiti jednostavno kao trenutna pozicija + 1 a ako se zna direktorijum takodje je lako dobiti i naziv i tamb...