8768 sujets

Développement web côté serveur, CMS

Salut à tous,
j'aurai besoin de votre aide pour écrire une requête afin de sortir les résultats d'une table.
la table :
Id | Departement | Adresse ....
1 | 33| 12 rue...
1 | 40| 181 rue...
1 | 75| 15 rue...
1 | 33| 16 rue...
1 | 40| 127 rue...

il faut que je sorte un résultat par département mais avec chaque adresse bien sur
Exemple :
Département 33 :
12 rue...
16 rue...

Département 40:
181 rue...
127 rue...

j'ai essayé ce genre de code mais cela ne fonctionne pas, cela ne me sort qu'une adresse par département. On m'a parlé de GROUP COMCAT mais j'ai pas pigé comment afficher le résultat ensuite
Code :

requete = "SELECT * FROM agences GROUP BY dep";
$ret = $mysqli->query($requete);
 
while($data = mysqli_fetch_array($ret)){
$depart =	 "$data[dep]";
$city = array("$data[adresse]");
echo $depart.'<br />';
print_r($city);
echo '<br />';
}


Merci d'avance votre aide
Cdt
Salut, si j'ai compris tu veux faire ça:

SELECT CONCAT('Département ', departement, '\r\n', GROUP_CONCAT(adresse SEPARATOR '\r\n')) AS agences FROM dep GROUP BY departement
? Il suffit de regarder la doc Smiley smile Bon courage.
bonjour et merci pour ton aide. j'ai réussi a faire cela

$requete ="SELECT dep, GROUP_CONCAT(adresse SEPARATOR '|') as adr FROM agences GROUP BY dep";
 	$ret = $mysqli->query($requete);
	while($data = mysqli_fetch_array($ret)){
		$tabe= array($data['dep'],$data['adr']);
 
		echo '<pre>';
		print_r($tabe);
		echo '</pre>';
 
	}
Par contre, comment faire ensuite pour récupérer les tableaux dans des variables différentes, pour pouvoir les afficher dans les différents endroit de la page. il faut que chaque tableau soient des variables unique Ex : le tableau gironde dans $dep33 le tableau landes dans $dep40 etc...
Si j'ai compris ce que tu veux faire, utilise la génération de variable PHP, test ça, tu vas comprendre:

$toto = 'dep33';
$$toto = 'lala';
echo $dep33;
Si tu vois le trick tu as moyen de générer des variables adaptées pour tes départements etc ... Sinon tu fais un tableau qui contient toutes tes données avec pour index ton nom de département ou que sais-je.
la j'avoue que j'ai pas tous compris tu peux me montrer un petit exemple avec mon code Merci
Oui ou alors plus simple que des variables de variables une construction d'array multiple Dans ton while tu fais ça
array[$dep][]=$adresse
Désolé j'ai pas repris le nom exact de tes variables je suis avec mon téléphone
Hello : Bon je récupère l'ordi pour mieux t'expliquer Smiley smile
while($data = mysqli_fetch_array($ret)){
		$tabe[$data['dep']][]= $data['adr'];
 
		echo '<pre>';
		print_r($tabe);
		echo '</pre>';
 
	}
VOilà donc $tabe est un tableau qui contient en clé primaire le département, puis un nouvel array dans cette clé qui contient des nombres de 0 à XXX, et la valeur de ce dernier contient les infos d'adresses avec le print_r tu verras la constitution Smiley smile