Modifier ligne fichier texte par formulaire ?

nox_satanica Messages postés 8 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 13 septembre 2005 - 22 août 2004 à 09:14
flashfun Messages postés 296 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 11 septembre 2004 - 22 août 2004 à 16:45
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

ronanf235 Messages postés 105 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 28 juin 2006
22 août 2004 à 11:23
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é."
0
flashfun Messages postés 296 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 11 septembre 2004
22 août 2004 à 15:03
[$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) ]
0
nox_satanica Messages postés 8 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 13 septembre 2005
22 août 2004 à 16:35
ok merci je vais voir ce que ça donne :)
0
flashfun Messages postés 296 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 11 septembre 2004
22 août 2004 à 16:44
[ 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) ]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flashfun Messages postés 296 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 11 septembre 2004
22 août 2004 à 16:45
Dsl.

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

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