Modifier ligne fichier texte par formulaire ?

Signaler
Messages postés
8
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
13 septembre 2005
-
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004
-
Bonjour,
je ne suis pas une lumière en programmation mais je travaille sur un exercice qui consiste à faire comme si on gérait une médiathèque. On doit pouvoir afficher, ajouter, modifier, emprunter, et rendre des médias par l'intermédiaire de formulaires avec un traitement php dans des fichiers textes.
Pour ce qui est d'afficher et d'ajouter un média, je m'en suis sortie. Mais pour modifier un média par formulaire je bloque.

Voici mon script pour ajouter un média par exemple :

<html>
<head>
<title>Ajouter un média</title>
<link rel="StyleSheet" type="text/css" href="css.css">
</head>

<form name="ajout" method="POST" action="traitajout.php">
Pour ajouter un média :

Catégorie :,
<select size="1" name="categorie">
<option value="1">livres</option>
<option value="2">cd</option>
<option value="3">dvd</option>
</select>,
Titre :,
,

----

Auteur, artiste :,
,
Numéro ISBN :,
,

----

Année de publication, de sortie :,
,
Nombre de copies :,
,

----

Numéro d'inventaire :,
,
,

</form>

</html>

et la page de traitement :

<html>
<head>
<title></title>
<link rel="StyleSheet" type="text/css" href="css.css">
</head>

<?

if ((int)($_POST["categorie"]) == 1){
$tab = file("medias.txt");
for($i=0;$i<count($tab);$i++){
$lg = explode("\n",$tab[$i]);
if($lg[0] == $_POST["categorie"]){
$_POST["categorie"]++;
}
}
$fic = fopen("medias.txt","a");
$nouvLiv =$_POST['categorie']." ; ".$_POST['atitre']." ; ".$_POST['aauteur']." ; ".$_POST['aisbn']." ; ".$_POST['adate']." ; ".$_POST['anumero']." ; ".$_POST['acopie']."\n";
fwrite($fic,$nouvLiv);
fclose($fic);
print " Livre ajouté

";
}else{
print "Pas de livre";
}

?>
<?

if ((int)($_POST["categorie"]) == 2){
$tab = file("medias.txt");
for($i=0;$i<count($tab);$i++){
$lg = explode("\n",$tab[$i]);
if($lg[0] == $_POST["categorie"]){
$_POST["categorie"]++;
}
}
$fic = fopen("medias.txt","a");
$nouvCd =$_POST['categorie']." ; ".$_POST['atitre']." ; ".$_POST['aauteur']." ; ".$_POST['adate']." ; ".$_POST['anumero']." ; ".$_POST['acopie']."\n";
fwrite($fic,$nouvCd);
fclose($fic);
print " CD ajouté

";
}else{
print "Pas de CD";
}

?>
<?

if ((int)($_POST["categorie"]) == 3){
$tab = file("medias.txt");
for($i=0;$i<count($tab);$i++){
$lg = explode("\n",$tab[$i]);
if($lg[0] == $_POST["categorie"]){
$_POST["categorie"]++;
}
}
$fic = fopen("medias.txt","a");
$nouvDvd =$_POST['categorie']." ; ".$_POST['atitre']." ; ".$_POST['aauteur']." ; ".$_POST['adate']." ; ".$_POST['anumero']." ; ".$_POST['acopie']."\n";
fwrite($fic,$nouvDvd);
fclose($fic);
print " DVD ajouté

";
}else{
print "Pas de DVD";
}

?>

</html>

Mais comment faire pour modifier ?

5 réponses

Messages postés
105
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
28 juin 2006

slt,
ce ne serait pas plus simple d'avoir une petite bdd ?

sinon, tu n'explique pas vraiment sur quoi tu bloques...
si je prend l'exemple de modifier un mdia, tu peux parcourir ton fichier ligne par ligne, et tu les recopie dans un nouveau fichier,
qand tu arrive a la ligne que tu veux modifier, ben tu mets dans le nouveau fichier la ligne modifie :-)
a la fin tu ecrase la'ancien fichier par le nouveau

c un peu barbare, mais ca te permet de faire modif et suppression sans trop de complexite

bonne continuation
ronan
----------
"Un programme sans bug est un programme qui n'a pas été suffisament testé."
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

[$tab = file medias.txt // chaque ligne du fichier correspond à 1 case du tableau $tab. br br for $i=0 $i< count $tab $i br { br br $lg = explode \n ,$tab[$i] // lg contient qu une case car il n y a aucun \n dans une ligne. br br if $lg[0] == $_POST[ categorie $tab = file medias.txt // chaque ligne du fichier correspond à 1 case du tableau $tab. br br for $i=0 $i< count $tab $i br { br br $lg = explode \n ,$tab[$i] // lg contient qu une case car il n y a aucun \n dans une ligne. br br if $lg[0] == $_POST[ categorie])
{
$_POST["categoriehttp://fr3.php.net/manual/fr/.

FlashFun 8-) [mailto:toujours_zen@hotmail.com :question) ]
Messages postés
8
Date d'inscription
mercredi 18 août 2004
Statut
Membre
Dernière intervention
13 septembre 2005

ok merci je vais voir ce que ça donne :)
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

[ table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br $tab = file medias.txt // chaque ligne du fichier correspond à 1 case du tableau br br br for $i=0 $i< count $tab $i { br br br $lg = explode \n ,$tab[$i] // lg contient qu une case car il n y a aucun \n dans une ligne. br br br if $lg[0] == $_POST[ categorie table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br $tab = file medias.txt // chaque ligne du fichier correspond à 1 case du tableau br br br for $i=0 $i< count $tab $i { br br br $lg = explode \n ,$tab[$i] // lg contient qu une case car il n y a aucun \n dans une ligne. br br br if $lg[0] == $_POST[ categorie]){
$_POST["categorie[mailto:toujours_zen@hotmail.com :question) ]
Messages postés
296
Date d'inscription
mercredi 10 septembre 2003
Statut
Membre
Dernière intervention
11 septembre 2004

Dsl.

Pour un aide sur les fonctions php, http://fr3.php.net/manual/fr/.

FlashFun 8-) [mailto:toujours_zen@hotmail.com :question) ]