aiuto matrice

sir_snake

Nuovo Utente
3 Lug 2006
3
0
0
salve a tutti,
sapreste dirmi cos'è che non va?

Codice:
$appotitolo = mat[$n+1][1];
$appotesto = mat[$n+1][2];
$mat[$n+1][1]=$mat[$n][1];
$mat[$n+1][2]=$mat[$n][2];
$mat[$n][1]=$appotitolo;
$mat[$n][2]=$appotesto;

se vi serve tutto lo script chiedete pure, comunque $mat è una matrice n*2 che contiene delle news.
nello specifico, nella colonna 1 ci sono i titoli e nella colonna 2 i testi.
Questo pezzo di script in teoria mi dovrebbe scambiare la riga $n con la successiva, ma non va e non riesco a capire dove sbaglio...

HELP ME PLEASE!
 
Non so se sia un errore di trascrizione, ma nelle prime 2 righe manca il "$" prima di "mat". Cmq, qualche riga di condice in più non sarebbe male.

CIAU CIAU
 
effettivamente è un errore di trascrizione...
questo è tutto lo script, sono state aggiunte degli echo in modo che commentando alcune parti posso vedere come si comporta lo script e sono arrivato alla conclusione che quel pezzo non funziona e blocca tutto. infatti se commento quelle poche istruzioni che mi scambiano le righe della matrice lo script non si blocca più.
Un ultimo appunto: non fate caso al fatto che in questo script la parola "ottimizzazione" non si sa neanche dov'è di casa, ho espanso il codice in modo da capire qual'era il problema...

Codice:
<?
if (!$apri = fopen("dati.dat","r")){
	echo "Non posso aprire il file (conteggio news)";
}else{
	$c=0;
	//Leggo il numero delle news
	while(!feof($apri)){
	$leggo = str_replace("\r\n", "", fgets($apri));
	$leggo = str_replace("\r\n", "", fgets($apri));
	$leggo = fgets($apri);
	$c++;
	}
}
$c--;
fclose($apri);
echo "<h3>Tot news $c</h3><br /><br />".$_REQUEST["num"]."<br />".$_REQUEST["pos"]."<br><br><h3>Contenuto matrice</h3><br><br>";

//Carico le news nella matrice
$mat[$c+1][2];
$i=0;

if (!$apri = fopen("dati.dat","r")){
	echo "Non posso aprire il file (lettura news)";
}else{
	while((!feof($apri)) && ($i<$c)){
	$mat[$i][1] = str_replace("\r\n", "", fgets($apri));
	echo $mat[$i][1]."<br>";
	$mat[$i][2] = str_replace("\r\n", "", fgets($apri));
	echo $mat[$i][2]."<br><br>";
	$leggo = fgets($apri);
	$i++;
	}
}
fclose($apri);

//Effettuo lo scambio
if((isset($_REQUEST["num"])) && (isset($_REQUEST["pos"]))) {
	$n=$_REQUEST["num"]-1;
	echo "$n<br>";
	$p=$_REQUEST["pos"];
	echo "$p<br>";
	if ( $p == 'su' ) {
		echo "Spostamento in basso della news numero $n";
		$mat[$c][1] = $mat[$n+1][1];
		$mat[$c][2] = $mat[$n+1][2];
		$mat[$n+1][1]=$mat[$n][1];
		$mat[$n+1][2]=$mat[$n][2];
		$mat[$n][1]=$mat[$c][1];
		$mat[$n][2]=$mat[$c][2];
		}
	if ( $p == 'giu' ) {
		echo "Spostamento in alto della news numero $n";
		$appotitolo=$mat[$n][1];
		$appotesto=$mat[$n][2];
		$mat[$n][1]=$mat[$n-1][1];
		$mat[$n][2]=$mat[$n-1][2];
		$mat[$n-1][1]=$appotitolo;
		$mat[$n-1][2]=$appotesto;
		}
	}
echo "<br><br><h3>Dopo lo scambio</h3><br><br>";
$i=0;
while($i<$c) { echo $mat[$i][1]."<br>".$mat[$i][2]."<br><br>"; $i++;}


//Riscrivo le news ordinate nel file
if (!$apri = fopen ("dati.dat","a+")) {
	echo "non posso aprire il file (riscrittura news)";
}else{
	$apriw = fopen ("dati.dat","a+");
	$linea ="\r\n\r\n";
	for($i=0;$i<$c;$i++) {
	$titolo=$mat[$i][1]; $testo=$mat[$i][2];
	fputs($apriw,"$titolo");
	fputs($apriw,"$testo");
	fputs($apriw,"$linea");
}
fclose($apriw);
}
?>
 
scusate, come non detto... non era un problema di trascrizione, ma era proprio che mi ero scordato un paio di $ nello script e alle 3 di notte ero troppo tordo per farci caso... grazie mille e scusate se vi ho fatto perdere tempo... scrivo qui se dovessi avere altri problemi, ok?
 

Discussioni simili