par
team94 » 26 nov. 2015, 19:15
Bonjour à tous j'ai fais un petit script de notation sans prétention mais qui marchait.
et la j'ai une erreur :
Fatal error: Call to a member function fetch() on null in /home/... on line 130
130 etant la ligne de ma requete ou il y a AVG.
je vous met le code :
<?php
$sql=$BD->query("SELECT AVG(note) AS moyenne FROM votes WHERE posts_id = $idpost");
while ($donnees2 = $sql->fetch())
$moy=$donnees2['moyenne'];
$moy2=round($moy,0);
{
if($moy2 == 0){
echo '<div><img src="img/etoile0.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/><p style="display:inline; "> '.$moy2.'</p></div>';
}
else if(0 < $moy2 && $moy2 <= 1){
echo '<div><img src="img/etoile1.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(1 <= $moy2 && $moy2 <= 2){
echo '<div><img src="img/etoile2.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(2 <= $moy2 && $moy2 <= 3){
echo '<div><img src="img/etoile3.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(3 <= $moy2 && $moy2 <= 4){
echo '<div><img src="img/etoile4.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else {
echo '<div><img src="img/etoile5.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
}
?>
je vous met egalement le code de la class $Db appeler par $DB = new DB(); je ne sais pas si cela peut venir de la je suis perdu
<?php
class Db {
private $host = HOST;
private $name = DBNAME;
private $user =USER;
private $pass= PWD;
public $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->dbname = $dbname;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,$this->user, $this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch(PDOException $e){
echo "Erreur : Impossible de se connecter à la base de données.";
die();
}
}
public function query($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function tquery($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_ASSOC);
}
public function insert($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$nbr = $req->execute($data);
return $nbr;
}
}
?>
Merci beaucoup de me filer un coup de main merci
Bonjour à tous j'ai fais un petit script de notation sans prétention mais qui marchait.
et la j'ai une erreur :
Fatal error: Call to a member function fetch() on null in /home/... on line 130
130 etant la ligne de ma requete ou il y a AVG.
je vous met le code :
[php]<?php
$sql=$BD->query("SELECT AVG(note) AS moyenne FROM votes WHERE posts_id = $idpost");
while ($donnees2 = $sql->fetch())
$moy=$donnees2['moyenne'];
$moy2=round($moy,0);
{
if($moy2 == 0){
echo '<div><img src="img/etoile0.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/><p style="display:inline; "> '.$moy2.'</p></div>';
}
else if(0 < $moy2 && $moy2 <= 1){
echo '<div><img src="img/etoile1.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(1 <= $moy2 && $moy2 <= 2){
echo '<div><img src="img/etoile2.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(2 <= $moy2 && $moy2 <= 3){
echo '<div><img src="img/etoile3.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else if(3 <= $moy2 && $moy2 <= 4){
echo '<div><img src="img/etoile4.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
else {
echo '<div><img src="img/etoile5.png" border="0" style=" border:none; margin-top:15px; float;right; width:108px; height:20px; vertical-align:middle;"/></div>';
}
}
?>[/php]
je vous met egalement le code de la class $Db appeler par $DB = new DB(); je ne sais pas si cela peut venir de la je suis perdu :oops:
[php]<?php
class Db {
private $host = HOST;
private $name = DBNAME;
private $user =USER;
private $pass= PWD;
public $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->dbname = $dbname;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,$this->user, $this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch(PDOException $e){
echo "Erreur : Impossible de se connecter à la base de données.";
die();
}
}
public function query($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function tquery($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_ASSOC);
}
public function insert($sql,$data=array()){
$req = $this->connexion->prepare($sql);
$nbr = $req->execute($data);
return $nbr;
}
}
?>[/php]
Merci beaucoup de me filer un coup de main merci