Requête SQL

Résolu/Fermé
Mougeole Messages postés 34 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 7 octobre 2006 - 12 mai 2006 à 14:40
Mougeole Messages postés 34 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 7 octobre 2006 - 15 mai 2006 à 09:01
Bonjour

Voilà. J'ai un problème avec une requête SQL dans une page PHP.

Je veux fairre une liste déroulante optionnelle du type :

service 1
cellule 1
cellule 2
cellule 3
cellule 4
service 2cellule 1
cellule 2
cellule 3
cellule 4
service 3cellule 1
cellule 2
cellule 3
cellule 4
service 4
cellule 1
cellule 2
cellule 3
cellule 4

On ne soit pouvoir séléctionner que les cellules

Voici mon code



<?php 


$sqla = "SELECT NomService FROM SERVICES"; 

$reponsea = mysql_query($sqla); 


$sqlb = "SELECT NomCellule FRM CELLULES INNER JOIN SERVICES WHERE IdService = RefSevice"; 

$reponseb = mysql_query($sqlb) 

// Ensuite je fais deux boucle imbirqué pour la liste 


while ($donneesa = mysql_fetch_array($reponsea)) 
{ 

?> 

    <optgroup label=" <?php echo "$donneesa['NomService']" ?>" > 

        <?php 
        while ($donneesb = mysql_fetch_array($reponseb)) 
        { 
        ?> 

            <option><?php echo "$donneesb['NomCellule']" ?></option> 

        <?php 
        } 
        ?> 

    </optgroup> 

<?php 
} 
?>




Avec ce code j'obtiens cette liste :

service 1
cellule 1
cellule 2
cellule 3
cellule 4
cellule 1
cellule 2
cellule 3
cellule 4
cellule 1
cellule 2
cellule 3
cellule 4
cellule 1
cellule 2
cellule 3
cellule 4
service 2
service 3
service 4

Je suis presque sur que mon erreur viens de la requête $sqlb parce que je l'ai testé dans phpMyAdmin et je n'ai pas obtenu le resultat attendu.

Est-ce que quelqu'un à une idée de l'erreur?

Merci d'avance

1 réponse

Mougeole Messages postés 34 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 7 octobre 2006 26
15 mai 2006 à 09:01
Salut

Ca y est, j'ai trouvé!!!!

C'est la requête $sqlb qui n'est pas complète

Il faut écrire :

$sqlb = "SELECT NomCellule FROM CELLULES INNER JOIN SERVICES ON IdService = RefService WHERE NomService = '".$donneesa['NomService']."' ORDER BY CodeCel ASC";
Avec la première condition (ON) on séléctionne les données ou IdService= RefService

Il fallait également rajouté la deuxième condition (WHERE) pour n'afficher que les cellules dont le champ RefService à la valeur de l'identifiant du service qui est dans la première boucle ($donneesa['NomService'].

Voilà.

J'éspère que ça pourra servire à quelqu'un.

Salut

Mougeole
0