8796 sujets

Développement web côté serveur, CMS

Bonjour!
J'ai une classe php avec des méthodes et je voudrais faire passé la variable de l'id récupéré après l'insertion mysql du premier méthode vers la deuxième. C'est à dire après l'insertion de la 1ere requête je voudrais récupérer l'id pour l’insérer sur la deuxieme requete qui se trouve dans une autre fonction. le probleme ce que malgré que j'ai declaré ma variable public l'id n'est pas transmi.

 
 class Modelsaisie
 {
	 //attributs
	 public $table;
	 private $id=0;
	 
	 
	 //la function qui insert les données sur les tables
	public function ajout($num,$fic,$dat,$cli)
	 {

		 $sql="INSERT INTO ".$this->table." VALUES ('$num','$fic','$dat','$cli')";		 	 
		 //on ecxecute la requete
		  mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());  
                 // on récupère le dernier numéro inséré
                 $this->id= mysql_insert_id();
		 echo $this->id.'<br />'; //je remarque la variable id recupere bien la donnée
	 }
	 	 
	 
	 
	 //la méthode qui insert les données du sous formulaire sur les tables
	 public function sousformulaire($numl,$nomp,$qte,$pu,$tva)
	 {
		
		 $longueur=count($nomp);
		 for($i=0; $i<$longueur; $i++)
         {
		 
		   echo $this->id;
                    /* je voudrais affiché la variable id ici mais il recupere le 0 au lieu du valeur de l'id mysql.*/
        }
}


Modifié par Comodo (16 Mar 2011 - 16:33)
Le code de ta classe est OK, tu es sûr que tu utilises bien la même instance dans les 2 cas (le même objet) ?
Bon je ne suis pas sûr d'avoir bien compris ta question. Mais au fait la variable private $id comme elle est globale sur la classe je voulais qu'elle récupère l'id de la 1ere requete afin que je l'utilise sur la 2eme fonction.
mais en dehors la 1ere fonction la var $id ne garde pas la valeur et pourtant je voudrais l'utilisé sur la 2eme fonction.
Merci
Tu confonds variable globale et propriété d'un objet. Dans ton cas $id est une propriété de l'objet ModelSaisie. Le plus simple serait que tu postes le code où tu utilises ta classe. Ça sera plus simple Smiley smile
Merci tout de même à vous tous, j'ai réussi à régler mon problème.
Il fallait que je récupère la variable sur le fichier index où j'ai instancié mes objets, ensuite la renvoyé en post et ça marche nikel Smiley cligne