Php:fichier txt et mysql?

Bonjour,
j'ai un fichier texte qui contient :
1) l'opération à faire soit un ajout, modification ou suppression (a,m,s)
2) l'identificateur de l'élevé (id_eleve)
3) le nom de l'élevé
j'ai crée un script php faire une gestion des données fichier texte dans MYSQL

<?php
    require_once("xx/xx.php");
	require_once('xx/xxx.php'); 

	$connexion=db_connexion();	
	

// Connexion db 
$cart="a";
$cart="m";
$cart="s";
$fichier_ouvrir = @fopen("permis.txt", "r");
if ($fichier_ouvrir) {
    while (!feof($fichier_ouvrir)) {
                $var_id= rtrim(fgets($fichier_ouvrir, 11));
		$var_titre_eleve= rtrim(fgets($fichier_ouvrir, 200));
		$car= rtrim(fgets($fichier_ouvrir, 1));
		 // echo "".$var_id." ".$var_titre_eleve."<br/>";
  
       if($cart="a")
		{
	     $req=("INSERT INTO eleve VALUES (('".$var_id."'),('".$var_titre_eleve."'))");
	       
	    }
	     else if (($car="m") and ($var_titre_eleve=".$var_titre_eleve.") and ($var_id=".var_id."))
	    { 
	      $req=("UPDATE eleve SET id_eleve ='$var_id' WHERE id_eleve='' ");
		}
		if(($car="s") and ($var_titre_eleve=".$var_titre_eleve.") and ($var_id=".var_id."))
		 {
		     $req=("DELETE from eleve where id_eleve ='$var_id'");
		  }
		else
		 $rep=mysql_query ("$req")or die(mysql_error());   


    } 
    fclose($fichier_ouvrir);
}else {

die('impossible d ouvrir le fichier');
}
// Fermeture DB
?>

ce code n'a rien fait !!!
Qui peux m'aider a résoudre et à corriger ??
Merci d'avance

2 réponses

  1. Bonjour,

    $cart="a";
    $cart="m";
    $cart="s";

    donc finalement $cart="s"; dans tous les cas.

    $car= rtrim(fgets($fichier_ouvrir, 1));
    il ne manquerait pas un "t" à $car ?

    Ensuite, si cela ne suffit pas, explique ce que tu veux faire dans tes if.
    Apparement dans les 3 premiers, tu definis une requete sql.
    et dans le dernier "else", tu l'executes.

    .....
    1. bon dans les if je veux faire un teste sur l'ajout la modification et enfin la suppression:
      1) if carct ="a" alors ajouter
      2) if caract="m" alors modification where n°id _eleve existe
      3) if cact="s" alors suppression where n°id _eleve existe
      voila
      nb:oui c'est vrai il y un "t "qui manque $cart , en copiant j'ai oublier
      merci encore
    2. Voici comment je traduis ton code (et ce que je te propose) :

      if($cart="a") { // en cas d'ajout
      // $req=("INSERT INTO eleve VALUES (('".$var_id."'),('".$var_titre_eleve."'))");

      // l'id devant etre unique, c'est la table qui va (devrait) l'attribuer automatiquement.
      $req=("INSERT INTO eleve VALUES ('$var_titre_eleve')");

      //} else if (($car="m") and ($var_titre_eleve=".$var_titre_eleve.") and ($var_id=".var_id.")){
      // pourquoi tester si une variable est egal a elle-meme ? (enfin, je le traduis comme cela, peut etre me trompe-je ?)

      } else if (($car="m") { en cas de modification
      // $req=("UPDATE eleve SET id_eleve ='$var_id' WHERE id_eleve='' ");
      // j'imagine que si des modifications il y a sur l'eleve, ca ne sera pas son id unique ? peut
      etre son nom ?
      $req=("UPDATE eleve SET nom_eleve ='$var_titre_eleve' WHERE id_eleve=$var_id ");

      // }
      // pourquoi ne pas continuer avec un else if ?

      } else if ($car="s") { // en cas de suppression
      //if(($car="s") and ($var_titre_eleve=".$var_titre_eleve.") and ($var_id=".var_id.") {

      $req=("DELETE from eleve where id_eleve ='$var_id'");
      } else {
      // Attention ... Cas non prévu ! (ni "a" ni "m" ni "s")

      //$rep=mysql_query ("$req")or die(mysql_error());
      $rep = "";
      }

      // Execution de la requete si pas d'erreur
      if ($rep <> "") {
      $rep=mysql_query ("$req")or die(mysql_error());
      }
    3. // l'id devant etre unique, c'est la table qui va (devrait) l'attribuer automatiquement. --> le fichier txt doit ajouter l'id de l'élevé c pas la table qui incrémente automatiquement
      merci de votre aide voila j'ai changer le script comme tu ma proposer mais il n'a rien ajouter dans la base !!!
  2. Bonjour

    Attention, la comparaison en PHP c'est ==, pas simplement =
    corrige if($cart="a") -> if($cart=="a") et toutes tes autres comparaisons
    1. merci le père j'ai bon j'ai tout corriger mais quand je consulte la base sql il n' y rien a changer dans la table !!!
    2. Attention, dans le code, il y a du $rep & du $req et le problème vient de là ! (le if final)
      Je pense que c'est une faute de frappe non ?