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

PHP & Base de données Discussion :

class php5 debutant et base sql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut class php5 debutant et base sql
    bonjour,
    je debute en php5, j ai créer une page bdd.class.php pour le gestion de la base sql

    avec ceci:
    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
     
    class BDD
    {
    	var $server = "localhost";
    	var $login = "root";
    	var $password = "";
    	var $base = "achatsenfolie";
    	var $connexion;
     
    	function __construct()
    	{
    	}
     
    	function connect()
    	{
    		$this -> connexion = mysql_connect($this->server, $this->login, $this->password);
    		mysql_select_db($this->base);
     
    		if(!$this -> connexion)
    		{
    			echo "erreur de connexion a la base de donn&eacute;es";
    		}
    	}
     
    	function sendQuery($req)
    	{
    		return mysql_query($req, $this->connexion);
     
    	}
     
    	function prochainRes($res)
    	{
    		return mysql_fetch_assoc($res);
    	}
     
    	function deconnecter()
    	{
    		mysql_close($this->connexion);
    	}
     
    	function countReponse($res)
    	{
    		return mysql_num_rows($res);
    	}
     
    	function fetchRow($r)
    	{
    		return mysql_fetch_row($r);
     
    	}
     
    }
     
    ?>
    j ai créer une class pour chaque table exemple class.categorie.php:
    extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     /**
         * Donne le nom
         *
         * @access public
         * @return string
         */
        public function getTitre() {
            return (string) $this->titre;
        }
    dans ma page d'index impossible d'afficher les titres rien ne s'affiche pas d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $requete = $bdd->sendQuery ('SELECT * FROM categorie');
    while($row= mysql_fetch_assoc($requete))
    {
    $Test = new Categorie(); 
    echo $Test->getTitre();
    }
    J'ai fait ca me je pense pas que c'est ca du tout.
    Comment faire ?
    cAR COMME rien ne s'afficher j ai compris que c est parce que je ne lui donner pas la table de la base de donné.
    Peut on recuperer le nom de la table automatiquement sans faire ca ?
    Merci

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Si tu instancies une catégorie vide c'est normal que la méthode getTitre() ne renvoie rien, tu voudrais que ca affiches quoi ?

    Il faut créer un constructeur de catégorie à partir d'un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $requete = $bdd->sendQuery ('SELECT * FROM categorie');
    while($row= mysql_fetch_assoc($requete))
    {
    $Test = new Categorie($row); 
    echo $Test->getTitre();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function __construct(array $fields = array()){
        if(!empty($fields)){
            $this->titre = $fields['titre'];
        }
    }

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci de ta reponse rapide en faite je debute en php5 et je voudrai que tu m explique car en faite dans la class categorie j ai un constructeur
    public function __construct() {}
    mais moi elle etait vide.
    DE PLUS ma fonction getTitre doit etre utiliser.LA ELLE NE L EST PAS.MERCI.

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    merci de ta reponse rapide en faite je debute en php5 et je voudrai que tu m explique car en faite dans la class categorie j ai un constructeur
    public function __construct() {}
    mais moi elle etait vide.
    Oui ? Je viens de te donner le code dans mon précédent post.
    DE PLUS ma fonction getTitre doit etre utiliser.LA ELLE NE L EST PAS.MERCI.
    Pas la peine de s'énerver, ta fonction getTitre est utilisée (echo $Test->getTitre()) donc je comprends rien à ce que tu dis. De plus, ton problème concerne l'affectation et non la récupération.

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Vu que tu débute et que tu précise Php5, il serait bon de respecter la syntaxe, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class BDD {
    	private $server = "localhost";
    	private $login = "root";
    	private $password = "";
    	private $base = "achatsenfolie";
    	public $connexion;
     
    	public function __construct()
    	{
    	}
    ... etc ...
    Les var c'est du Php4, c'est tout de même révolu, une page d'histoire qui se tourne.
    Actuellement il y a possibilité de fixer une visibilité comme private, protected, public aussi bien sur les propriétés que les méthodes, de même que static.


    Au passage il existe une classe PDO qui pourrait être intéressant aussi qui peu remplacer avantageusement les fonctions mysql_*.

  6. #6
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    excuse moi ton code n a pas fonctionner et j ai mit en majuscule ca faire expres et j ai continuer apres, je n'etais pas enerver.

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Citation Envoyé par kate59 Voir le message
    excuse moi ton code n a pas fonctionner et j ai mit en majuscule ca faire expres et j ai continuer apres, je n'etais pas enerver.
    Mon code est correct. L'as-tu adapté (changer le nom des champs etc..) ?

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

Discussions similaires

  1. Suppression Base SQL Anywhere Studio
    Par Thomad dans le forum Sybase
    Réponses: 2
    Dernier message: 24/04/2004, 13h36
  2. attaquer base sql server avec easyphp sous windows
    Par jarod71 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/12/2003, 14h17
  3. Requête modification base SQL
    Par jacma dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/11/2003, 13h49
  4. Comment se connecter à une base SQL server
    Par zapia dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/10/2003, 17h39
  5. [Rave][Delphi][Base SQL] besoin d'informations
    Par David Altech dans le forum Rave
    Réponses: 1
    Dernier message: 30/07/2003, 13h59

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