Problème requête SQL

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 10 oct. 2014 à 19:21
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 11 oct. 2014 à 19:49
Bonjour, j'ai une table SQL dans laquelle des champs parmi ceux que je veux récupérer sont des entiers. Alors je ne sais pas trop comment écrire cette requête. J'ai écrit ceci :

$req2 = $bdd->prepare("SELECT * FROM users WHERE (G = '1' AND R = '2') OR (G = '1' AND R = '23')");



while($donnees = $req2->fetch())
{
echo "Test";
echo $donnees['pseudo'];
}

Mais rien ne s'affiche ! Même pas Test, ce qui veut dire que je ne rentre même pas dans la boucle while ! Voyez-vous une erreur dans cette requête ?
Merci d'avance !

3 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
10 oct. 2014 à 20:23
Prepare te permet de faire des requête préparé, celle-ci n'est as exécuté desuite.
Fais plutôt un query dans le cas présent à la place OU bien ->execute() avant le fetch
1
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
11 oct. 2014 à 18:06
Oui merci ça marche bien ! Enfin presque bien ! Je possède deux bases de données, j'effectue une première requête et j'affiche le résultat uniquement si la requête SQL de la deuxième table ne renvoie rien. Voilà ce que j'ai écris :


// PREMIERE REQUETE SQL


$req2 = $bdd->query("SELECT * FROM table1 WHERE (G = '1' AND R = '2') OR (G = '1' AND R = '23')");



while($donnees = $req2->fetch())
{


$pseudo1 = $donnees['Pseudo'];
$pseudo2 = $_SESSION['pseudo'];

// SECONDE REQUETE SQL


$req = $bdd->query("SELECT * FROM table2 WHERE (Pseudo1 = $pseudo1 AND Pseudo2 = $pseudo2) OR (Pseudo1 = $pseudo2 AND Pseudo2 = $pseudo1)");

$reponse = $req->fetch();

if(empty($reponse))
{

echo $donnees['Pseudo'];
// Affichage des données de chaque utlisateur.

}
}


Mais ça me dit qu'il y a une erreur sur la ligne "$reponse = $req->fetch()"
Et je ne vois pas trop comment résoudre ce problème...
Vois-tu une solution ?
Merci d'avance !
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
11 oct. 2014 à 19:49
Pour ta deuxième requête, faut mieux passer par une requête préparé pour le coup, si $pseudo1 est une chaîne, ça te fait tout planter.

donc :
$bdd->prepare
Pseudo1=? pour tes variables
Et enfin un execute $req->execute(array($pseudo1,$pseudo2));
0