Php class

Fermé
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 - 27 mai 2012 à 18:24
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 - 29 mai 2012 à 21:26
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


A voir également:

5 réponses

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
shikanara_177 Messages postés 565 Date d'inscription dimanche 1 août 2010 Statut Membre Dernière intervention 1 mai 2016 69
27 mai 2012 à 18:36
Qu'elle est l'erreur qui est affiché à ton écran stp ? :P
0
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 2
27 mai 2012 à 18:46
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
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 2
29 mai 2012 à 09:50
mercii
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 2
29 mai 2012 à 17:11
<?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
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 29/05/2012 à 20:01
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
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
29 mai 2012 à 20:19
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
wikilili Messages postés 197 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 12 février 2014 2
29 mai 2012 à 21:26
merciiiiiiiiiiiiii bcpppppppppppp
0