IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] types d'attributs // pour insérer dans une BD


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Points : 22
    Points
    22
    Par défaut [POO] types d'attributs // pour insérer dans une BD
    Hi all,

    Mon problème est liée au typage d'attributs de ma classe. (je pense).
    Je vous explique en détails.

    Je fais une interface pour administrer un site et l'administrateur doit pouvoir :
    ------------
    - afficher
    - ajouter
    - supprimer
    - modifier
    ----------- > des données de la base de données.

    J'utilise des classes en php objet.
    Un controleur de connexion / + 1 page pour chaque requêtes.

    Le problème : Lorsque l'utilisateur complète le formulaire il y a une liste déroulante (prise dans la base de données) avec une liste de nombre de types DECIMAL(5,1) -- > 0.5 / 1 / 1.5 / 2 / 2.5 etc..
    Lorsqu'il sélectionne un nombre se dernier va se retrouver doublé à l'insertion dans la BD.

    Dans mes classes je n'arrive pas à mettre un attributs en float et j'ai se message d'erreur très connu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
    Voici mes deux classes : (avec quoi mon nombre se double)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    <?php
    /**************************************************************************
    * Source File	:  Controleur_Connexion.php
    * Author                 :  Noz (with pch help)
    * Project name       :  Espace de travail* Created                 :  04/2008
    * Modified   	:  04/2008
    * Description	:  Definition of the class Controleur_Connexion
    **************************************************************************/
     
    class Controleur_Connexion 			
    {
    	//Attributes
    	private $select; 
    	private $from; 
    	private $where; 
    	private $groupby;
    	private $having;
    	private $orderby;
    	public  $insert;
    	private $values;
    	private $update;
    	private $set;
     
    	//Operations
    		function __construct($as_select,$as_from,$as_where,$as_groupby,$as_having,$as_orderby,$as_insert,$as_values,$as_update,$as_set)
    		{
    			$this->select = $as_select;
    			$this->from = $as_from;
    			$this->where = $as_where;
    			$this->groupby =$as_groupby;
    			$this->having =$as_having;
    			$this->orderby =$as_orderby;
    			$this->insert = $as_insert;
    			$this->values = $as_values;
    			$this->update =$as_update;
    			$this->set =$as_set;
    			//echo "<br />construct_connexion  ",$as_select," ",$as_from," ",$as_where," ",$as_groupby," ",$as_having," ",$as_orderby," ",$as_insert," ",$as_values," ",$as_update," ",$as_set,"<br />";
    		}	
     
    		function consultation()//test ok 
    		{
    			require_once("Requete_Consultation.inc.php");
    			$modele = new Requete_Consultation($this->select,$this->from,$this->where,$this->groupby,$this->having,$this->orderby);
    			//echo "<br /> fonction consultation 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />";
    			$modele->connexion_Cons("localhost","","root","");
    			//echo "<br /> fonction consultation 2 <br />",print_r($modele),"<br />";
    			$resultat=$modele->requete_Cons();
    			//echo "<br />fonction consultation 3  ",print_r($resultat),"<br />";
    			$modele->deconnexion_Cons();
    			return($resultat);//$resultat_unaire contient le resultat de la requete
    		}
     
    		function modification()//test ok 
    		{
    			require_once("Requete_Modification.inc.php");
    			$modele = new Requete_Modification($this->insert,$this->value);
    			//echo "<br /> fonction Modification 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />";
    			$modele->connexion_Mod("localhost","","root","");
    			//echo "<br /> fonction Modification 2 <br />",print_r($modele),"<br />";
    			$resultat=$modele->requete_Mod();
    			//echo "<br />fonction Modification 3  ",print_r($resultat),"<br />";
    			$modele->deconnexion_Mod();
    			return($resultat);//$resultat_unaire contient le resultat de la requete
    		}
     
    		function insertion()
    		{
    			require_once("Requete_Insertion.inc.php");
    			$modele = new Requete_Insertion($this->insert, $this->values);
    			//echo "<br /> fonction insertion 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />";
    			$modele->connexion_Ins("localhost","","root","");
    			//echo "<br /> fonction insertion 2 <br />",print_r($modele),"<br />";
    			$resultat=$modele->requete_Ins();
    			//echo "<br />fonction insertion 3  ",print_r($resultat),"<br />";
    			$modele->deconnexion_Ins();
    			return($resultat);//$resultat_unaire contient le resultat de la requete
    		}
     
    		function suppression()
    		{
    			require_once("Requete_Suppression.inc.php");
    			$modele = new Requete_Suppression($this->from, $this->where);
    			//echo "<br /> fonction Suppression 1 <br />",$this->select,$this->from,"<br />",print_r($modele),"<br />";
    			$modele->connexion_Sup("localhost","","root","");
    			//echo "<br /> fonction Suppression 2 <br />",print_r($modele),"<br />";
    			$resultat=$modele->requete_Sup();
    			//echo "<br />fonction Suppression 3  ",print_r($resultat),"<br />";
    			$modele->deconnexion_Sup();
    			return($resultat);//$resultat_unaire contient le resultat de la requete
    		}
     
     
    } // Fin Class Controleur_Connexion
    ?>
    classe requête insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?php
    /**************************************************************************
    * Source File	:  Requete_Insertion.php
    * Author        :  Noz (with pch help)
    * Project name  :  Espace de travail* Created                 :  04/2008
    * Modified   	:  04/2008
    * Description	:  Definition of the class Requete_Insertion
    **************************************************************************/
     
    class Requete_Insertion 			
    {
    	//Attributes
    	private $insert; // type : int
    	private $values; // type : int
    	private $connexion;
    	//Operations
    		function __construct($as_insert, $as_values)
    		 {
    			$this->insert = $as_insert;
    			$this->values = $as_values;
    			//echo "construct insertion =",$as_insert,$as_values;
    		}
     
    		function connexion_Ins($as_hote, $as_base, $as_user, $as_pwd)
    		 {
    			$lien_bd = @mysql_connect($as_hote,$as_user,$as_pwd) ;
    			if($lien_bd)
    			{
    				$select_base = @mysql_select_db($as_base,$lien_bd) ;
    				if($select_base)
    				{
    					$this->connexion = $lien_bd ;
    					return $lien_bd ;
    				}
    				else return false;
    			}
    			else return false;
    		}
     
    		function deconnexion_Ins()
    		 {
    			mysql_close($this->connexion);
    		}	
     
    		function requete_Ins()
    		 {
    			$ls_into = "insert into " . $this->insert . " values " .$this->values."" ;
    			//echo "requete insertion = ",print_r($ls_into);
    			// --- Exécution de la requête
    			$rs = mysql_query($ls_into, $this->connexion) ;
    		}
     
    } // End Class Requete_Insertion
    ?>
    J'ai essayé de mettre dans ma classe requête insertion (qui me donne le message d'erreur plus haut)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Requete_Insertion 			
    {
    	//Attributes
    	private float $insert; // < --- type float ???
    	private float $values;
    	private $connexion;
    	//Operations
    		function __construct($as_insert, $as_values)
    		 {
    			$this->insert = $as_insert;
    			$this->values = $as_values;
    			//echo "construct insertion =",$as_insert,$as_values;
    		}
    Je continue de chercher mais j'aimerai de l'aide s.v.p MERCI !!

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Tu ne peux typer un attribut en PHP.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    J'ai trouvé d'où venait mon problème...
    ce n'est pas de mes classes.

    Merci de l'infos, je ne savais pas qu'on ne pouvait pas typer. Il me semble que PHP repère seul les types de variables c'est ça??

    Mon soucis vient de ma requête qui allait chercher l'id et non pas le nombre souhaitait qui correspondait à l'id.

    Désolé j'ai fais double post pour rien.
    Merci quand même.

    Avant de mettre résolu quelqu'un peut me répondre :
    Pourquoi php ne peut pas typer alors qu'en java c'est possible et pourquoi?

    Merci

  4. #4
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Parce que c'est du typage dynamique mais tu peux toujours faire un CAST sur tes variables.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/06/2011, 15h31
  2. utilsation Variable pour insérer dans une table
    Par jamalsettat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/06/2009, 13h54
  3. [VBA] Calcul pour insérer dans une textebox
    Par Yanmeunier dans le forum IHM
    Réponses: 13
    Dernier message: 15/03/2006, 16h38
  4. Réponses: 5
    Dernier message: 19/04/2005, 09h46
  5. [CSS] Le type hand pour cursor dans une balise AREA
    Par Invité dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 13/04/2005, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo