Requête SQL WHERE

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
MarcuSianna Messages postés 4 Statut Membre -
Bonjour, je voudrais effectuer une requête SQL, j'en ai fait des centaines, mais je ne sais pas trop pourquoi, je n'arrive pas à faire marcher celle là !
Alors voilà ce que j'ai écrit :

$Pseudo = $_SESSION['pseudo'];
$req2=$bdd->query("SELECT * FROM table WHERE Pseudo2 = '.$Pseudo.' OR Pseudo3 = '.$Pseudo.'");

while($donneesUser3 = $req2->fetch())
{
// Bla bla bla
}

Alors je n'ai pas d'erreurs, mais rien ne s'affiche, et en regardant dans mes tables sur PhpAdmin, je vois bien qu'il devrait s'afficher quelque chose...
Voyez-vous une erreur ?
Merci d'avance !

3 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    A la place de

    $req2=$bdd->query("SELECT * FROM table WHERE Pseudo2 = '.$Pseudo.' OR Pseudo3 = '.$Pseudo.'");


    fais donc un

    echo "SELECT * FROM table WHERE Pseudo2 = '.$Pseudo.' OR Pseudo3 = '.$Pseudo.'";
    die();


    Si tu ne vois pas l'erreur reviens vers nous : )

    cdt
    0
  2. Gamer-Actu Messages postés 413 Statut Membre 35
     
    Salut ^^,
    tu as fait une toute petite erreur ;)
    En fait tu entres ta variable $Pseudo directement dans la requête, or tu devrais l'entourer de guillemets, donc ça donnerais quelque chose comme ça :
    $req2=$bdd->query('SELECT * FROM table WHERE Pseudo2 = \''.$Pseudo.'\' OR Pseudo3 = \''.$Pseudo.'\'');
    

    Toutefois, c'est une mauvaise manière de faire, essaye plutôt de faire comme ça (justement pour éviter ce genre d'erreurs) :
    $req2=$bdd->prepare('SELECT * FROM table WHERE Pseudo2 = ? OR Pseudo3 = ?');
    $req2->execute(array($Pseudo, $Pseudo));
    
    0
    1. Utilisateur anonyme
       
      Salut Actu

      lorsque tu indiques : "essaye plutôt de faire comme ça "

      'SELECT * FROM table WHERE Pseudo2 = ? OR Pseudo3 = ?'


      Tu sélectionneras à chaque requête l'ensemble des enregistrements de ta table 'table', à la condition que les caractères génériques soient acceptés sans l'instruction LIKE ( a vérifier )

      cdt
      0
    2. Gamer-Actu Messages postés 413 Statut Membre 35
       
      Pourquoi, les méthodes prepare/execute parse d'elles même ma chaîne de caractère donc ça ne sélectionnera les entrées que si le pseudo 2 ou 3 d'un membre est égal à la variable $pseudo
      0
    3. Utilisateur anonyme
       
      Autant pour moi, je n'avais point vu le "prepare" ... shame : (
      0
  3. MarcuSianna Messages postés 4 Statut Membre 1
     
    ok mais que dit la partie de ton code BLABLABLA ??
    0