Newsgroup: it.comp.www.php
Titolo: Aiuto problemi array bidimensionali

Avrei la necessità di creare un database su txt (scelta aziendale di
non investire denaro).
Ho effettuato uno script che apre un file in lettura, con il comando
esplode() va a copiare il contenuto dell’array $scomponi[] numerico in
un array bidimensionale relazionale $test.
Purtroppo non sono ferrato in materia e non riesco una volta assegnati
i valori a visualizzare il valore presente nella posizione
$test[2]["primo"]. Potreste gentilmente darmi una mano ed indicarmi
dove sbaglio? Vi riporto qui di seguito lo script.
<--- codumento di testo da salvare in db.txt -->
Questa è	una semplice	prova
Probabilmente	non	funzionerà
Nel mentre	cantiamo	tutti insieme
Nel boschetto	della mia fantasia	c'è un fottio
di animaletti	inventati da me.	C'è il vitello con
i piedi di spugna	il vitello con	i piedi tonnati
ed indovina chi c'è?	c'è pure il vitello con i piedi	di cobalto
il vitello	con i piedi tonnati	quattro ne ho
inventati	sono gli animali	della mia
e della	tua	fantasia.
N.B. i campi sono separati dalla tabulazione \t
<-- codice php -->
<HTML><HEAD><TITLE>Pagina di prova</TITLE></HEAD><BODY>
<?php
$file = 'db.txt';
//vediamo se esiste il file
if (file_exists($file)) {
   echo "il file $file esiste<br>";
} else {
   echo "Il file $file non esiste<br>";
}
//Apriamo il file in sola lettura lettura
$aprire = fopen($file, "r");
//scriviamo se ha dato esito positivo
if ($aprire) {
    echo "Aperto file correttamente. Ora vedrai il contenuto del
file:<br>";
}
else {
	echo "Non è stato creato il file in quanto sono stati
riscontrati problemi<br>";
}
//breve visualizzazione contenuto file attraverso tabelle
echo "<table border=1>";
while (!feof($aprire)) {
    $acquisisci = fgets($aprire, 4096);
    $scomponi = explode("\t", $acquisisci);
//qui è l\'errore
    $test = array (array(primo=>$scomponi[0], secondo=>$scomponi[1],
terzo=>$scomponi[2]));
    $transito = array(primo=>$scomponi[0], secondo=>$scomponi[1],
terzo=>$scomponi[2]);
	echo
("<tr><td>".$transito[primo]."</td><td>".$transito[secondo]."</td><td>".$transito[terzo]."</td></tr>");
}
echo "</table>";
echo "<br>scrivi questo valore".$test [2]["primo"]."<b>qui</b>";
fclose($aprire);
?>
</BODY>
</HTML>

 terzo=>$scomponi[2]));
in questo modo, $test viene creato da zero ad ogni ciclo, mentre se ho
ben capito tu alla fine vuoi una matrice che rappresenti la tabella in
$test. L'array $transito[] puoi crearlo prima, così lo aggiungi a $test.
Infine, non controlli se esistano effettivamente i vari $scomponi[#].
Alla fine, ecco il pezzo di codice modificato:
if ( count($scomponi) == 3 ) {
	$transito = array ( 'primo' => $scomponi[0], ... );
	$test[] = $transito;
	echo ... $transito['primo'] ... ;
}
Nota che bisogna aggiungere degli apici a "primo" (e devi fare lo stesso
con gli altri due), per evitare i notice.
Ciao.
Tristan

 un array bidimensionale relazionale $test.
[..]
non faresti prima ad usare qualche DBMS che si basa su file invece di
riscriverne uno tu?
-- 
www.iuz-lab.info
Home Politics - 
http://www.iuz-lab.info/homepolitics.php

riscriverne uno tu?
Non sono molto pratico, ne ho sentito parlare ma non so nè come
funzionino nè dove trovarli. Se non ho capito male sono degli script
precompilati o sbaglio?
Saresti così cortese da darmi qualche dritta?
P.S. vorrei ringraziare Tristan per l'aiuto mirato e preciso. Ora
funziona correttamente. tnx

 funziona correttamente. tnx
-- 
