Requête SQL anomalie
Résolu
franksh
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
franksh Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
franksh Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Salut, j'essai de récupérer les messages dans ma bdd de cette fashion sur le sql de phpmyadmin je récupère bien les bon données mais sur script php non
Ma table
id
id_sender
id_receiver
id_article
Par exm ici je récupère le message que l'id 1 et l'id 1524 se sont envoyer sur l'article qui a l'id 17 ce code est executer sur phpmyadmin
mais sur mon script php ce code renvoi les messages que l'id 1 et l'id 1524 se sont envoyer sur d'autre article qui ont pas l'id 17
Mon script php
J'espere être claire dans mes explication.
Merci d'avance
Ma table
id
id_sender
id_receiver
id_article
SELECT *, u.name, u.avatar, t.id as id_t, t.datechat as datem FROM marketchat t LEFT JOIN users u ON u.id = t.id_receiver WHERE t.id_sender = 1524 AND t.id_receiver = 1 OR t.id_sender = 1 AND t.id_receiver = 1524 AND id_article = 17;
Par exm ici je récupère le message que l'id 1 et l'id 1524 se sont envoyer sur l'article qui a l'id 17 ce code est executer sur phpmyadmin
mais sur mon script php ce code renvoi les messages que l'id 1 et l'id 1524 se sont envoyer sur d'autre article qui ont pas l'id 17
Mon script php
$q = $db->prepare("SELECT *, u.name, u.avatar, t.id as id_t, t.datechat as datem FROM marketchat t LEFT JOIN users u ON u.id = t.id_receiver WHERE t.id_sender = :id_tow AND t.id_receiver = :id_one OR t.id_sender = :id_one AND t.id_receiver = :id_tow AND id_article = :id_article"); $q->execute([ 'id_tow' => $user_tow, 'id_one' => $user_one, 'id_article' => $id ]); // je fait un var_dump() sur id_article ce bien 17
J'espere être claire dans mes explication.
Merci d'avance
A voir également:
- Requête SQL anomalie
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- Une anomalie a été détectée dans votre dossier santé ✓ - Forum telephonie fixe
- Jointure sql ✓ - Forum MySQL
7 réponses
Bonjour,
Active la gestion des erreurs PDO à la connexion et place l'exécution de ta requête dans un bloc try/catch comme expliqué ici
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Active la gestion des erreurs PDO à la connexion et place l'exécution de ta requête dans un bloc try/catch comme expliqué ici
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
jordane45
Messages postés
38486
Date d'inscription
Statut
Modérateur
Dernière intervention
4 752
au passage, il te manque des parenthèses dans ta requête
Oui j'ai oublié de le noté j'ai essayer d'abord avec les parenthèses j'avais le même problèmes
ca return
Array
(
[:id_tow] => 1
[:id_one] => 1524
[:id_article] => 17
)
La voici
$user_one = '1524';
$user_tow = '1';
$id = '17';
$sql = "SELECT t.contenu
FROM marketchat t
WHERE (t.id_sender = :id_tow
AND t.id_receiver = :id_one )
OR ( t.id_sender = :id_one
AND t.id_receiver = :id_tow )
AND id_article = :id_article";
$req = array(
':id_tow'=>$user_tow,
':id_one'=> $user_one,
':id_article' =>$id
);
try{
$requete = $db -> prepare($sql);
$requete->execute($req);
$re = $requete->fetchAll(PDO::FETCH_OBJ);
}catch(Exception $e){
echo " Erreur ! ".$e->getMessage();
print_r($req);
echo "</pre>";
}
Enfaite quand je place le print_r et echo de pre dans le catch sa return rien du tout mais quand je le place a l'exterieur du catch ce la que sa m'affiche
ma connexion au bdd
Array
(
[:id_tow] => 1
[:id_one] => 1524
[:id_article] => 17
)
ma connexion au bdd
try { $db = new PDO("mysql:host=$host_name; dbname=$database;", $user_name, $password); $db->exec('SET NAMES utf8mb4'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->query('SELECT * FROM users'); } catch (PDOException $e) { echo "Erreur!: " . $e->getMessage() . "<br/>"; die(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et si après le fetchall tu fais un Var_dump
de $re
Qu'est-ce que ça t'affiche ?
de $re
Qu'est-ce que ça t'affiche ?
un var_dump de $re renvoi
array(5) { [0]=> array(4) { ["contenu"]=> string(32) "1 pour 1524" [0]=> string(32) "1 pour 1524" ["id_article"]=> string(1) "2" [1]=> string(1) "2" } [1]=> array(4) { ["contenu"]=> string(40) "1524 to 1" [0]=> string(40) "1524 to 1" ["id_article"]=> string(1) "2" [1]=> string(1) "2" } [2]=> array(4) { ["contenu"]=> string(106) " id 17 C'est article est-il toujours disponible? " [0]=> string(106) " id 17 C'est article est-il toujours disponible? " ["id_article"]=> string(2) "17" [1]=> string(2) "17" } [3]=> array(4) { ["contenu"]=> string(14) "oui 1 toujours" [0]=> string(14) "oui 1 toujours" ["id_article"]=> string(2) "17" [1]=> string(2) "17" } [4]=> array(4) { ["contenu"]=> string(0) "" [0]=> string(0) "" ["id_article"]=> string(2) "17" [1]=> string(2) "17" } }