Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hakemistoiksi jakaminen

Sivun loppuun

Debugger [07.09.2005 22:30:09]

#

Elikkä teen MySQL tietokantaa ja käytän PHP:tä hallinnointiin webselaimella. Kysymykseni kuuluu, miten pystyn tekemään, jos tuotteen ID on 99535, että PHP/MySQL tekisi kansion 90000, jonka alla on kansio 9000, jonka alla on kansio 500 jne.

Onko mahdollista?

Niko [07.09.2005 23:09:51]

#

<?php
$numero = 99535;

$m = str_len($numero) - 1;

$kansio = "";
$x = 0;
while($x <= 0){
$kansio .= str_pad(substr($numero,$x,1),$m-$x)."/";
($input, 10);
$x++;
}

?>

ton pitäisi antaa "90000/9000/500/30/5/" jos tätä siis tarkoitit en tiedä onko helpompaa tapaa mutta käytä tota apunas

Debugger [08.09.2005 00:25:10]

#

Mites toi käytännös toimii PHP:n MKDIR komennon kanssa?

Niko [08.09.2005 14:43:10]

#

mkdir($kansio,,true); ?

Debugger [08.09.2005 21:56:56]

#

Niin, mutta miten saan luotua kansioita allekkain?

mkdir("$kansio1",,true);
mkdir("$kansio1/$kansio2,,true);

Vai miten? miten sitten tallennan kaikki kansioiden nimet muuttujiin, eli 90000, 9000, 500, 30 ja 5?

Käyttäen seuraavaa scriptiä:

while($x <= 0){
$kansio .= str_pad(substr($numero,$x,1),$m-$x)."/";
($input, 10);
$x++;
}

ajv [08.09.2005 22:09:19]

#

Valmista koodia ei saisi antaa, mutta pulma oli houkutteleva ja tässä yksi matemaattinen ratkaisu:

<?php
$id = 99535;
$jakaja = 1000000;
$edellinen = 0;
$alkuphakemisto = getcwd();
do{
    $jako = floor($id / $jakaja);
    $tulos = $jako * $jakaja - $edellinen;

    if($tulos != 0){
        @mkdir($tulos, 0777);
        @chmod($tulos, 0777);
        chdir(getcwd().'/'.$tulos);
    }

    echo getcwd().'<br />'; //debug
    $jakaja = $jakaja / 10;
    $edellinen = $edellinen + $tulos;

}while($jako < $id);

chdir($alkuphakemisto); //palataan alkuperäiseen hakemistoon
?>

http://cgi.evtek.fi/~k0101030/hakemisto.cgi
Varmaan saisi paljon fiksummallakin algoritmillä, mutta toimii

Blaze [08.09.2005 22:23:57]

#

Debugger kirjoitti:

Niin, mutta miten saan luotua kansioita allekkain?

mkdir("ali/hakemistoja/vaikka/kuinka/paljon",,true);

Tosin näyttäisi toimivan vain PHP5:ssa. Neloseen sovella vaikka ajv:n menetelmää.

Debugger [09.09.2005 11:43:03]

#

Kiitoksia paljon, kaikki...eiköhän näillä avuin selvitä :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta