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
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
A voir également:
- Problème requête SQL
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Sql replace plusieurs valeurs - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
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
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
Fais plutôt un query dans le cas présent à la place OU bien ->execute() avant le fetch
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
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 !
// 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 !
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
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));
donc :
$bdd->prepare
Pseudo1=? pour tes variables
Et enfin un execute $req->execute(array($pseudo1,$pseudo2));