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 :

SELECT MAX prepare


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité2
    Invité(e)
    Par défaut SELECT MAX prepare
    Bonjour,

    J'ai un souci avec une requête PDO :
    si je lance cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MAX(item_order) AS max FROM content WHERE parent_id = '57' ORDER BY item_order
    cela fonctionne très bien, me retourne 1.
    Mais je voudrais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $param=array('pid'=>57);
    $max = "SELECT MAX(item_order) AS max FROM ".$this->__get('db_prefix')."_content WHERE parent_id = ':pid' ORDER BY item_order";
    $result = $this->GetDb()->select($max,$Param);
    if($result)
    {
    	$data['success'] = true;
    	$data['max'] = print_r($result,true);
    	return json_encode($data);
    }
    mais cela me retourne 3 quelquesoit la valeur de 'pid'.

    Voilà la fonction 'select' :
    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
     
    public function select($query,$input)
    	{
    		try
    		{	 
    			$requete = $this->PDOInstance->prepare($query);
    			$requete->execute($input);
    			$result = $requete->fetch(PDO::FETCH_OBJ);
    			$requete->closeCursor();
     
    			return $result;
    		}
    		catch (Exception $e) 
    		{
    			//On indique par email que la requête n'a pas fonctionné.
    			error_log(date('D/m/y').' à '.date("H:i:s").' : '.$e->getMessage(), 1, 'nico@nico-xiaoxia.com');
    		}
    		return false;
    	}
    Quelqu'un a une idée ?
    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as oublié les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $param=array(':pid'=>57);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité2
    Invité(e)
    Par défaut
    Merci mais cela ne fonctionne toujours pas.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il ne faut pas mettre de guillemets de toute façon parce que c'est un entier et d'autre part parce que c'est un paramètre nommé :
    Tu as aussi $param / $Param qui se balladent.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité2
    Invité(e)
    Par défaut
    si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT MAX(item_order) AS max FROM ".$this->__get('db_prefix')."_content WHERE parent_id = :pid ORDER BY item_order
    Cela ne me retourne même plus d'affichage.
    Mais si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $max = "SELECT MAX(item_order) AS max FROM ".$this->__get('db_prefix')."_content WHERE parent_id = '".$add['parent_id']."' ORDER BY item_order";
    $result = $this->GetDb()-> select($max,$Param);
    if($result)
    {
    	$data['success'] = true;
    	$data['max'] = print_r($result,true);
    	return json_encode($data);
    }
    cela fonctionne très bien mais ce n'est plus une requête préparée.

  6. #6
    Invité2
    Invité(e)
    Par défaut
    OH que j'ai honte....
    En effet, si mon tableau s'appel $param et que j'utilise $Param...cela ne risque pas de fonctionner.
    Encore une erreur très stupide, je vais donc délester.

    Encore merci pour ta réactivité sabotage.

Discussions similaires

  1. problème avec un select max
    Par bobic dans le forum Oracle
    Réponses: 7
    Dernier message: 14/11/2005, 11h22
  2. [SQL] requete select max
    Par kabikou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/10/2005, 16h18
  3. Aide pour un SELECT MAX(...)
    Par Gladiator dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/06/2005, 16h48
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36

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