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

Langage PHP Discussion :

Création de tableau


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Création de tableau
    Bonjour,
    Voila je ne sais plus la syntaxe pour réaliser ça. Je souhaite créer un tableau avec des cases mais dont "l'index" des cases ne sera pas [0],[1]... mais ['memberuid'] à chaque fois.
    De tel manière à ce que lorsque je réalise un print_r(monTableau) j'obtiens quelque chose du genre : Array([memberuid]=>x.skyzo, [memberuid]=>g.gagne).

    Cordialement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!empty($_POST['text_'.$i]))
    {
    //code pour créer tableau avec index memberuid
    }

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array([memberuid]=>x.skyzo, [memberuid]=>g.gagne)
    Ce résultat est impossible à obtenir, une clef est unique dans un tableau.

    Par contre, ce résultat là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [memberuid] => Array ( [0] => x.skyzo [1] => g.gagne ) )
    peut-être obtenu en utilisant cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $arr = array(
        'memberuid' => array(
            'x.skyzo',
            'g.gagne'
        ) 
    );
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Invité
    Invité(e)
    Par défaut
    C'est que ce tableau devra être utilisé pour un ldap_mod_del, du coup il me semble que si je lui donne pas l'attribut il comprendra pas.

    http://www.php.net/manual/fr/function.ldap-mod-del.php

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ben essaye. TU peux aussi tester cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $arr = array(
        array('memberuid' => 'x.skyzo'),
        array('memberuid' => 'g.gagne')    
    );
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je réalise ça dans une boucle, du coup il faudrait que je fasse par array_push :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_push($arr['memberuid'],  STRTOLOWER(replace_accents(($_POST['text_'.$i]))));
    ?

    Ce qui va me donner un tableau du style :
    Array ( [memberuid] => Array ( [0] => r.willemyns [1] => t.thomas [2] => d.alexandre [3] => a.pouzet ) )
    .

    Du coup après, lors de mon ldap_mod_del je vais devoir lui envoyer a chaque fois quelque chose du style : ldap_mod_del($ds,$dn,$arr[memberuid][$i] ? Avec un $i que j'incrémente jusqu’à ce que j'ai fait tout $arr ?
    Dernière modification par Invité ; 15/05/2014 à 09h32.

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Pas besoin de la fonction array_push, la syntaxe suivante suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arr['memberuid'][] = strtolower(replace_accents(($_POST['text_'.$i]))
    Après si tu re-boucles ensuite sur ton tableau, pourquoi alors ne pas utiliser "ldap_mod_del" directement dans la boucle ?
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé une solution à mon problème.

    Merci beaucoup pour l'aide.

    Cordialement,

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par xMrSkyZo Voir le message
    J'ai trouvé une solution à mon problème.
    Bonjour,

    il faudrait que tout le monde ait le réflexe de poster sa solution lorsqu'il en trouve une : je me met à la place de celui qui tombera sur ce sujet dans x semaines, et qui n'aura pas la réponse à sa question tout en sachant que quelqu'un l'a trouvée mais ne l'a pas écrite :p

  9. #9
    Invité
    Invité(e)
    Par défaut
    Pas de souci, voici mon code final

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    $groupe = $_GET['pref'];
    echo "<h1 class='pluploard_emptytext' style='text-align:center'>".$groupe."</h1>";
     
    $ds = ldap_connect($config["ldap_host"],$config["ldap_port"]);
    if($ds)
    {
    ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION, 3);
     
    //Authentification au LDAP
    $r=ldap_bind($ds,$config["ldap_user"],$config["ldap_pass"]);
    if($r)
    {
    $filter="cn=".$groupe;
    $sr = ldap_search($ds,$config["ldap_groupsdn"],$filter);
    $infoRecherche = ldap_get_entries($ds,$sr);
    $tabGroup =array();
    for($i=0; $i < $infoRecherche["count"]; $i++)
    {
    array_push($tabGroup, $infoRecherche[$i]["memberuid"]);
    }
     
    echo "<form action='' method='POST'>";
    echo "<fieldset><legend>Liste des membre(s)</legend>";
    for($i=0;$i<$tabGroup[0]["count"];$i++)
       {
    $z=$i+1;
    echo "<input type='text' id='text' name='text_".$z ."' value='".$tabGroup[0][$i]."'>"."<br>";
       }
    echo "<br>"."Vous pouvez supprimer un membre en effa&ccedil;ant son nom dans la case.";
    echo "</fieldset>"."<br>";
    echo '<form action="" method="POST">';
    echo '<fieldset><legend>Membre(s) &agrave; ajout&eacute;</legend>';
    echo 'Ajout&eacute; le login des membres &agrave; ajouter dans le groupe.<br>';
    echo '<input type="input" name="name_1" /><br/>';
    echo '<span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a>';
    echo '</fieldset><br>';
    echo '<input type="submit" value="Ajouter / Supprimer">';
    echo '</form>';
    echo "<br>";
     
    $sr2 = ldap_search ($ds,$config["ldap_peopledn"], "objectClass=inetOrgPerson");
    $infoRecherche2 = ldap_get_entries ($ds, $sr2);
    $tableauCn =array();
    for ($i=0; $i < $infoRecherche2 ["count"]; $i++)
    {
    array_push($tableauCn, $infoRecherche2[$i]["cn"][0]);
    }
    if(!empty($_POST))
    {
     
    $tab=array();
    $groupeSuppr= array();
    for($i=1; $i<= count($_POST, COUNT_RECURSIVE); $i++)
    {
     
    if(!empty($_POST['text_'.$i]))
    {
    array_push($tab, STRTOLOWER(replace_accents(($_POST['text_'.$i]))));
    array_push($groupeSuppr,STRTOLOWER(replace_accents(($_POST['text_'.$i]))));
    }
    if(!empty($_POST['name_'.$i]))
    {
    if((in_array(($_POST['name_'.$i]),$tableauCn))==TRUE)
    {
    if((in_array(($_POST['name_'.$i]),$tabGroup[0]))!=TRUE)
    {
    array_push($tab,STRTOLOWER(replace_accents(($_POST['name_'.$i]))));
    }
    else 
    {
    $message= "Le membre " .$_POST['name_'.$i]." fait actuellement parti du groupe. Veuillez recommencer votre ajout" ."<br>";
    }
    }
    else
    {
    $message = "Le membre " .$_POST['name_'.$i]." n'existe pas dans la base de donn&eacute;es.";
    }
    }
     
    }
     
    if(!empty($message))
    {echo $message;} 
     
    else
    {
     
    $dn = "cn=".$groupe.",".$config['ldap_groupsdn'];
    for($i=0; $i< count($groupeSuppr, COUNT_RECURSIVE);$i++)
    {
    $group_info['memberuid']=$groupeSuppr[$i];
    ldap_mod_del($ds,$dn,$group_info);
    }
     
    for($i=0; $i <count($tab, COUNT_RECURSIVE); $i++)
    {
    $membre_info['memberuid'][$i]=$tab[$i];
    ldap_modify($ds,$dn,$membre_info);
    }
    header('Location: modifGroups.php?pref='.$groupe);
     
    }
    }
    }
    }
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création de tableau dans un autre tableau
    Par freestyler dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 08h54
  2. erreur création de tableau
    Par fabule dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 20/07/2006, 20h36
  3. Création de tableau
    Par rod59 dans le forum C
    Réponses: 10
    Dernier message: 12/11/2005, 16h40
  4. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

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