Inner join

Résolu/Fermé
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 - Modifié par Nouvelle_Informaticienne le 25/05/2016 à 14:10
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 - 26 mai 2016 à 10:36
bonjour
s il vous plait je veux faire une requête dans un code PHP mais dans le WHERE de SELECT j'ai beaucoup de conditions et je n’arrive pas a vérifier est ce que ma requête est bonne au niveau syntaxe
voici ma requête je veux savoir est ce que c'est comme ça qu'on écrit la requête est ce que j'ai bien placé les " " et les ' ' et aussi les $ , ,je vous remercie

 $sqll = "SELECT id_interv as idd
            FROM fiche_inter inner join fiche_prjprincipale
     WHERE id_FPP = ".$id."and id_FPP =id_projet and type_intervenant='responsable'";



sachant que
id est une variable que je sélectionne avec une requete
id_FPP et id_projet sont deux champs dans deux tables différentes
type_intervenant champs dans la table
responsable est un string

voici mon code

<?php

$sqll = "SELECT id_interv as idd
            FROM fiche_inter inner join fiche_prjprincipale
     WHERE id_FPP = ".$id."and id_FPP =id_projet and type_intervenant='responsable'";
 
  //exécution de la requête:
  $requetee = mysqli_query($cnx,$sqll);
  if($result=mysqli_fetch_assoc($requetee))
  {    $id=$row["idd"];

 echo "id=<br>".$id;
} ?>


je sais qu'il a une ereur je ne sais pas ou j'ai cherché des exemples pour comparer je n ai pas trouvé lle bon exemple bah il m affiche l erreur suivante :
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\Program Files\EasyPHP-12.1\www\pst\connexion\affiche2.php on line 128


mysqli_fetch_assoc() source d'erreur mais je crois a cause de la requette precedante

je vous remercie bcp

2 réponses

FlorianGoMore Messages postés 32 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 1 juin 2016 4
25 mai 2016 à 14:10
Bonjour,

Sans trop regarder la logique, la requête de manière plus "propre" donne ceci :

$sqll = "
SELECT xx.id_interv AS idd
FROM fiche_inter fi
INNER JOIN fiche_prjprincipale fp ON xx.id_FPP = xx.".$id."
WHERE xx.id_FPP = xx.id_projet
AND xx.type_intervenant='responsable'";


Il ne reste plus qu'à modifier les "xx" par "fp" si le champ est dans fiche_principale et par "fi" si le champ est dans fiche_inter

Cordialement,
Florian
1
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
Modifié par Nouvelle_Informaticienne le 25/05/2016 à 14:40
bonjour je vous remercie
j ai utilisé ca comme requete mais je trouve toujours meme erreur

 $sqll = "
SELECT id_interv AS idd
FROM fiche_inter fi
INNER JOIN fiche_prjprincipale fp ON id_FPP = id_projet
WHERE id_projet=".$id."
AND type_intervenant='responsable'";


qui n est pas logique ans ma requete ?
je vous remercie encore

cette ligne ??

WHERE id_projet=".$id."
0
FlorianGoMore Messages postés 32 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 1 juin 2016 4 > Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021
25 mai 2016 à 14:40
Pouvez vous me dire, au cas par cas, dans quelle table se trouvent les champs suivants ? (fiche_inter ou fiche_principale) :
id_interv
id_FPP
id_projet
type_intervenant

Merci

Florian
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
25 mai 2016 à 14:46
oui bien sur

id_interv dans la table fiche_inter
id_projet dans la table fiche_inter
id_FPP dans la table fiche_principale
type_intervenant dans la table fiche_principale

et le id c'es ca
$id = $_GET["id"] ;
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
25 mai 2016 à 14:53
Bonjour,
je n’arrive pas a vérifier est ce que ma requête est bonne au niveau syntaxe

La meilleur façon de le savoir ... c'est de tester ta requête DIRECTEMENT dans ta BDD !!!
(via phpmyadmin ou un logiciel comme heidiSql par exemple)


j ai utilisé ca comme requete mais je trouve toujours meme erreur

Et.. quelle est donc cette erreur ? (le texte EXACT ! )


De plus.. tu n'as pas fait ce qui t'a été indiqué :
Il ne reste plus qu'à modifier les "xx" par "fp" si le champ est dans fiche_principale et par "fi" si le champ est dans fiche_inter


1
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
25 mai 2016 à 14:54
et le id c'es ca
$id = $_GET["id"] ;

Ah et.. où se trouve la récupération "PROPRE" des variables tel que je m'évertue de te l'apprendre depuis tes premières questions ???????

$id = !empty($_GET["id"] ) ? $_GET["id"]  : 0;
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
Modifié par Nouvelle_Informaticienne le 25/05/2016 à 15:14
eeh oui Monsieur Jordan je suis dessolée vous me dire toujours tester et mais bon moi quand je voulais faire des choses spéciale j'oublie les autres je me concentre seulement sur le truc mauvaise habitude, sinon je vous remercie pour vos conseils et j'ai commencé a apprendre pas mal de choses grace a vous deja les bonnes pratiques sont essentielles . merciii

  $id = !empty($_GET["id"] ) ? $_GET["id"]  : 0;

et
$sqll = "
SELECT fi.id_interv AS idd
FROM fiche_inter fi
INNER JOIN fiche_prjprincipale fp ON fp.id_FPP = ".$id."
WHERE fp.id_FPP = fi.id_projet
AND fp.type_intervenant='responsable'";


l'erreur est :

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\Program Files\EasyPHP-12.1\www\pst\connexion\affiche2.php on line 136
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021
25 mai 2016 à 15:14
Si le message est : mysqli_fetch_assoc() ... aucun rapport avec la requête donc !!!
Ensuite, pour résoudre ton problème .. une simple recherche sur le net avec par exemple : "Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result" ... et hop... tu as la solution !

Ou sinon.. tu peux simplement regarder le manuel de cette fonction https://www.php.net/manual/fr/mysqli-result.fetch-assoc.php
tu comprendras normalement assez rapidement ce que tu as oublié !
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
25 mai 2016 à 15:19
comme vous avez dis je suis entrain de tester ma requette sur sql directement
je vous remercie infiniment pour vos réponses
0
FlorianGoMore Messages postés 32 Date d'inscription mercredi 25 mai 2016 Statut Membre Dernière intervention 1 juin 2016 4
25 mai 2016 à 15:19
Il manque beaucoup de rigueur je trouve... Mais bon, je ne suis pas là pour critiquer.
"on line 136" signifie que l'erreur se trouve à la ligne 136, à toi d'apprendre à lire...
Pour ce qui est de l'erreur, as-tu essayé de remplacer le "pf" du WHERE par "fp", à tout hasard ?
0