Page 1 sur 1

modif/suppression de ligne PHP

Posté : 06 juil. 2012, 15:10
par terminus2012
Bjr,
Je dispose d'un fichier txt contenant plusieurs champs avec un séparateur "*" que j'ai affiché dans un tableau.
Pour chaque ligne du tableau on a un lien pour modifier et supprimer.
Je souhaite à présent modifier/supprimer une seule ligne à partir d'un clic sur le lien et réafficher le tableau

Quelqu'un peut t-il me venir en aide ?

Re: modif/suppression de ligne PHP

Posté : 06 juil. 2012, 15:36
par Mazarini
J'ai peur que tu sois obligé de relire le fichier et de le réécrire en entier (sans la ligne à supprimer).

Re: modif/suppression de ligne PHP

Posté : 09 juil. 2012, 13:53
par terminus2012
Bjr

Ci-joint mon code.
Mais au lieu de supprimer la ligne courante, il me supprime tous les enregistrement du fichier.


<?php
$fichier=fopen ("save.txt", "w+");
if (!$fichier)
die("Erreur lors de l'ouverture du fichier");

else
{

$tab=file("save.txt");
$var = $_GET["del"];//variable du lien supprimer
$nbligne=count($tab);
$verif=0;

for($i=0;$i<$nbligne;$i++)
{
$ligne=explode("|", $tab[$i]);

if($var!=$ligne[0])

{
$newtab[$i]=$tab[$i];
fputs($fichier,$newtab[$i]);
}

else
$verif=1;
}
fclose($fichier);
}


if ($verif==1)
{
echo"<script langage='javascript'>
alert('La ligne a été supprimé avec succès!');
document.location='affichage.php'";/*pour faire une redirection vers la page de connexion*/
echo"</script>";
}
else
{
echo"<script langage='javascript'>
alert('Pas d'enregistrement supprimé!');
document.location='affichage.php'";
echo"</script>";
}
?>

Re: modif/suppression de ligne PHP

Posté : 09 juil. 2012, 14:03
par Mazarini
Il me semble que tu fermes le fichier avant d'avoir fini les écritures.
L'utilisation de balise PHP dans le post et la justification des lignes permettrait de le vérifier.

Re: modif/suppression de ligne PHP

Posté : 09 juil. 2012, 14:20
par terminus2012
Bjr,

Mazarini merci pour ton aide,

Je ne comprends pas, pourtant je ne ferme le fichier qu'une fois la boucle for me permettant de parcourir le fichier est terminée.

<?php
$fichier=fopen ("etudiant.txt", "w+");
		if  (!$fichier)
			die("Erreur lors de l'ouverture du fichier");
					
		else
			{
					
			$tab=file("etudiant.txt");
			$var = $_GET["del"];//variable du lien supprimer
			$nbligne=count($tab);
			$verif=0;
			
			for($i=0;$i<$nbligne;$i++)
				{
				$ligne=explode("|", $tab[$i]);
				
				if($var!=$ligne[0])
					
					{
					$newtab[$i]=$tab[$i];
					fputs($fichier,$newtab[$i]);
					}
					
				else
				$verif=1;
				}
			fclose($fichier);
			}
		
		
		if ($verif==1)
		{
		echo"<script langage='javascript'>
			alert('L\'étudiant a été supprimé avec succès!');
			document.location='affichage.php'";/*pour faire une redirection vers la page de connexion*/
			echo"</script>";
		}
		else
			{
			echo"<script langage='javascript'>
			alert('Pas d'étudiant supprimé!');
			document.location='affichage.php'";
			echo"</script>";
			}
?>

Re: modif/suppression de ligne PHP

Posté : 09 juil. 2012, 14:47
par Mazarini
echo $var,'/',$ligne[0],$tab[$i],'<br>'; (avant le fputs)
et
echo 'SUPPRIME/',$ligne[0],$tab[$i],'<br>'; (avant le $vérif=1)

Ca te permettra de voir ce qui ce passe. J'avoue ne pas voir d'erreur