Partage
  • Partager sur Facebook
  • Partager sur Twitter

résultat sur une ligne

Sujet résolu
6 mai 2021 à 21:15:49

Bonjour,

je viens vous car j'ai un soucis.

J'ai fais une requête que voici

SELECT * 
FROM `pointing`
INNER JOIN user ON pointing.user_id = user.id
INNER JOIN pointing_task ON pointing_task.pointing_id = pointing.id
WHERE user.login =  :user

le soucis avec celle-ci c'est que je récupère le résultat dans ce format :

Array
(
    [0] => Array
        (
            [id] => 1
            [0] => 1
            [date_hour] => 2021-05-05 12:00:00
            [1] => 2021-05-05 12:00:00
            [task_id] => 1
            [10] => 1
        )

    [1] => Array
        (
            [id] => 1
            [0] => 1
            [date_hour] => 2021-05-05 12:00:00
            [1] => 2021-05-05 12:00:00
            [task_id] => 2
            [10] => 2
        )

)

le soucis est que je voudrais avoir tous les task_id sur la même ligne quand date_hour est identique.

par exemple j'aimerais avoir un résultat comme ceci si possible

Array
(
    [0] => Array
        (
            [id] => 1
            [0] => 1
            [date_hour] => 2021-05-05 12:00:00
            [1] => 2021-05-05 12:00:00
            [task_id] => (
                            [0] => 1
                            [1] => 2)
            [10] => 1
        )

   

)



J'ai tenté un

GROUP BY date_hour

mais cela ne semble pas fonctionner..

Merci d'avance pour votre aide :D


-
Edité par JulienOo 6 mai 2021 à 22:11:46

  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2021 à 9:32:30

Bonjour,

En SQL (modèle relationnel), le principe d'atomicité est primordial, donc tu ne peux pas obtenir de valeur "tableau" (ton souhait pour task_id) directement depuis ta base.

Il faut donc que tu partes de ta requête actuelle, et que tu gères les multilignes côté code (PHP je suppose).

Soit dans ta boucle d'affichage avec une variable qui mémorise l'id précédent et qui n'affiche que le task_id si c'est le même id. Exemple : https://openclassrooms.com/forum/sujet/probleme-affichage-avec-requete-sql#message-88910399

Soit avec une boucle préliminaire qui transforme le tableau récupéré sous la forme souhaitée.

-
Edité par Benzouye 7 mai 2021 à 9:34:08

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
7 mai 2021 à 13:36:17

merci pour la réponse
  • Partager sur Facebook
  • Partager sur Twitter