Kyselen vielä kun ite en saa millään toimimaan. Minulla on lomake, missä annetaan linkin teksti ja tiedosto, joka tallennetaan palvelimelle.Teksti tallennetaan tietokantaan. Asia on kunnossa. Mutta tulostus ulos tökkii.
while ($teksti_tulostus = mysql_fetch_row($kysely))
{
$a[] = $teksti_tulostus[1];
}
Sitten
$handle=opendir($upload_dir);
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
for($i = 0; $i < count($a); $i ){
$filelist .= "" .$a[$i] ."";
}
}
}
Tuo toimii hyvin, jos tallentaa vain yhden tiedoston. Mutta jos tallentaa useamman, tulostuu aina tiedoston nimet peräkkäin, joista linkki samaan tiedostoon.
Esimerkiksi tiedoston nimet 1.jpg > nimi eka ja 2.jpg > toka.
ekatoka -> 1.jpg
ekatoka -> 2.jpg
Tarviin varmaan katkaista jotenkin looppi?
while ($teksti_tulostus = mysql_fetch_row($kysely))
{
$a[] = $teksti_tulostus[1];
}
Sitten
$handle=opendir($upload_dir);
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
for($i = 0; $i < count($a); $i ){
$filelist .= "" .$a[$i] ."";
}
}
}
Tuo toimii hyvin, jos tallentaa vain yhden tiedoston. Mutta jos tallentaa useamman, tulostuu aina tiedoston nimet peräkkäin, joista linkki samaan tiedostoon.
Esimerkiksi tiedoston nimet 1.jpg > nimi eka ja 2.jpg > toka.
ekatoka -> 1.jpg
ekatoka -> 2.jpg
Tarviin varmaan katkaista jotenkin looppi?
Vastaukset 1
Vanhimmat
on siinä, että siinä on kaksi sisäkkäistä silmukkaa. Kun hakemistoa luetaan kerran, suoritetaan sisempi for-silmukka niin monta kertaa kun taulussa on elementtejä.
Silmukan katkaisemisesta ei ole hyötyä.
Mikset tallenna tietokantaan enemmän tietoa tiedostoista esim. tiedoston nimi? Tällöin riittää, että silmukka ajetaan vain kerran. Tosin koodin joutuu kirjoittamaan uusiksi.