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 :

[POO] Classe de connection


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut [POO] Classe de connection
    Bonjour,
    j'ai une classe qui plante mais je ne comprend pas bien pourquoi ?
    warning:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/xaviou/boutiqueObjet/classe_boutique.php on line 34
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/xaviou/boutiqueObjet/classe_boutique.php on line 85
    appel de la class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    include('classe_boutique.php');
    $boutique= new Boutique();
    $params=array(order=>libel);
    $tb = $boutique->tableau_categories($params);
    ?>
    la classe
    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
    <?php
    class Boutique
    {
    	var $langue='fr';
    	// nom de la base
    	var $db='boutique';
    	// préfixe pour les tables
    	var $tablestart='bt_';
    	// host ou ip pour la connection de la base
    	var $db_host='localhost';
    	// user utiliser pour la connection à la base
    	var $db_user='root';
    	// mot de passe
    	var $db_pass='xav';
    	// extension pour les images
    	var $extension_images='.jpg';
    	// mode pour afficher les messages de mise au point, bolléen
    	var $debug_mode=1;
    	// lien mysql
    	var $db_link;
    	// adresse email pour le gestionnaire de la boutique
    	var $email_admin='artotal@gmail.com';
    	// constructeur
    	function __construct()
    	{
    		$this->db_link = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
    		if($this->debug_mode && !$this->db_link)
    			echo 'erreur de connection <br />'.mysql_error();
    	}
    	// function pour lancer une requête // $d == $this_$db
    	function requete_sql($db, $cde)
    	{
    		$db_selected=mysql_select_db($db, $this->db_link);
    		$result=mysql_query($cde, $this->link);
    		if($this->debug_mode && !$this->db_link)
    			echo 'erreur de connection <br />'.mysql_error();
     
    		return $result;
    	}
     
    	// fonction retournant le nom d'une table avec son préfixe concaténé
    	function nom_table($nom)
    	{
    		$nom_complet= $this->tablestart.$nom;
    		return $nom_complet;
    	}
    	// fonction permettant de récupérer un tableau de catégories
    	function tableau_categories($params='')
    	{
    		$tb=array();
    		$tb1_categories = $this->nom_table('categories');
    		// on crée le tableau des paramètres
    		if(!is_array($params))
    			$params = array();
    		// ont initialise la langue par défault définis en varaible d'instance
    		if(!is_array($params['langue']))
    			$params['langue'] = $this->langue;
    		// ordre de tri --- valeur par défault
    		if(!is_array($params['order']))
    			$params['order'] = $this->code;
    		// on récupère tous les champs par défault
    		if(!is_array($params['champs']))
    			$params['champs'] = '*';
    		//
    		if(!is_array($params['tables']))
    			$params['tables'] = $tb1_categories;
    // conditions
    		$conditions=array();
    		if(strlen($params['langue'])>0)
    		{
    			$c=$params['langue'];
    			$condition[]="AND langue LIKE '$c'";
    		}
    		if(strlen($params['code'])>0)
    		{
    			$c=$params['code'];
    			$condition[]="AND code LIKE '$c'";
    		}
    		$cde='SELECT '.$params['champs'].' FROM '.$params['tables'].' WHERE 1';
    		// requete SQL --- ordre de tri
    		if(strlen($params['order'])>0)
    			$cde.='ORDER BY '.$params['order'];
    		// requête SQL --- recherche des enregistrements --- et stockage dans un tableau
    		$result= $this->requete_sql($this->db, $cde);
    		while($ligne=mysql_fetch_array($result, MYSQL_ASSOC))
    		{
    			$key=$ligne['code'];
    			$tb['$key']=$ligne;
    		}
    		return $tb;
    	}
    }
    ?>
    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Par défaut
    Hello,

    La seul chose qui m'a surprise c'est cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result=mysql_query($cde, $this->link);
    $this->link est défini où? C'est pas plutôt $this->db_link qu'il faudrai mettre?

    Où alors c'est moi qui voie plus très clair

  3. #3
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    il est plus haut
    var $db_link;

Discussions similaires

  1. [POO] Classe en PHP5
    Par neptune dans le forum Langage
    Réponses: 5
    Dernier message: 01/09/2005, 17h55
  2. [POO]Classes abstract
    Par smag dans le forum Langage
    Réponses: 5
    Dernier message: 29/06/2005, 23h05
  3. [Language][POO]classe interface
    Par Samanta dans le forum Langage
    Réponses: 9
    Dernier message: 21/06/2005, 15h32
  4. Réponses: 3
    Dernier message: 19/05/2005, 10h46
  5. [POO] Class Défilementa automatique d'images avec animation
    Par rakoto.n dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/01/2005, 18h21

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