[RESOLU] Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

Re: Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

par GasconWarrior » 19 juil. 2022, 16:32

Bonjour,

Tu devrais pouvoir utiliser GROUP_CONCAT et GROUP BY dans ta requête pour regrouper les libelles
Super! Merci beaucoup!
J'ai enfin réussi, j'avais essayer avec GROUP BY mais j'avais pas combiné avec GROUP_CONCAT du coup ca marchait pas..
Maintenant j'obtiens le résultat attendu.

Bonne journée et merci encore.

Re: Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

par Dsynx » 19 juil. 2022, 11:53

Effectivement le mieux c'est d'effectuer se travail coté BDD sinon coté PHP
$liste = [
0 => [
'raison_sociale' =>  'Peroto' ,
'logo' =>  'Peroto_logo.jpg',
'id' =>  '3' ,
'prenom' =>  'Aurélie & Didier' ,
'nom' =>  'Peroto',
'libelle' =>  'Terrassier' ,
'specialite' =>  'Gros oeuvre']
,
1 =>[
'raison_sociale' =>  'SARL Jean Luc' ,
'logo' =>  'Carte+de+visite+recto.jpg' ,
'id' =>  '21' ,
'prenom' =>  'Jean',
'nom' =>  'Luc' ,
'libelle' =>  'Charpentier' ,
'specialite' =>  'Gros oeuvre' ]
,
2 =>[
'raison_sociale' =>  'SARL Jean Luc' ,
'logo' =>  'Carte+de+visite+recto.jpg' ,
'id' =>  '21' ,
'prenom' =>  'Jean' ,
'nom' =>  'Luc' ,
'libelle' =>  'Couvreur' ,
'specialite' =>  'Gros oeuvre' ]
,
3 =>[
'raison_sociale' =>  'SARL Jean Luc', 
'logo' =>  'Carte+de+visite+recto.jpg' ,
'id' =>  '21' ,
'prenom' =>  'Jean' ,
'nom' =>  'Luc' ,
'libelle' =>  'Constructeur bois' ,
'specialite' =>  'Gros oeuvre']
];

//var_dump($liste);
$filtre_specialite = 'Gros oeuvre';
$tableau_par_id = array();
foreach($liste as $cle => $valeur){
	if($valeur['specialite'] ==  $filtre_specialite) {
	   $tableau_par_id[$valeur['id']][] = $valeur['libelle'];
	}
}

var_dump($tableau_par_id);

----------------------------
/* Résulta:
array(2) {
  [3]=>
  array(1) {
    [0]=>
    string(10) "Terrassier"
  }
  [21]=>
  array(3) {
    [0]=>
    string(11) "Charpentier"
    [1]=>
    string(8) "Couvreur"
    [2]=>
    string(17) "Constructeur bois"
  }
}

*/
Avec l'id tu pourras retrouvé la personne le tableau n'est là que pour récolté les libelle multiple

Re: Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

par ynx » 19 juil. 2022, 11:13

Bonjour,

Tu devrais pouvoir utiliser GROUP_CONCAT et GROUP BY dans ta requête pour regrouper les libelles : https://sql.sh/fonctions/group_concat

Je n'arrive pas a réunir en une occurrence les artisans qui ont plusieurs métiers.

par GasconWarrior » 18 juil. 2022, 17:28

Bonjour,

J'ai un petit problème qui m'embête depuis ce matin.
Je veux afficher une liste d'artisans qui font parti d'un même secteur (ici gros-oeuvre). J'ai réussi a faire une requête qui me récupère toutes les infos voulues mais mon problème c'est que certains artisans ont plusieurs corps de métier (par exemple un est terrassier mais aussi couvreur et charpentier) du coup ca me génère plusieurs lignes avec le même artisan.
Ce que je voudrais c'est plutôt une ligne par artisan et quand il pratique plusieurs métiers , les regrouper séparés par un espace, et c'est là que je sèche.


Et le résultat:

0 =>
array (size=9)
'raison_sociale' => string 'Peroto' (length=7)
'logo' => string 'Peroto_logo.jpg' (length=16)
'id' => string '3' (length=1)
'prenom' => string 'Aurélie & Didier' (length=27)
'nom' => string 'Peroto' (length=7)
'libelle' => string 'Terrassier' (length=10)
'specialite' => string 'Gros oeuvre' (length=11)
1 =>
array (size=9)
'raison_sociale' => string 'SARL Jean Luc' (length=17)
'logo' => string 'Carte+de+visite+recto.jpg' (length=25)
'id' => string '21' (length=2)
'prenom' => string 'Jean' (length=4)
'nom' => string 'Luc' (length=7)
'libelle' => string 'Charpentier' (length=11)
'specialite' => string 'Gros oeuvre' (length=11)
2 =>
array (size=9)
'raison_sociale' => string 'SARL Jean Luc' (length=17)
'logo' => string 'Carte+de+visite+recto.jpg' (length=25)
'id' => string '21' (length=2)
'prenom' => string 'Jean' (length=4)
'nom' => string 'Luc' (length=7)
'libelle' => string 'Couvreur' (length=8)
'specialite' => string 'Gros oeuvre' (length=11)
3 =>
array (size=9)
'raison_sociale' => string 'SARL Jean Luc' (length=17)
'logo' => string 'Carte+de+visite+recto.jpg' (length=25)
'id' => string '21' (length=2)
'prenom' => string 'Jean' (length=4)
'nom' => string 'Luc' (length=7)
'libelle' => string 'Constructeur bois' (length=17)
'specialite' => string 'Gros oeuvre' (length=11)


Si quelqu'un peut m'aider a me débloquer ce serait super. 8-|
Merci