PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-10-2010 19:53:55

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

SELECT entre 2 tables

Bonjour,

Petit problème que j'ai déjà eu, mais je me rappel plus quel avait été la solution.

Alors j'ai 2 tables mysql. La première table (table devis_info_general) contact 6 enregistrements et la deuxième (table stat_pro) 1 seul. Les enregistrements de ces 2 tables sont liés par un champ "id_devis".

J'aimerais afficher les informations du seul devis qui est dans la table stats_pro.
Pour le moment ca m'affiche 6 lignes (certes identiques) au lieu de 1 seul.

Voici ma requete :
[code:php]    <?php
    $SQL = "select i.id_devis, i.date_creation, i.ville, i.nom, i.prenom , s.id_devis FROM devis_info_general as i, stat_pro as s, devis_en_cours as c WHERE i.id_proprio='$id_proprio' AND i.date_creation LIKE '$date_recherche' AND s.id_devis=i.id_devis ORDER BY i.date_creation DESC ";
    echo $SQL;
    $sel = mysql_query($SQL) or die(mysql_error());
    while ($var = mysql_fetch_array($sel)) {
    ?>   
    <tr class="topjoueur" onmouseover="this.className='topjoueur2';" onMouseOut="this.className='topjoueur';" align="center">
        <td class="border-left">
          <a href="../annonce_detail.php?id=<?php echo $var['id_devis']; ?>" target="_blank">
            <?php echo $var['id_devis']; ?>
            </a>
        </td>
        <td>
            <?php echo $var['date_creation']; ?>
        </td>
        <td>
            <?php echo $var['nom']." ".$var['prenom']; ?>
        </td>       
        <td>
            <?php echo $var['ville']; ?>
        </td>           
        <td class="border-right">
            <?php
          $SQL1 = "select date_devis, date_visite, date_rapport FROM devis_en_cours WHERE id_devis='".$var['id_devis']."' ";
          $sel1 = mysql_query($SQL1) or die(mysql_error());
          $var1 = mysql_fetch_array($sel1);           
        echo "Devis : ".$var1['date_devis'];
        echo "<br />Visite : ".$var1['date_visite'];
        echo "<br />Rapport : ".$var1['date_rapport'];
      ?>
        </td>
    </tr>
<?php
}
?>[/code]
Si vous pouvez me dire ou j'ai fais une betise, ou ce que j'ai oublié.
Merci
smile

Yves

Dernière modification par ebouilleur (22-10-2010 19:56:18)

Hors ligne

#2 22-10-2010 20:40:19

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : SELECT entre 2 tables


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 22-10-2010 20:53:37

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : SELECT entre 2 tables

Ok, oui tout bete :

select i.id_devis, i.date_creation, i.ville, i.nom, i.prenom , s.id_devis FROM stat_pro as s JOIN devis_info_general as i WHERE i.id_proprio='21' AND s.id_devis=i.id_devis ORDER BY i.date_creation DESC

Merci

Hors ligne

#4 22-10-2010 21:14:48

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : SELECT entre 2 tables

de rien

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#5 23-10-2010 05:50:21

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : SELECT entre 2 tables

La syntaxe SQL92 des jointures donnerait plutôt ceci

SELECT i.id_devis, i.date_creation, i.ville, i.nom, i.prenom , s.id_devis
FROM stat_pro AS s
JOIN devis_info_general AS i USING id_devis
WHERE i.id_proprio='21'
ORDER BY i.date_creation DESC

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 23-10-2010 11:13:08

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : SELECT entre 2 tables

Merci wink

Hors ligne

#7 31-10-2010 19:02:45

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : SELECT entre 2 tables

Bonjour,

Je me permet de revenir sur ce que tu m'avais conseillé Maljuna.
J'ai tenté d'appliquer tes conseils mais ca ne fonctionne pas sur cette requete :

[code:php]
$sql = "SELECT c.id_objet, c.nom, c.bois, c.fer, c.angreal, c.plante, n.id_objet, n.nb_objet, n.id_pseudo
        FROM atelier_objet_a_creer as c
        JOIN atelier_realise as n USING id_objet
        WHERE c.lvl_requis<='$sess_lvl_atelier' AND c.id_objet=n.id_objet AND n.id_pseudo='$sess_id_pseudo'
        ORDER BY c.id_objet desc ";
[/code]

J'ai me message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_objet WHERE c.lvl_requis<='1' AND c.id_objet=n.id_objet AND n.id_pseu' at line 3

ET si j'enlève le "USING id_objet" ca fonctionne biensur.

Peux tu m'éclairer stp?

Merci

Hors ligne

#8 01-11-2010 13:56:25

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : SELECT entre 2 tables

C'est ma faute, USING attend une liste de noms de colonnes entre parenthèses, cette liste fût-elle réduite à 1 seul élement.

JOIN atelier_realise AS n USING (id_objet)

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 01-11-2010 17:33:54

ebouilleur
Membre
Lieu : Nantes
Inscription : 19-05-2009
Messages : 165
Site Web

Re : SELECT entre 2 tables

Exacte ca fonctionne mieux.
Merci
smile

Hors ligne

Pied de page des forums