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 :

Requête PDO avec condition variable


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Requête PDO avec condition variable
    Bonjour,

    j'ai un problème avec une requete sql avec PDO , je récupère une saisie que je mets dans une variable , cette variable est mise dans la condtion WHERE sauf que la requête ne trouve rien, quand j'enleve la variable et je mets le chiffre directement (le même que la saisie), j'obtiens un résultat car ça existe sur la bdd.

    le champs concerné est bien typé texte court sur la BDD.

    pourriez vous m'aider.

    merci d'avance.

    voilà mon code :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    try{
    	//connexion base test
    	$bdd = new PDO('mysql:host=localhost;dbname=application_v2', 'root', '');
    	$sql='insert into ofs(cd_ofs,date_envoi,receptionniste,chauffeur,commentaire,phase,aog,rouge)values("'.$of.'","'.$date_envoi.'","'.$receptionniste.'","'.$chauffeur.'","'.$commentaire.'","'.$phase.'","'.$aog.'","'.$rouge.'")';
    	//connexion base helios pour lecture
    	$bdd_helios = new PDO("oci:dbname=".$HELIOSII, $utilisateur , $utilisateur );
    	$bdd_helios->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	if($bdd_helios){
    		echo "<br>connexion bdd ok ! <br>";
    		echo('<br> l of est : '.$of.'<br>');
    	}
    	//ici ça ne marche pas  et quans je remplace of_saisi par le chiffre saisi ça marche! 
    	$result=$bdd_helios->prepare('select * from Helios.OFS where ID_OFS = :of_saisi');
            $result->execute(array(
    	        'of_saisi' =>$_POST['OF']
    	));
    	//PARCOURS RESULTAT+TEST
    	$row = $result->fetchAll(PDO::FETCH_ASSOC);	
    	foreach($row as $cle =>$valeur){
    		if (is_array($valeur)) {
    			//test
    			echo 'QTE est : '.$valeur['QTE_LANCEE'];
    		}
    	}
    	$nb_ligne=$result->rowCount();
    }
    catch (PDOException $erreur){
    	echo $erreur->getMessage();
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result->execute(array(
    	':of_saisi' =>$_POST['OF']
    ));
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    j'ai bien rectifié mais il ne trouve toujours pas de résultat!

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et je suppose que tu es sûr d'avoir une ligne correspondante dans la base. Tu as vérifié la valeur de $_POST['OF'] ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    oui j'ai bien vérifié la valeur de POST['OF'] avec un 'echo' etr c'est bien la valeur saisie et qui existe sur la base quand je la mets directement dans la reqauete ça marche.
    j'ai pensé au typage et donc j'ai changé mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //connexion base helios pour lecture
    $bdd_helios = new PDO("oci:dbname=".$HELIOSII, $utilisateur , $utilisateur );
    $bdd_helios->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if($bdd_helios){
    	echo "<br>connexion bdd ok ! <br>";
    	echo('<br> l of est : '.$of.'<br>');
    }
    //id_ofs est en texte court sur la bdd
    $result=$bdd_helios->prepare('select * from Helios.OFS where ID_OFS = :of_saisi');
    $result->bindValue(':of_saisi', $of,PDO::PARAM_STR);
    $result->execute();
    mais ça ne fonctionne toujours pas ! , je suis encore bloqué!

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //id_ofs est en texte court sur la bdd
    $result=$bdd_helios->prepare('select * from Helios.OFS where ID_OFS = :of_saisi');

    Essaie en mettant le texte de la requête entre guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //id_ofs est en texte court sur la bdd
    $result=$bdd_helios->prepare("select * from Helios.OFS where ID_OFS = :of_saisi");
    Et pendant que j'y suis :
    1) Il vaut mieux éviter la guerre des étoiles !

    2) Une clé primaire sur une colonne VARCHAR, c'est une mauvaise idée !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je suis d'accord , une clé primaire doit etre normalement en INT mas bon c'est une base que j'appelle et que j'ai pas conçue
    par contre j'ai remodifié le code et j'ai rajouté un trim pour enlever les espaces car ça marchait pas mais rien ne change pas de résulta , je suis vraiment perplexe!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result=$bdd_helios->prepare("select * from Helios.OFS where ID_OFS = :of_saisi");
    $of_value=trim($_POST['OF'], " ");
    //test valeur apres le trim									
    echo "<br>valeur of value : ".$of_value."<br>";
    $result->bindValue(':of_saisi',  $of_value, PDO::PARAM_STR);
    $result->execute();

Discussions similaires

  1. [MySQL] requête mysql avec condition à élaborer à partir d'un tableau
    Par taffMan dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/06/2007, 09h18
  2. Requête Access avec condition IIF
    Par SuperNav77 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/01/2007, 22h54
  3. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39
  4. [MySQL] concaténer une requête sql avec condition
    Par maliak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/02/2006, 12h01
  5. Requête selection avec une variable de date
    Par kahmsin dans le forum Access
    Réponses: 7
    Dernier message: 20/11/2005, 19h38

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