Page 1 sur 1

seule la dernière ligne d'un tableau s'affiche

Posté : 07 avr. 2011, 22:19
par Boro64
Bonjour
Je cherche à écrire toutes les lignes (clé + valeur) d'un tableau dans un fichier texte pour affichage.
Or, ne s'écrit ( et donc ne s'affiche) que la dernière ligne du tableau...
voici mon code:
if (isset($_POST['creer'])){

$titre = $_POST['titre'];
$infobdp = $_POST['infobdp'];
	
		// on affiche le nombre de champs du formulaire
		echo 'Vous venez de créer une carte avec => '.$_POST['nb_champs'].' lignes<br /><br />';
		echo 'Titre: ' .$titre.' <br /><br />';

		// on affiche la valeur des champs du formulaire
		for ($i=1; $i<=$_POST['nb_champs']; $i++){
				$champ_plat = 'plat_'.$i;
				$champ_prix = 'prix_'.$i;
				$value = $_POST[$champ_plat];
				$value2 = $_POST[$champ_prix];
				echo 	'Plat '.$i.' : '.$value.' Prix '.$i.' : '.$value2.'<br /><br /><br />';

				
				$insert_titre 	= '<p class="carte">'.$titre.' :</p>';
				$ligne = array($value => $value2);
				while (list($plat, $prix) = each($ligne))
				{
				$newligne = '<p class="plat"><span>'.$plat.'</span> '.$prix.'</p>';
				}
				$insert_bdp 	= '<p class="plat"><span class="note">'.$infobdp.'</span></p>';

				$newmenu = ($insert_titre . $newligne . $insert_bdp);
		$texte = chmod('../codes/menu.txt', 0777);
		$file = fopen('../codes/menu.txt', 'w+');
		
		fseek($file, 0);	
		fputs($file, $newmenu);

	fclose($file);			
		
		}
				echo 'Information supplémentaire: '.$infobdp.' ';
				
}
Dans cet exemple j'ai utilisé une boucle while, mais j'ai aussi testé avec foreach avec toujours le même résultat.
Pourriez vous me dire, où est mon erreur ou oubli?
D'avance merci

Re: seule la dernière ligne d'un tableau s'affiche

Posté : 07 avr. 2011, 22:33
par misterflo
Bonsoir,
dans ton while tu change à chaque fois la valeur de ton $newligne, il faudrait faire une concaténation.
 while (list($plat, $prix) = each($ligne))
{
$newligne .= '<p class="plat"><span>'.$plat.'</span> '.$prix.'</p>';
//Il y a un point avant le =
}
Regarde du côté des fonctions file_get_contents http://php.net/manual/fr/function.file-get-contents.php et file_put_contents http://www.php.net/manual/fr/function.f ... ntents.php
C'est mieux que un fopen fputs...

Re: seule la dernière ligne d'un tableau s'affiche

Posté : 07 avr. 2011, 22:38
par Boro64
:oops: Merci toi misterflo...je me doutais bien que c'était un simple problème de "boulet" :mrgreen:
Oui, pour le reste aussi je vais améliorer ça, mais c'était surtout cette bête concaténation qui me bloquait.
Un immense merci à toi! :pouce: