Php class

wikilili Messages postés 274 Statut Membre -  
wikilili Messages postés 274 Statut Membre -
Bonjour,
si'l vous plai c quoi l'erreur

<?php

try{
$bdd = new PDO('mysql:host=localhost;dbname=labo', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
class membres{

var $nom;
var $prenom;
function __construct(){
$this->nom=null;
$this->prenom=null;

}
function addmember($n,$p){
$this->nom=$n;
$this->prenom=$p;
$req="insert into info_membres values ('','$this->nom','$this->prenom','','','')";
$statm=$bdd->prepare($req);
$res=$statm->exec();
}

}

$membre=new membres();
$membre->addmember('younes','benhlal');

?>

mercii

5 réponses

  1. A.Nonymous
     
    Comme il est dit : Fatal error: Non-static method PDO::prepare() cannot be called statically

    Cela signifie que PDO::prepare n'est pas une méthode statique, et qu'il s'agit donc d'une méthode d'instance.

    $bdd étant une instance de la classe PDO, il faut appeler "prepare" ainsi :
    $bdd->prepare
    1
  2. shikanara_177 Messages postés 669 Statut Membre 69
     
    Qu'elle est l'erreur qui est affiché à ton écran stp ? :P
    0
  3. wikilili Messages postés 274 Statut Membre 2
     
    bon j'ai modifier le code en ca : voila la nouvelle erreur
    Fatal error: Non-static method PDO::prepare() cannot be called statically, assuming $this from incompatible context in C:\Program Files\EasyPHP-5.3.7RC4\www\dreamweaver\mini\tet.php on line 25

    et voila le code

    <?php

    try{
    $bdd = new PDO('mysql:host=localhost;dbname=labo', 'root', '');
    }
    catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
    class membres{

    var $nom;
    var $prenom;
    function __construct($n,$p){
    $this->nom=$n;
    $this->prenom=$p;

    }
    function addmember(){
    $no=$this->nom;
    $pre=$this->prenom;
    $req="insert into info_membres values ('','$no','$pre','','','')";
    $statm=PDO::prepare($req);
    $res=$statm->exec();
    }

    }

    $membre=new membres('bn','you');
    $membre->addmember();

    ?>
    0
  4. wikilili Messages postés 274 Statut Membre 2
     
    mercii
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. wikilili Messages postés 274 Statut Membre 2
     
    <?php
    class members{

    var $id;
    var $nom;
    var $prenom;
    var $tel;
    var $email;
    var $type;

    function __construct(){

    require_once("cnx.php");
    $req="select * from info_membres ";
    $statement=$bdd->query($req);
    $member=$statement->fetch();
    $this->id=$member['id'];
    $this->nom=$member['nom'];
    $this->prenom=$member['prenom'];
    $this->tel=$member['tel'];
    $this->email=$member['email'];
    $this->type=$member['type'];

    }

    function display_member(){
    echo $this->id;
    echo $this->nom;
    echo $this->prenom;
    echo $this->tel;
    echo $this->email;
    echo $this->type;
    }

    }

    $p=new members();
    $p->display_member();
    ?>

    comment proceder pour afficher tous les membres?? mercii
    0
    1. JooS Messages postés 2705 Statut Membre 228
       
      Salut !
      On utilise plus var avant les declarations des variables, mais plutot !
      public, private ou protected
      private : Pour ne pas pouvoir y accéder directement a partir d'une instance créée, et que cette variable ne va pas être hérité.
      protected : Même chose, sauf que la variable peut être hérité.


      Hmm donc tu peux faire quelque chose dans ce genre !

      <?php  
      class members {  
       private $cnx; 
      
       public function __construct(){  
        require_once('cnx.php');  
        $this->cnx = $bdd; 
       }  
      
       public function display_members($number) { 
        $found = false; 
        $req = 'SELECT * FROM students'; 
         
        if(is_numeric($number)) $req .= ' WHERE id = '.$number; 
        else if($number != 'All') return false; 
      
        $statement = $this->cnx->query($req);  
        while($datas = $statement->fetch()) { 
         $found = true; 
         echo '<p>'.$datas['nom'].'</p>'; 
        } 
         
        if(!$found) { 
                        if($number == 'All') echo 'Aucun utilisateur trouvé.'; 
          else echo 'Utilisateur introuvable.'; 
                        return false; 
                      } 
                      return true; 
       } 
      }  
      
      $p = new members();  
      $p->display_members('All'); 
      $p->display_members(1); 
      $p->display_members(547); 
      ?> 
      0
    2. JooS Messages postés 2705 Statut Membre 228
       
      Sinon, pour ne pas trop solliciter la BD !
      On enregistre le tout dans un tableau, et on travaille la dessus directement !

      class members { 
      	private $cnx;
      	private $members = array(); //Liste des membres; 
      
      	public function __construct(){ 
      		require_once('cnx.php'); 
      		$this->cnx = $bdd;
      		$req = 'SELECT * FROM students';
      
      		$statement = $this->cnx->query($req); 
      		while($datas = $statement->fetch()) array_push($this->members,$datas);
      	} 
      
      	public function display_members($number) {
      		$found = false;
      
      		if(!is_numeric($number) && $number == 'All') {
      			foreach($this->members AS $datas) {
      				echo '<p>'.$datas['nom'].'</p>';
      				if($found != true) $found = true;
      			}
      		}
      		else if(is_numeric($number)) {
      			foreach($this->members AS $datas)
      				if($datas['id'] == $number) {
      					echo '<p>'.$datas['nom'].'</p>';
      					$found = true;
      					break;
      				}
      		}
      	
      		if(!$found && $number == 'All') echo 'Aucun utilisateur trouvé.';
      		else if(!$found) echo 'Utilisateur introuvable.';
      	}
      }
      0
    3. wikilili Messages postés 274 Statut Membre 2
       
      merciiiiiiiiiiiiii bcpppppppppppp
      0