Stocker un attribut d'un objet dans une BDD

Stocker un attribut d'un objet dans une BDD - PHP - Programmation

Marsh Posté le 03-04-2006 à 17:19:32    

Bonjour,  
 
J'ai fait une classe en PHP  (avec donc un certain nombre de variables) et j'ai aussi écrit une méthode dans cette classe pour que, quand on y fait appel, les variables de l'objet soient stockés dans une bdd mysql.
 
En gros ça donne :
 

Code :
  1. class Eleve {
  2. var $id, $nom;
  3. ...
  4. function toBDD() {
  5.  $connection = mysql_connect($host,$user,$password)
  6.   or die ("couldn't connect to server" );
  7.  $db = mysql_select_db($database,$connection)
  8.   or die ("Couldn't select database" );
  9.  $query1 = "INSERT INTO eleve (eleve_nom, eleve_prenom)
  10.                                 VALUES ('$this -> nom', '$this -> prenom')";
  11.                 $result1 = mysql_query($query1)
  12.          or die (mysql_error());
  13.  mysql_close($connection);
  14. ...


 
Seulement voilà, dans le champ NOM de la BDD je me retrouve avec "Object -> nom" au lieu de "Jean" p.ex.
Je ne sais pas du tout sous quoi faire la recherche de ce problème (comment ça s'appelle ce problème ?), et je ne sais pas comment le résoudre.
 
Quelqu'un peut-il m'aider ?


Message édité par greeeg le 03-04-2006 à 17:20:36
Reply

Marsh Posté le 03-04-2006 à 17:19:32   

Reply

Marsh Posté le 03-04-2006 à 17:43:20    

http://www.phpdebutant.org/article55.php
 
edit: d'ailleurs le problème vient plus des espaces entre $this, '->' et l'attribut dans ce cas donné!


Message édité par anapajari le 03-04-2006 à 17:45:14
Reply

Marsh Posté le 03-04-2006 à 17:44:24    

concaténation, pas d'espaces autour de la fleche.

Reply

Marsh Posté le 03-04-2006 à 17:58:46    

Wow... y a quand même des fois où on se sent con....
 
Merci bcp !

Reply

Marsh Posté le 03-04-2006 à 18:03:39    

Comme dit precedemment : "INSERT INTO eleve (eleve_nom, eleve_prenom) VALUES ('$this->nom', '$this->prenom')";
 
Par ailleurs, il est pas logique d'avoir appeler tes champs eleve_prenom et eleve_nom puisque tu es dans la table eleve, nom et prenom suffisaient.

Reply

Marsh Posté le 03-04-2006 à 18:58:32    

> Par ailleurs, il est pas logique d'avoir appeler tes champs eleve_prenom et eleve_nom puisque tu es dans la table eleve, nom et prenom suffisaient.
 
il est recommandé de les appeler comme ça lorsque plusieurs personnes travaillent sur la même base de donnée, et que de plus les champs peuvent servir comme clé primaire.

Reply

Marsh Posté le 03-04-2006 à 18:59:41    

nargy a écrit :


il est recommandé de les appeler comme ça lorsque plusieurs personnes travaillent sur la même base de donnée, et que de plus les champs peuvent servir comme clé primaire.


 
des clé primaires sur des chaines de caractère ? hmmm...  :sarcastic:  

Reply

Marsh Posté le 03-04-2006 à 19:01:37    

oui, ou même clé secondaire, c est pour clarifier des jointures entre les tables.

Reply

Marsh Posté le 04-04-2006 à 09:41:37    

depuis quand php accepte les objets dans des chaines de caractères ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed