YOUPASS - convertir le crédit téléphonique en monnaie ! : Partenaire RealityGaming.fr

Résolu PHP - Variable dans une requête PDO

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #1
Hello,

Je voudrai savoir comment faire une requête SQL (avec PDO) de ce type :

PHP:
$mail = $_SESSION['admins'];

$sql = 'SELECT name FROM admins WHERE mail = $mail';
Voici mon code actuel :

PHP:
<?php
$sql = 'SELECT name FROM admins WHERE email = "[email protected]"';
$q = $db->query($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
while ($row = $q->fetch()):
?>

          <input type="text" name="name" id="name" class="validate" value="<?php echo $row['name'] ?>" readonly>
          <?php endwhile; ?>
Ce code fonctionne car ça retourne bien le nom qui correspond à l'email que j'ai mise, mais moi je voudrai mettre l'email que retourne $_SESSION['admins']; mais je n'y arrive pas D:

Si quel qu'un aurait une solution!
Merci!
 

ɑŋɗrĕ

Membre Premium
Premium
Inscription
19 Juin 2013
Messages
2 440
Réactions
571
Points
6 353
    Réponse de ɑŋɗrĕ Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #2
Salut !

Pourrait-tu me donner plus d'informations sur le contenu de ta base de données
+ Un screen de la vue sur ton navigateur
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #3
Salut !

Pourrait-tu me donner plus d'informations sur le contenu de ta base de données
+ Un screen de la vue sur ton navigateur
Vous devez être inscrit pour voir les images


Le formulaire est pré-rempli avec les informations déjà existante de l'utilisateur connecté.
Il me manque juste le "nom et prénom" sachant que l'adresse email est rempli grace au "$_SESSION['admins'];"

Vous devez être inscrit pour voir les images
 

ɑŋɗrĕ

Membre Premium
Premium
Inscription
19 Juin 2013
Messages
2 440
Réactions
571
Points
6 353
    Réponse de ɑŋɗrĕ Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #4
En faite, je comprends pas ce que tu veux faire, tu veux qu'il se passe quoi ?
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #5
En faite, je comprends pas ce que tu veux faire, tu veux qu'il se passe quoi ?
Déjà il faut bien comprendre que cette page est accessible uniquement quand on est connecté au site.
Par exemple si on prend :RG:, quand tu vas dans "changer de pseudo" :
Vous devez être inscrit pour voir les images

Dans le input tu as ton pseudo de mit par défaut.

Et bien moi je veux faire pareil met pour mon input "nom", je veux que sa mette par défaut le nom d'utilisateur, la valeur qui se trouve dans la table "admins" dans la colonne "name".

Ou plus simplement, je veux juste récupérer le nom de l'utilisateur connecté x)
 

ɑŋɗrĕ

Membre Premium
Premium
Inscription
19 Juin 2013
Messages
2 440
Réactions
571
Points
6 353
    Réponse de ɑŋɗrĕ Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #6
"Ce code fonctionne car ça retourne bien le nom qui correspond à l'email que j'ai mise" bah ducoup ta réussie ^^ ?
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #7
Hello, voici un code type ;)

Je te conseil donc de include un config.php avec ce code:

Code:
$IP = "127.0.0.1";
$ID = "tabasededonnee";
$MDP = "lemotdepasse";
$Connexion = new PDO('mysql:host=' . $IP . ';charset=utf8', $ID, $MDP);

Et donc:

Code:
<?php
@include_once 'config.php';

    $Requete = "SELECT name
                           FROM admins
                           WHERE email = '[email protected]' ";
    $Param_Fetch= $Connexion->query($Requete);
    $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
    $Resultats = $Param_Fetch->rowCount();
 
    if ($Resultats!= 0) {
    ?>

  <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; > ?>" readonly>


    <?php }  } else { echo 'Aucun résultat'; } ?>
J'y ai ajouté une ligne pour calculer si il y a un résultat ou non afin d'afficher une info qu'il n'y a pas de résultats le cas échéant ;)

Tu peux ensuiter ajouter un array qui récupère par exemple la SESSION ID permettant de fetch l'info de X personne.
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #8
Hello, voici un code type ;)

Je te conseil donc de include un config.php avec ce code:

Code:
$IP = "127.0.0.1";
$ID = "tabasededonnee";
$MDP = "lemotdepasse";
$Connexion = new PDO('mysql:host=' . $IP . ';charset=utf8', $ID, $MDP);

Et donc:

Code:
<?php
@include_once 'config.php';

    $Requete = "SELECT name
                           FROM admins
                           WHERE email = '[email protected]' ";
    $Param_Fetch= $Connexion->query($Requete);
    $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
    $Resultats = $Param_Fetch->rowCount();
 
    if ($Resultats!= 0) {
    ?>

  <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; > ?>" readonly>


    <?php }  } else { echo 'Aucun résultat'; } ?>
J'y ai ajouté une ligne pour calculer si il y a un résultat ou non afin d'afficher une info qu'il n'y a pas de résultats le cas échéant ;)

Tu peux ensuiter ajouter un array qui récupère par exemple la SESSION ID permettant de fetch l'info de X personne.
ça ne peut pas fonctionner au niveau de la requête il y a l'email du compte admin x)
"Ce code fonctionne car ça retourne bien le nom qui correspond à l'email que j'ai mise" bah ducoup ta réussie ^^ ?
Non, si tu regardes mon code :

PHP:
<?php
$sql = 'SELECT name FROM admins WHERE email = "[email protected]"';
$q = $db->query($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
while ($row = $q->fetch()):
?>
Dans la requête j'ai mis "WHERE email = "[email protected]"'; Donc forcément ça marche, mais la peux importe qui est connecté ça va retourner le nom du compte associé à l'email "[email protected]".
Sachant que "$mail" me retourne l'email de la personne étant actuellement connecté, je voudrai faire en sorte de remplacer "WHERE email = "[email protected]"';" par "WHERE email = $mail';
Mais on ne peux pas mettre de variable dans une requête, d'ou ma question
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #9
Dans ce cas tu fais

WHERE email = '" . $SESSION["email"] . "' '

Exemple:
Vous devez être inscrit pour voir les images



Si tu désires mettre une variable voici le code:

Code:
<?php
@include_once 'config.php';

    $Requete = "SELECT name
                           FROM admins
                           WHERE email = ?
    $Param_Fetch= $Connexion->query($Requete);
    $Param_Fetch->execute(array(
                            $email));
    $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
    $Resultats = $Param_Fetch->rowCount();

    if ($Resultats!= 0) {
    ?>

  <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; > ?>" readonly>


    <?php }  } else { echo 'Aucun résultat'; } ?>
Exemple:
Vous devez être inscrit pour voir les images


En bref, le ? va chercher l'array dans le execute.

J'espère qu'il s'agit de la réponse à ta question, j'avais pas fait gaffe mais ton code était déjà ok il suffit donc de le compléter avec l'array.

Belle soirée :)
 
Dernière édition:

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #10
Dans ce cas tu fais

WHERE email = '" . $SESSION_ID["email"] . "' '

Exemple:
Vous devez être inscrit pour voir les images



Si tu désires mettre une variable voici le code:

Code:
<?php
@include_once 'config.php';

    $Requete = "SELECT name
                           FROM admins
                           WHERE email = ?
    $Param_Fetch= $Connexion->query($Requete);
    $Param_Fetch->execute(array(
                            $email));
    $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
    $Resultats = $Param_Fetch->rowCount();

    if ($Resultats!= 0) {
    ?>

  <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; > ?>" readonly>


    <?php }  } else { echo 'Aucun résultat'; } ?>
Exemple:
Vous devez être inscrit pour voir les images


En bref, le ? va chercher l'array dans le execute.
J'ai fait la 2eme solution que tu m'as donné, merci!
Mais j'ai une erreur :

Vous devez être inscrit pour voir les images


La ligne 109 est la dernière ligne du fichier (ligne vide), j'ai essayé de rajouter un

<?php } ?> à la fin mais ça change rien
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #11
Normalement la bêtise est là

<?= $Requete->name; > ?>

Mets ainsi

<?= $Requete->name; ?>

Si ça ne fonctionne toujours pas peux-tu me citer le code final ?
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #12
Normalement la bêtise est là

<?= $Requete->name; > ?>

Mets ainsi

<?= $Requete->name; ?>

Si ça ne fonctionne toujours pas peux-tu me citer le code final ? que je te le débug direct.
Yep je viens de retirer à l'instant

Et j'avais aussi essayé le "?" que j'utilise pour le changement de mot de passe, mais étrangement il me sort ceci pour ce formulaire :

Vous devez être inscrit pour voir les images
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #13
Peux-tu me citer le code ? ou le pastebin directement ?
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #14
Peux-tu me citer le code ? ou le pastebin directement ?
PHP:
<?php

              $Requete = "SELECT name FROM admins WHERE email = ?";
              $Param_Fetch = $db->query($Requete);
              $Param_Fetch->execute(array($email));
              $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
              $Resultats = $Param_Fetch->rowCount();

              if ($Resultats!= 0) {
          ?>
          <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <i class="material-icons prefix">person_pin</i>
          <input type="text" name="name" id="name" class="validate" value="<?php $Requete->name; ?>" readonly>
          <?php }  } ?>
          <label for="name">Votre nom et prénom</label>
        </div>
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #15
Et voici la correction:

Code:
<?php

              $Requete = "SELECT name FROM admins WHERE email = ?";
              $Param_Fetch = $db->prepare($Requete);
              $Param_Fetch->execute(array($email));
              $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
              $Resultats = $Param_Fetch->rowCount();

              if ($Resultats != 0) {
          ?>
          <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <i class="material-icons prefix">person_pin</i>
          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; ?>" readonly>
          <?php }  } ?>
          <label for="name">Votre nom et prénom</label>
        </div>
Je tiens à te préciser également que le <?= ?> <?= $Requete->name; ?> permet d'echo un string directement que si tu fais <?php ?> <?php echo $Requete->name; ?> tu dois ajouter un echo avant, le query était à ce moment anormal tu dois faire un prepare ça permet entre autre de faire fonctionner l'array avec le ?
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #16
Et voici la correction:

Code:
<?php

              $Requete = "SELECT name FROM admins WHERE email = ?";
              $Param_Fetch = $db->prepare($Requete);
              $Param_Fetch->execute(array($email));
              $Param_Fetch->setFetchMode(PDO::FETCH_OBJ);
              $Resultats = $Param_Fetch->rowCount();

              if ($Resultats != 0) {
          ?>
          <?php while ($Donnes_Fetch = $Param_Fetch->fetch()) { ?>

          <i class="material-icons prefix">person_pin</i>
          <input type="text" name="name" id="name" class="validate" value="<?= $Requete->name; ?>" readonly>
          <?php }  } ?>
          <label for="name">Votre nom et prénom</label>
        </div>
Je tiens à te préciser également que le <?= ?> <?= $Requete->name; ?> permet d'echo un string directement que si tu fais <?php ?> <?php echo $Requete->name; ?> tu dois ajouter un echo avant, le query était à ce moment anormal tu dois faire un prepare ça permet entre autre de faire fonctionner l'array avec le ?
Merci ça avance !
(Et oui je savais :D)

Mais.. encore une erreur! :(

Vous devez être inscrit pour voir les images


(Je precise que $email = $_SESSION['admin']; )
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #17
Donc le query se fait avec succès, il te retourne la bonne adresse E-Mail ?
Est-ce que "Votre nom et prénom" est un bug ou est-ce normal ?
La ligne de l'erreur est bien celle du query ou du echo ?

Si tu mets $mail = 'tonemail'; de manière manuelle, est-ce que cette erreur disparaît ?

Désolé pour toutes ces questions mais n'ayant pas le full code devant les yeux c'est pas évident héhé.
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #18
Donc le query se fait avec succès, il te retourne la bonne adresse E-Mail ?
Oui :p
st-ce que "Votre nom et prénom" est un bug ou est-ce normal ?
ce qu'il y a dans le input c'est le HTML de l'érreur de wamp x)
La ligne de l'erreur est bien celle du query ou du echo ?
Celle du echo
Si tu mets $mail = 'tonemail'; de manière manuelle, est-ce que cette erreur disparaît ?
Si je dis que $email = "[email protected]"; l'erreur ne change pas :mmh:
 

Tmoitoi

Membre
Inscription
28 Novembre 2017
Messages
16
Réactions
5
Points
46
    Réponse de Tmoitoi Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #19
Très bien donc dans ce cas essai via le <?php echo $Requete->name; ?> que tu avais initialement mis, l'erreur ne vient pas du array ni du query d'ailleurs, il est possible que le <?= ne soit pas supporté, si l'erreur ne s'en va pas je ne peux que te suggérer de mettre un error_reporting sur cette page afin de cacher cette erreur qui, selon moi, n'est pas une faille, ceci dit si tu désires une aide avancée n'hésite pas à me contacter par MP ou E-Mail je pourrai t'aider d'avantage avec plaisir.
 

Wims

Membre Premium
Premium
Inscription
27 Août 2014
Messages
1 596
Réactions
378
Points
5 501
    Réponse de Wims Forums généraux Informatique ⌨️ Programmation Programmation web Questions, aides et recherches Résolu : PHP - Variable dans une requête PDO
  • #20
Très bien donc dans ce cas essai via le <?php echo $Requete->name; ?> que tu avais initialement mis, l'erreur ne vient pas du array ni du query d'ailleurs, il est possible que le <?= ne soit pas supporté, si l'erreur ne s'en va pas je ne peux que te suggérer de mettre un error_reporting sur cette page afin de cacher cette erreur qui, selon moi, n'est pas une faille, ceci dit si tu désires une aide avancée n'hésite pas à me contacter par MP ou E-Mail je pourrai t'aider d'avantage avec plaisir.
Tu veux que au niveau du <?= Requete->name; ?> je mettes <?php echo Requete->name; ?> ?
Si c'est cela, rien ne change D:
 

Discussions similaires


Mobile app for XenForo 2 by Appify
Haut