IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

selection d'array ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut selection d'array ?
    bonjour à tous,

    Je cherche le moyen de récuperer toutes les catégorie avec leurs sous-catégorie associer en une seule requete

    ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id-parentID-title-readaccess-order-publish
    ma proc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    CREATE PROCEDURE `ForumParentGet`(
        IN _level INT,
        IN _parentID INT
    )
    BEGIN
     
        SET @SQL = CONCAT('
            SELECT
            SQL_CACHE
                c.id,
                c.title
            FROM forum_cat c
            WHERE c.publish = 1 AND c.readaccess <= ',_level,' AND c.parentid = ',_parentID,'
            ORDER BY c.`order`
        ');
     
     
        PREPARE rp FROM @SQL;
        EXECUTE rp;
        DROP PREPARE rp;
     
    END
    et je récupère quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    array(
       [forum-1] => array(
          [id] => 1
          [title] => titre
       )
       [forum-2] => array(
          [id] => 2
          [title] => titre
       )
    )
    et je cherche le moyen de récupéré quelques chose de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    array(
       [forum-2] => array(
          [id] => 2
          [title] => titre
          [child] => array (
             [1] => array(
                [id] => 5
                [title] => titre
             )
             [2] => array(
                [id] => 2
                [title] => titre
             )
          )
       )
    #ou au pire comme ça:
       [forum-1] => array(
          [id] => 1
          [title] => titre
          [child] => array (
             [1] => "3;titre"
             [2] => "4;titre"
          )
       )
    )
    mais je n'ai aucune idée de comment m'y prendre.
    Si quelqu'un pouvais m'aiguiller

    Merci beaucoup

    PS: Dans l'absolue je dois aussi récupéré les sous-sous-catégorie ^^
    mais je suppose que le procédé serra le même.

  2. #2
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    je pense approcher de la solution avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    DROP PROCEDURE `p__scripts_hackerlaw_ForumParentGet`//
    CREATE DEFINER=`dbo299251886`@`%` PROCEDURE `p__scripts_hackerlaw_ForumParentGet`(
    )
    BEGIN
        SET @cchild = (
            SELECT
                count(id)
            FROM scripts_hackerlaw_forum_cat
            WHERE parentID=1
        );
     
     
        SET @child = '';
     
        WHILE @cchild > 0 DO
            SET @tmpchild = (
                SELECT
                    CONCAT(id,';;',title) as test
                FROM scripts_hackerlaw_forum_cat
                WHERE parentID=1
                LIMIT 1
            );
     
            SET @child = CONCAT(@child,@tmpchild,';');
            SET @cchild = @cchild - 1;
     
        END WHILE;
     
        SET @SQL = CONCAT('
            SELECT
                id,
                title,
                "',@child,'" as child
            FROM scripts_hackerlaw_forum_cat
            WHERE parentID=0
        ');
     
        PREPARE query FROM @SQL;
        EXECUTE query;
        DEALLOCATE PREPARE query;
    END
    mais c'est pas encore ça, puisque ça me retourne toujours le même child :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Array ( [id] => 1 [title] => Forum 1 [child] => 3;;Forum 1-1;3;;Forum 1-1; )
    Array ( [id] => 2 [title] => Forum 2 [child] => 3;;Forum 1-1;3;;Forum 1-1; )

Discussions similaires

  1. select et array
    Par voyageurdumonde dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2010, 04h30
  2. Requete SELECT + php array
    Par taffMan dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/02/2008, 09h53
  3. Réponses: 7
    Dernier message: 05/10/2006, 11h48
  4. Réponses: 11
    Dernier message: 17/07/2006, 22h08
  5. Comment affecter un array à un element select
    Par ouioui2000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo