Probleme SQL

Résolu
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008 - 4 juin 2008 à 11:25
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008 - 5 juin 2008 à 08:26
Bonjour à vous j'ai un petit probleme d'sql
alors voila lorsque je fais ceci : " SELECT * from general,ecran where general.id_ecran=ecran.id_ecr and id_ecran=1;"
J'ai aucun probleme cela trouve le resultat, jusqu'ici tout va bien pour moi
maintenant mon soucis est ici
"SELECT * from general,ecran,imprimante where general.id_ecran=ecran.id_ecr and and general.id_impr=imprimante.id_imprimante and id_ecran=1" alors la requete est correct tout les champs sont bon, SAUF qu'il ne trouve plus la valeur demander alors pourquoi ??? pk le fait d'affecté une nouvelle table fais planté ma selection please aidez moi
Cordialement Pyobour

11 réponses

theguitou Messages postés 75 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 14 janvier 2009 35
4 juin 2008 à 23:34
Salut,

Essais sa :

SELECT *
FROM general
  LEFT JOIN  ecran ON general.id_ecran=ecran.id_ecr
  LEFT JOIN imprimante ON general.id_impr=imprimante.id_imprimante
WHERE id_ecran=1;

Si tu as des NULL dans le résultat, c'est tout simplement que tu n'as pas, dans tes tables, de quoi faire une jointure ...
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juin 2008 à 12:51
salut


where general.id_ecran=ecran.id_ecr and and general.id_impr=imprimante.id_imprimante and id_ecran=1

t'as deux and a suivre, il doit planter logiquement

t'aurais pu nous donner le message d'erreur
0
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008
4 juin 2008 à 13:38
pardon j'ai mal fé mon c/c le truc c'est que y a pas d'erreur tu enleves  l'element " imprimante" et la recherche se fait correctement, alors que si tu laisse imprimante il trouve plus rien et me met aucun  message d'erreur
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juin 2008 à 13:55
on peut voir ton code stp ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008
4 juin 2008 à 13:56
bah en gros comme sa tu vois tt le code
if($champ==1)
        {
            $requete="SELECT *
            from general,unite_central,ecran,ordinateur_portable,imprimante,utilisateur where
            utilisateur.id_uti=general.id_utilisateur and
            general.id_ucc=unite_central.id_uc and
            ecran.id_ecr=general.id_ecran and
            imprimante.id_imprimante=general.id_impr and
            ordinateur_portable.id_portable=general.id_op";
            if($ecran!='aucun')
            {
                $requete .=" and id_ecr='$ecran' ";   
            }
            if($portable!='-1')
            {
            $requete .=" and id_op=$portable";

            }
            if($ordinateur!='-1')
            {
                $requete .=" and id_ucc=$ordinateur";

            }
                if($imprimante!='aucun')
            {
                $requete .=" and id_impr=$imprimante";
                           
            }
            if($utilisateur!='aucun')
            {
                $requete .=" and id_utilisateur='".$utilisateur."'";
            }
           
            $requete .=" ;";
                    require('./../connection/connection.php');
                        $query=mysql_query($requete);
                        while($row = mysql_fetch_array($query))
                        {
                            echo $row['id_ecr'];
                        }
                      
        }   
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juin 2008 à 14:01
$query=mysql_query($requete);

si tu te limites a ca, c'est normal que tu n'ai pas de message d'erreur...
remplace le par ca :

$query=mysql_query($requete) or die(mysql_error());

et donne nous l'erreur.
0
MasterCent Messages postés 83 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 14 décembre 2011 1
4 juin 2008 à 14:37
Salut,

Bête question, mais, as tu testé ton code sql directement sur ta base - sans passer par PHP ?

Lorsque ta requête est faite,
fait un die ( $requete ), puis un copier-coller dans ton interface mysql.

Je partage le sentiment de coucou747, ta requête fonctionne, mais ne trouverait aucun enregistrement.

A+
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 juin 2008 à 14:42
mastercent, c'est pas du tout ce que j'ai dit...

mais un die($requete) ne t'apporterait rien ! ce qu'il faut, c'est le resultat de mysql_error
0
MasterCent Messages postés 83 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 14 décembre 2011 1
4 juin 2008 à 15:06
Bonjour Coucou747,





Que le rouge de la honte empourpre mon visage,...
Je partagais ton bout de phrase "[...]il doit planter logiquement
",

Par ailleurs, je respecte ta recherche d'erreur via mysql_error.
Je proposais simplement d'envisager aussi l'idée qu'il n'y a pas d'erreur, car Pyobour dit : "[...]
il trouve plus rien", c'est pourquoi, je proposais de vérifier la requête directement en SQL,

le Die($requete) me fournissant le texte SQL, dans lequel les variables ont été converties, avant même de tenter un mysql_query .

Je me retire sur la pointe des pieds car du boulot m'attends.
Courrage

M100
0
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008
4 juin 2008 à 17:06
alors oui le probleme c'est que j'ai testér directement en SQL alors comme je vous les dit la premiere marche la deuxieme selectionne juste la base sans trouvé l'element determiner alors que avec d'autre table d'autres elements sa marche la sa coince
y a t'il de nouvelle norme en SQL ???oiu qqchose comme sa car je bloque
(ps merci pour tte ces reponses)
0
cs_pyobour Messages postés 90 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 9 septembre 2008
5 juin 2008 à 08:26
je te remercie  theguitou sa fonctionne sous cette forme merciiiiii a toi et aux autres ^^
0
Rejoignez-nous