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 :

instanciation impossible php


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 instanciation impossible php
    Bonjour,
    voila apres mille essais je me tourne vers vous, je doit afficher les infos d'in produit et mon objet products reste vide, j ai utiliser netbeans et a remarqer que l'autolad appelle bien la class mais ne rentre pas dans la class donc elle n utilise pas le cosntructeur.
    que faire?
    morceaux INDEX.PHP:
    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
    <?php
    ...
     
     
    while ($value = mysql_fetch_array($res))
    {
     
    $products[] = $value['products_id'];
     
    }
    //et nous affichons :
    echo '<div name="products">';
     
    foreach($products as $id)
    {
     
     
    $product = new product($id);
    print_r($product);
    echo '<div name="singleproduct"><a href="details.php?productid='.$product->id.'">'.$product->name.'</a><br>
    Prix net : '.$product->price.' (+ '. $product->tax.') zl
    <br>
    Description : '.substr($product->description, 0,150).'<a href="details.php?productid='.$product->id.'"></a>
    </div>';
    }
    echo '</div>';
    }
    }
    $bdd ->deconnecter();
    }
    else
    {
    die('Erreur: '. $error);
     
    }
    ?>
    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
     
    <?PHP
    class products:
     
    class product
    {
     
    	public $id;
    	public $name;
    	public $description;
    	public $price;
    	public $tax;
    	public $count;
    	public $categoryid;
    	private $error;
     
     
     
    	public function __constuct($id='')
    	{
     
    		if($id!='')
    		{
    		$this->load($id);
    		return ($id);
    		}
    		else
    		{
    		echo (-1);
    		}
    	}
     
     
     
     
    	public function load($id)
    	{
     
     
    		$bdd = new BDD();
     
    		if($bdd ->connect()!=false)
    		{		
     
    			$value = mysql_query("SELECT * FROM products WHERE products_id = '".$id."'");
    			$res=mysql_fetch_assoc($value);
     
    			print_r($res);
     
    			if(mysql_num_rows($value)  == 0)
    			{
     
    				$this->error = "Le produit avec l'id pr�cis� n'existe pas !";
    				return false;
    			}
     
    			$this->id = $value['products_id'];
    			$this->name = $value['products_name'];
    			$this->description = $value['products_description'];
    			$this->price = $value['products_price'];
    			$this->tax = $value['products_tax'];
    			$this->count = $value['products_count'];
    			$this->error='';
    			$bdd ->deconnecter();
    			return true;
     
    		}
    		else
    		{
    			return false;
    			echo (-1);
    		}
    	}
    ?>
    merci.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Pourquoi ne pas utiliser directement mysql_fetch_object plutôt que de récupérer un tableau qui est ensuite reconverti en objet :
    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
    class Product {
         /*public $id;
         public $name;
         public $description;
         public $price;
         public $tax;
         public $count;
         public $categoryid;*/
     
         public function __constuct() {
         }
     
         public static function findById($id) {
              $q = mysql_query('SELECT * FROM products WHERE products_id = ' . intval($id));
             if (mysql_num_rows($q) != 1) {
                 return NULL;
             } else {
                 return mysql_fetch_object($q, __CLASS__);
             }
         }
    }
     
    $p = Product::findById(1);
    var_dump($p);
    On peut aller bien plus loin, surtout avec le LSB (PHP >= 5.3).

  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
    bonjour,

    merci de votre aide, mais je voudrai comprendre pk il ne passe par le constructeur avec mon code tout de même.

    J'ai tester avec d autre classe et c est la meme chose, les autres classes sont declarer par la meme code pour construct et load.
    merci

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

Discussions similaires

  1. Quartz: impossible d'instancier le scheduler!
    Par lOurs4816 dans le forum API standards et tierces
    Réponses: 28
    Dernier message: 20/04/2006, 17h11
  2. Réponses: 5
    Dernier message: 22/03/2006, 10h39
  3. [HTML][PHP] Formulaire impossible de récupérer les variables
    Par Pfeffer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 11/11/2005, 16h08
  4. [SGBD] PHP et MYSQL "Connection Impossible"
    Par saidus dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/10/2005, 14h26

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