Avatar billede nicolaib Praktikant
09. februar 2008 - 11:28 Der er 1 kommentar og
1 løsning

Udskriv array i JavaScript fra mappe el. db

Jeg har disse to scripts som skal bruges til at udskrive et array i JavaScript. Arrayet skal indeholde de billeder som ligger i en bestemt mappe.

Jeg har disse to scripts.
Det første som udskriver hvad der ligger i den angivne mappe og det andet som udskriver hvad der ligger i tilhørende database.
Mappescriptet virker fint men udskriver billederne i alfabetisk rækkefølge. Det skal udskrives i den rækkefølge som de ligger i databasen.
Derfor har jeg lavet det andet men jeg kan ikke få det til at virke. Hvad er galt??
Der er ingen fejlmeddelelser og kildekoden giver præcis samme resultat i de to scripts.
// Mappescript
function dirList ($directory){
$results = array();
$handler = opendir($directory);
while ($file = readdir($handler)) {
if ($file != '.' && $file != '..')
$results[] = $file;
}
closedir($handler);
return $results;
}

$katalog = (dirList("./pictures/"));
$suma = count ($katalog);
for ($i=0;$i<$suma;$i++)
{
$plik = $katalog[$i];
$size = getimagesize("pictures/$plik");
$szerokosc = $size[0];
$wysokosc = $size[1];
$n = $i+1;
if ($i==$suma-1) {print "new Array(\"$plik\", \"$szerokosc\", \"$wysokosc\", \"Photo number: $n\")\n"; }else{
print "new Array(\"$plik\", \"$szerokosc\", \"$wysokosc\", \"Photo number: $n\"),\n";}
}

//Databasescript
    $i=1;
    $antal = 30;
   
    $database = "mariaedwards";
    require_once('../../db/db_connect_local.php');
    $query = mysql_query("SELECT * FROM pictures");
   

    while($row = mysql_fetch_array($query))
    {
        if($i<= $antal)
        {
            $size = getimagesize("pictures/".$row['filename']);
            echo "new Array(\"". $row['filename'] ."\", \"". $size[0] ."\", \"". $size[1] ."\", \"Photo number: ". $i ."\"),\n";
           
            $i++;                           
        }
    }
Avatar billede olebole Juniormester
09. februar 2008 - 16:38 #1
<ole>

Så bør du vel have et id-felt med 'autoincrement', du kan sortere på:
    $query = mysql_query("SELECT * FROM `pictures` ORDER BY `id`");

- og så skal du næppe bruge '*' - med mindre, du virkelig skal bruge samtlige felter i hver række  ;o)

/mvh
</bole>
Avatar billede nicolaib Praktikant
11. februar 2008 - 08:42 #2
Jeg har fundet fejlen. Jeg udskriver et komma efter sidste linje i arrayet. Det havde jeg overset. Nu skal jeg bare have det fjernet.
Jeg lukker her og takker for ulejligheden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester