Mon problème persiste encore:
voici en détail ce qui se passe
Le fichier se présente dans la forme initiale suivante:
aaaa;bbbb;cccc;dddd
xxxx;zzda;azdaz;azrffzefzef
szddqdq;dd;zd;zdazd
Ce que je veux, c'est quand je $_POST la première valeur d'une ligne par exemple xxxx de la ligne xxxx;zzda;azdaz;azrffzefzef toute la ligne disparaisse.
Ce qui donnerait:
aaaa;bbbb;cccc;dddd
szddqdq;dd;zd;zdazd
Hors avec mon code actuel
Code :
- if ( isset($_POST['effacer']) && isset($_POST['nom1']) )
- {
- if(file_exists("clients.txt" ))
- {
- $id_file=fopen("clients.txt","r" );
- flock($id_file,1);
- $liste_modif="";
- while (!feof ($id_file)) // Parcourir le fichier tant qu'il n'est pas fini
- {
- $lecture = fgets($id_file, 4096);
- $donnee=explode(";",$lecture);
- $combien=count($donnee);
- for ($i=0;$i<$combien;$i++)
- {
- if (ereg($_POST['nom1'],$donnee[$i])){$donnee[$i]="";}
- if ($donnee[$i]!="" ){$liste_modif.=$donnee[$i].";";} // Cas de donnée nulle
- }
- }
- flock($id_file,3);
- fclose($id_file);
- $id_file=fopen("clients.txt","w+" );
- fwrite($id_file,$liste_modif);
- fclose($id_file);
- echo "<h2>Client ",$_POST['nom1']," effacé </h2> ";
- }
- else {echo "fichier inaccessible";}
- }
|
j'ai pour résultat:
aaaa;bbbb;cccc;dddd
;zzda;azdaz;azrffzefzef
;szddqdq;dd;zd;zdazd;
Soit la suppression de xxxx uniquement et non pas toute la ligne, par ailleurs il y a un ";" qui s'insère dans la ligne suivante.
Comment faire pour obtenir le résultat (lorsque je demande de supprimer la ligne dont le premier élement est xxxx):
aaaa;bbbb;cccc;dddd
szddqdq;dd;zd;zdazd
Je continue de faire de nouvelles combinaisons, pour le moment cela ne fonctionne pas.
Merci.
Message édité par teycir le 07-02-2007 à 14:43:14