Annonce

Réduire
Aucune annonce.

Problème de requêtes SQL

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Problème de requêtes SQL

    Bonjour tt le monde

    Je vais vous casser la tête encore une fois avec ce MYSQL et les requêtes sql comme il me casse la tête a moi

    Alors je vous expose le pb :
    Alors j’ai deux tables

    C’est un exemple ce n’est pas exactement sa mes tables,

    Table parent
    Idparent nom_parent


    Table enfant
    Idenfant idparent nom_enfant

    Alors je sélectionne l’idparent de la table parent quand nom parent=parent d’enfant

    Et puis l’insérer dans la table enfant

    Normalement la requête sera comme suit :

    SELECT idparent FROM parent WHERE nom_parent = 'parent_d’enfant ’
    Je veux mettre cette requête dans une variable puis l’insérer correctement

    J’utilise du java pour accéder a ma base pour sélectionner pour insérer et tt donc tt est dans une méthode que j’appel a chaque fois que je rencontre des nouveau informations a insérer ou a sélectionner

    J’espère que j’ai réussi à vous faire comprendre ce que je veux faire
    Donc si qlq 1 a une idée qu’il n’hésite surtt pas a me la donnée

    == Evitez l'écriture SMS, svp - Lisez la charte du forum ==

    Bonne journée tt le monde et bonne casse tête pour les programmeurs comme moi
    Il vaut mieux être quelqu’un pendant un jour que d’être personne pendant tout une vie

  • #2
    SELECT idparent FROM parent WHERE nom_parent = 'parent_d’enfant ’
    kaninama, je vois deux problèmes :
    1. le premier est syntaxique. Dans l'egalite (nom_parent= 'parent_enfant'), à cause des ''; parent_enfant sera considéré comme une chaine de caractère et donc il testera le contenu de l'attribut nom_parent à la chaine de caractère et non au contenu de l'attribut parent_enfant (s'il existe).

    2. Je pense que tu dois passer par une requete de jointure (sur deux relations). Pour t'aider j'aurai besoin de voir le schéma des deux tables (tous les attributs) et formule moi la requete. Tu verras c'est très simple.

    Commentaire


    • #3
      Supposons qu'on a les tables suivantes :
      Parent (nom_parent, age, ......)
      Enfant (nom_parent, nom_enfant, date_de_naissance,....)

      Si tu veux avoir, pour un parent, la liste de ses enfants et les informations relatives à cela , tu auras:

      SELECT parent.nom_parent, nom_enfant, date_de_naissance FROM Parent, Enfant
      WHERE Parent.nom_parent=Enfant.nom_parent


      J'espère que cela t'aidera.
      Dernière modification par jawzia, 12 février 2007, 14h46.

      Commentaire


      • #4
        Petitre correction

        SELECT parent.nom_parent, nom_enfant, date_de_naissance FROM Parent, Enfant
        WHERE Parent.IDparent=Enfant.IDparent

        Au lieu de

        SELECT parent.nom_parent, nom_enfant, date_de_naissance FROM Parent, Enfant
        WHERE Parent.nom_parent=Enfant.nom_parent


        Car IDparent est la clé primaire dans la table parent et c'est aussi la clé étrangère dans la table enfant (integrité référentielle)

        Commentaire


        • #5
          Petitre correction

          SELECT parent.nom_parent, nom_enfant, date_de_naissance FROM Parent, Enfant
          WHERE Parent.IDparent=Enfant.IDparent

          Au lieu de

          SELECT parent.nom_parent, nom_enfant, date_de_naissance FROM Parent, Enfant
          WHERE Parent.nom_parent=Enfant.nom_parent


          Car IDparent est la clé primaire dans la table parent et c'est aussi la clé étrangère dans la table enfant (integrité référentielle)

          Commentaire


          • #6
            recoucou tt le monde

            Merci pour vos réponse jawzia,naouas

            1. le premier est syntaxique. Dans l'égalité (nom_parent= 'parent_enfant'), à cause des ''; parent_enfant sera considéré comme une chaine de caractère et donc il testera le contenu de l'attribut nom_parent à la chaine de caractère et non au contenu de l'attribut parent_enfant (s'il existe).
            donc de ce que je comprend si on met les '' il va le considérer comme chaîne de caractère pas comme une "variable" qui contient "une information" c'est ce que tu veux jawzia et qsq je dois mettre a la place de ça ??

            WHERE Parent.nom_parent=Enfant.nom_parent
            justement je ne peux pas faire sa car ce que vous appelez enfant.nom_parent est une information externe a la base c'est une information que je raméne d'un autre programme elle n'est pas contenu dans la table enfant

            je vais essayer de vos poster les schéma de mes tables avec les explication

            je pense que je vais essayer ta syntaxe(et celle de naouas) et je vous rend la réponse

            merci vraiment a vous
            Dernière modification par kaninama, 12 février 2007, 15h44.
            Il vaut mieux être quelqu’un pendant un jour que d’être personne pendant tout une vie

            Commentaire


            • #7
              ce que vous appelez enfant.nom_parent est une information externe a la base c'est une information que je raméne d'un autre programme
              Ok Kaninama, je viens de comprendre ton problème. Je vais te donner une portion de code qui s'apparente à ton problème.
              //connexion à la BD
              $connexion=mysql_connect($server0,$user0,$pass0);
              mysql_select_db($base0);
              //la requete suivante vérifie si l'utilisateur
              //n'existe pas dans la BD
              $req0="SELECT * FROM enseignant WHERE num_ens = '$numens1' and nom_ens = '$nom1' and pren_ens = '$prenom1'";
              Dans cette portion on se connecte à la base puis on vérifie si l'utilisateur existe déjà dans une base de données.
              Les informations numéro, nom et prénom sont des informations externes. Pour le spécifier on rajoute le symbole $ (pour préciser que c'est une variable pluôt qu'une chaine de caractère) avec utilisation de ''.

              J'espère que cela répond à ta demande.

              Commentaire


              • #8
                merci jawzia

                oui c'est exactement ça jawzia et en plus c'est la même requête que j'utilise mais il n y a aucun résultat en plus il ne me déclare aucune erreur

                en plus je pense que tu utilise php moi c’est le java, je vais quand même revoir la syntaxe c’est peut être une simple erreur que je n’arrive a remarquer

                ie: désolé vraiment tu te fatigue avec moi merci vraiment
                Il vaut mieux être quelqu’un pendant un jour que d’être personne pendant tout une vie

                Commentaire


                • #9
                  De rien Kaninama. Au plaisir.

                  Commentaire


                  • #10
                    Youpi je viens de régler mon pb
                    Alors c’été vraiment très simple que je suis bête

                    Il fallait pas faire des requête imbriquer il fallait juste parcourir le tableau récupérer par les requête select et sauvegarder le résultas puis l'insérer dans l’autre table alors j’ai pu régler mon pb grâce a cette adresse sa peu peut être aider d’autre gens alors voila l'adresse

                    http://*****************/isabelle.thieblemont/java/chbd.html

                    merci jawzia
                    Il vaut mieux être quelqu’un pendant un jour que d’être personne pendant tout une vie

                    Commentaire

                    Chargement...
                    X