Requette comment la faire ??? Merci de me donner un coup de main!
cs_Pampas
Messages postés2Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention11 mai 2008
-
10 mai 2008 à 12:25
cs_Pampas
Messages postés2Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention11 mai 2008
-
11 mai 2008 à 13:01
Bonjour,
Plutôt designer graphiste et très debutante dans ce langage, j'ai une question très bête pour vous.
J'ai une BD avec cette structure :
id
dpt_num (n°de departement)
depart (nom du departement)
magasin
adresse
tel
et je voudrais afficher quelque chose comme ça :
GIRONDE
Bordeaux
Magasin 1
Adresse 1
Tél. 1
Magasin 2
Adresse 2
Tél. 2
Magasin 3
Adresse 3
Tél. 3
CHARENTE-MARITIME
La Rochelle
Magasin 1
Adresse 1
Tél. 1
Magasin 2
Adresse 2
Tél. 2
Magasin 3
Adresse 3
Tél. 3
etc...
J'ai commencer à faire mon code PHP (pas très duée, en effet) :
<?php
$sql = "SELECT * FROM `magasins` ORDER BY `magasins` . `ville` ASC LIMIT 0, 30";
J'ai reussi à faire afficher les données, mais de DEPARTEMENT et la ville se repettent à chaque fois, chose que je ne voudrais pas.
Je sais que ça doit pas être difficil à faire mais moi, je n'arrive pas. Je ne suis pas programatrice, je essaie de me debrouiller pour une petite application dans un site vitrine que je suis en train de construire.
Merci d'avance à tous pour votre aide.
Pampas
A voir également:
Requette comment la faire ??? Merci de me donner un coup de main!
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 10 mai 2008 à 16:10
Salut,
MySQL va bêtement retourner ce que tu lui demandes. Pour chaque enregistrement, il va forcément retourner... tout... ville, département, etc. Logique, quoi.
C'est à toi de faire en sorte de ne pas répéter la ville et le département.
Pour cela, il te suffit de comparer la nouvelle valeur à l'ancienne. Si elle est différente, tu l'affiches. Sinon, tu passes à la suite.
Procédure à suivre :
1/ Initialiser au début du script une variable pour le département, une autre pour la ville. Par exemple :
$ville = '';
$dep = '';
2/ Récupérer le premier enregistrement (dans ta boucle while)
3/ Comparer la valeur du champ département avec $dep :
<?php
if ($row['depart'] != $dep) {
echo '' . $row['depart'] . '
'
$depart = $row['depart'];
}
?>
Idem pour la ville.
Note que dans le bloc if, si on a changé de département, on stocke dans la variable $dep la nouvelle valeur. Prochain enregistrement : si le département est le même, on n'affiche pas son nom, on affiche la suite. Dès qu'un enregistrement aura un autre département, celui-ci sera affiché et stocké dans la variable $dep.
Voilà pour le principe.
Sinon, ton code mériterait que tu sépares davantage le traitement des données de leur affichage.
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 10 mai 2008 à 16:22
Salut,
tu fais un order by 'ville' donc normal ! mais en plus tu fais aussi un limit 0,30
donc si t'as plus de 30 occurences pour une ville, bah le resultat est normal compte rendu de ton order by et de ton limit 0,30;
tu peux ajouter la clause WHERE pour personnaliser ta requete,
<hr size="2" width="100%" />Au début, on essaye de trouver une solution qui marche, et puis on veut la meilleure.
cs_Pampas
Messages postés2Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention11 mai 2008 11 mai 2008 à 13:01
Je vous remercie, vous êtes très gentils d'avoir repondu à ma question "Bête".
Vos réponses m'ont aidé à comprendre un petit peu mieux comment tout ça marche.