Requête SELECT imbriquée dans une autre requête...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requête SELECT imbriquée dans une autre requête...

par Ryle » 05 déc. 2006, 12:49

Le problème vient surtout du fait que tu ne gère absolument pas le résultat de ta seconde requête ($resultat_coord). Tu testes s'il est bien défini, mais tu n'utilise jamais cette variable avec un mysql_fetch* pour récupérer les données rapportées :)

Tu peux effectivement simplifier le traitement en ne jouant qu'une seule requête avec une jointure simple sur le champ num_client qui d'après ton code est le lien entre les deux tables :

Code : Tout sélectionner

SELECT ... FROM locations, clients WHERE locations.num_client = clients.num_client AND ...
Cette dernière solution est effectivement plus optimisée puisque tu ne feras qu'une seule requête quel que soit le nombre de résultats (actuellement si tu avais 1000 locations, tu ferais 1000 requêtes vers la table clients)

par Ultim4T0m » 05 déc. 2006, 11:54

Montre nous le SQL permettant la création de tes tables, comportant ainsi tous les champs, leurs attributs, bref, tout ce qui peux aider ;)

par bibi85 » 05 déc. 2006, 09:58

merci de vos réponses. que veux tu savoir sur la structure de mes tables ?

par jojolapine » 04 déc. 2006, 18:27

avant d'essayer de débugger ton histoire, sache que la méthode n'est surement pas la meilleur, tu aurais meilleur temps il me semble de faire un requête jointe, je ne suis malheureusement pas un expert en la matière, donc je te laisse patienter le temps que quelqu'un qui sache se servir de ces bèbètes arrive...;-)
<edit>Damn i'm grilled</edit>

par Cyrano » 04 déc. 2006, 18:24

Fais donc voir la structure de tes deux tables, je suis quasiment certain qu'on peut faire ça avec une seule et unique requête.

Requête SELECT imbriquée dans une autre requête...

par bibi85 » 04 déc. 2006, 18:16

j'effectue une 1ère requête dans laquelle j'en écris une autre. mais les variables définies dans la seconde ne s'affichent pas. (alors que ma requete est bonne après vérif par affichage). voici mon code:
$requete_loc="SELECT * FROM locations WHERE num_loc='$num_loc'";
$resultat_loc=mysql_query($requete_loc);
if($resultat_loc)
{ //début de if
     while ($donnees=mysql_fetch_array($resultat_loc))
     { //début de while
     $nom_loc=$donnees["nom_loc"];
     $num_client=$donnees["num_client"];

     //seconde requête?
     $coord="SELECT * FROM clients WHERE num_client='$num_client'";
    $resultat_coord=mysql_query($coord);
    if($resultat_coord)
    {//début de if
    $contact_direct=$donnees["contact_direct"];
    $tel_fixe=$donnees["tel_fixe"];
    $portable=$donnees["portable"];
    $civilite=$donnees["civilite"];
    $nom=$donnees["nom"];
    $prenom=$donnees["prenom"];
    $langue1=$donnees["langue1"];
    $langue2=$donnees["langue2"];
    $langue3=$donnees["langue3"];
	if ($contact_direct=='c')
	{
	$contact="$civilite $nom $prenom $tel_fixe $portable";
	}
echo " //les différentes variables";
     }//fin de if
     } //fin de while

}//fin de if
est-ce une histoire de placement de parenthèse ? (j'ai déjà essayé +sieurs trucs...)
merci de votre aide