par
guilt92 » 08 juil. 2008, 16:44
Je ne comprends pas trop où tu veux en venir mais en tous cas pour moi la solution est la suivante :
Si tu trouves l'id à supprimer, tu stockes le numéro de la ligne (le $key de ton tableau).
Exemple :
if (empty($cmp)){
$position = $key;
}
Une fois la boucle de vérification terminée, si la position de la ligne à supprimer est définie cela veut dire qu'elle a été trouvé, donc tu supprimes cette valeur de ton tableau $fichier
unset($fichier[$position]);
(tu es obligé de faire cela lorsque la boucle foreach est terminée car tu ne peux pas modifier les index d'un foreach à la volée...)
Une fois que c'est fait, tu ouvres ton fichier en écriture (ce qui va l'effacer) et tu copies toutes les autres lignes... un truc du genre :
if (!$fp = fopen($fd, 'w+'))
{
print "Cannot open file ($fd)";
exit;
}
else
{
// write the array to the file
foreach($fichier as $ligne) { fwrite($fp,$ligne); }
// close the file
fclose($fp);
}
Comme ca ca copie toutes les lignes de l'ancien fichier, sauf celle supprimée, dans le nouveau.
Sinon, petite remarque :
if(isset($_POST['login'])){ //verification de l existance de la variable
if(!empty($_POST['login'])){ //verification si elle est n est pas vide
Tu peux te contenter de
if(!empty($_POST['login'])){ //verification si elle est n est pas vide
car si la variable est pas définie le empty renvoi true.
Je ne comprends pas trop où tu veux en venir mais en tous cas pour moi la solution est la suivante :
Si tu trouves l'id à supprimer, tu stockes le numéro de la ligne (le $key de ton tableau).
Exemple :
[php] if (empty($cmp)){
$position = $key;
} [/php]
Une fois la boucle de vérification terminée, si la position de la ligne à supprimer est définie cela veut dire qu'elle a été trouvé, donc tu supprimes cette valeur de ton tableau $fichier
[php]unset($fichier[$position]);[/php]
(tu es obligé de faire cela lorsque la boucle foreach est terminée car tu ne peux pas modifier les index d'un foreach à la volée...)
Une fois que c'est fait, tu ouvres ton fichier en écriture (ce qui va l'effacer) et tu copies toutes les autres lignes... un truc du genre :
[php] if (!$fp = fopen($fd, 'w+'))
{
print "Cannot open file ($fd)";
exit;
}
else
{
// write the array to the file
foreach($fichier as $ligne) { fwrite($fp,$ligne); }
// close the file
fclose($fp);
}[/php]
Comme ca ca copie toutes les lignes de l'ancien fichier, sauf celle supprimée, dans le nouveau.
Sinon, petite remarque :
[php]if(isset($_POST['login'])){ //verification de l existance de la variable
if(!empty($_POST['login'])){ //verification si elle est n est pas vide [/php]
Tu peux te contenter de
[php]if(!empty($_POST['login'])){ //verification si elle est n est pas vide [/php]
car si la variable est pas définie le empty renvoi true.