Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP Tallentaminen multiple array:hin

hevonen [26.11.2008 18:03:01]

#

Ongelma: tallentaa kansion nimi sekä kansion osoite multiple-dimensional arrayhin. Kansioiden nimet ovat 0, 1, 2, 3, 4, 5,...

Havaintoja:
Kansion nimi ja sen osoite pitää tallentaa luultavasti multiple arrayhin, kuten:

<?php
$nameArray = array("Kansiot" =>
array (
    0=> "Kansio1",
    1=> "Kansio2",
    2=> "Kansio3"),

"KansionOsoite" =>
array (
    0 => "KansioOsoite1",
    1 => "KansioOsoite2",
    2 => "KansioOsoite3",)
);
?>

Näin voisi käyttää php.net:in koodia, joka palauttaa arrayn koon:

<?php
function count_recursive ($array, $limit)
{
    foreach ($array as $id => $_array)
    {
        if (is_array ($_array) && $limit > 0) $count += count_recursive ($_array, $limit - 1); else $count += 1;
    }
    return $count;
}
?>

Array:n koon avulla voisi näin tallentaa kansion nimen arrayhin:

<?php
mkdir("/Applications/MAMP/htdocs/".($count+1), 0700);
$nameArray[($count+1)] = ($count+1);
?>

Tapahtuuko tuo uuden kansion talletus tuohon arrayhin näin:

<?php
$nameArray[] = array(($count+1) => 'url_newKansio');
?>

En saanut tuota koodia vielä toimimaan, joten totetustavassa on mahdollisesti vikaa.

Metabolix [26.11.2008 21:36:45]

#

Voisit jatkossa panostaa siihen, että selittäisit ajatuksesi ymmärrettävästi. Mikä on kansion nimi ja miten se eroaa osoitteesta?

Joka tapauksessa taulukkosi on huonoin päin. Mieti asiaa loogisesti.

<?php
$kansiot = array(
  0 => array("nimi" => "Matti", "osoite" => "Mappi Ö"),
  1 => array("nimi" => "Liisa", "osoite" => "Mappi L"),
);
$seuraava_id = count($kansiot); // 2
// aivan samanlainen array-rivi kuin aiemminkin:
$kansiot[$seuraava_id] = array("nimi" => "Pekka", "osoite" => "Mappi P");
$seuraava_id++;

echo $kansiot[1]["nimi"];
?>

Pakko on kysyä: etkö osaa ollenkaan lukea oppaita, vai miksi perusasiat ovat niin hukassa?

hevonen [26.11.2008 21:59:41]

#

@Metabolix: Ensimmäisen kansion nimi on 0, toisen 1, kolmannen 2 jne.
Osoiteella tarkoitan urlia: esimerkiksi "/public_html/files/pdf/1", jossa viimeinen numero on myös kansio nimi.

Olen rakentamassa yksinkertaista koearkistoa, jossa on kurssin nimi ja viite kokeeseen. Arkisto kattaa vain CS:sän.

Onko järkevämpää käyttää tietokantaa vai arrayta tuon toteuttamiseen?

Arrayllä tarkoitan, että php -koodi tallettaa kokeen nimen ja viitteen kokeeseen .txt -fileen array muotoon.

Metabolix [27.11.2008 13:32:23]

#

Mitä järkeä sitten on tallentaa se osoite erikseen, jos voit tuottaa sen aina tarvittaessa lisäämällä nimen eteen tekstin "/public_html/files/pdf/"? Eikö riittäisi taulukko
array(0 => "Java-perusteet", 1 => "Javan jatkokurssi") jne?

Voit tallentaa tiedostoon mitä tahansa, kun muutat sen ensin tekstiksi serialize-funktiolla. Ladatessa se täytyy vastaavasti purkaa unserialize-funktiolla. Lue näistä lisää PHP:n manuaalista.

Vastaus

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

Tietoa sivustosta