[RESOLU] Probleme sur une requete sql AVG

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Probleme sur une requete sql AVG

Re: Probleme sur une requete sql AVG

par Spols » 27 nov. 2015, 16:19

fait un print sur ta requète et teste la en phpmyadmin. si il y a toujours une erreur check ta requète

Re: Probleme sur une requete sql AVG

par team94 » 27 nov. 2015, 08:14

merci de ta réponse j'ai verifier en mettant l'id d'un post a la place -> idem et en enlevant la condition where idem ??

Re: Probleme sur une requete sql AVG

par or 1 » 26 nov. 2015, 20:14

$idpost a bien une valeur cohérente ?

Probleme sur une requete sql AVG

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 :oops:
<?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