modif/suppression de ligne PHP

Petit nouveau ! | 3 Messages

06 juil. 2012, 15:10

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 ?

ViPHP
ViPHP | 2577 Messages

06 juil. 2012, 15:36

J'ai peur que tu sois obligé de relire le fichier et de le réécrire en entier (sans la ligne à supprimer).

Petit nouveau ! | 3 Messages

09 juil. 2012, 13:53

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>";
}
?>

ViPHP
ViPHP | 2577 Messages

09 juil. 2012, 14:03

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.

Petit nouveau ! | 3 Messages

09 juil. 2012, 14:20

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>";
			}
?>

ViPHP
ViPHP | 2577 Messages

09 juil. 2012, 14:47

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