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 :

[Tableaux] Déclaration de tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 13
    Par défaut [Tableaux] Déclaration de tableau
    Bonjour,

    Une de mes première utilisation de php ... j'essaie de remplir un tableau avec deux éléments. Je voudrais pouvoir ensuite les retrouver facilement.
    Ces éléments sont issus d'une table. Mais je suis perdu dans la syntaxe, pourriez-vous m'aider ?
    Voici ce que j'ai fais:
    Dans ma boucle while, je remplis le tableau avec les deux elements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab[$ligne['idcat']] = $ligne['nomcat'] ;
    J'obtiens un tableau qui fais:
    tab[1]= 'conducteur'
    tab[2]= 'Receptionniste'
    tab[15]= 'Gerant'

    Bien mais maintenant, je voudrais utiliser le contenu de ce tableau dans une requete et voilà ce que j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for ($i = 1 ; $i < count($categories)+1; $i++)  // boucle sur mon tableau 
    {
         $recherche = $categories[$i] ;
         $sql= "SELECT nomcat FROM categorie WHERE nomcat = '".$recherche."'";  
     
    		$resultat = mysqli_query($link, $sql);
    		while($ligne = mysqli_fetch_array($resultat))
    		{
    			echo $ligne[nomcat];
                   }
    En fait, avec chaque intitulé, je voudrai récuperer l'Idcat correspondant que j'ai mis dans mon tableau et m'en servir pour ma requete.
    Ca marche en partie mais je ne recupere que 'conducteur' et 'receptioniste' (pas Gerant )
    Je pense que j'ai mal construit mon tableau au depart mais je ne vois pas comment faire !
    En faite, je devrais avoir
    tab[1]= 'conducteur', '1'
    tab[2]= 'Receptionniste', '2'
    tab[3]= 'Gerant', '15'
    qlq chose comme ca mais comment le coder ? et ensuite utiliser la donnée !
    Aie aie aie
    Merci de votre aide

    Pardon mais dans le code ce n'est pas $categories mais bien $tab

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    en fait tu l'as déjà cette structure dans le sens où tu as mis pour chaque élément du tableau le nom de la catégorie en valeur et l'id de la catégorie en clé.

    Tu peux faire ca pour comprendre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($tab as $cle => $valeur)
    {
    echo "Ma clé est $cle et ma valeur est $valeur<br/>";
    }

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab[1]= 'conducteur'
    tab[2]= 'Receptionniste'
    tab[15]= 'Gerant'
    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mes_id = array_keys($tab);
    cela va te retourner un tableau qui a ces valeurs :
    $mes_id = array(1,2,15) ; (et apres tu n'as qu'à parcourir $mes_id comme un simple tableau).

    Je ne saisp a ssi ça a répondu à ta question.... ?



    PS : les tableaux en php commencent à partir de 0, dont ta boucle for il faudrait qu'elle soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i=0; $i<count(tab); $i++)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 13
    Par défaut
    Oui mais le pb, c'est que j'ai l'info "Id" comme index. Et donc quand je balaie ensuite ce tableau avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for ($i = 1 ; $i < count($tab)+1; $i++) 
     
    $recherche = $tab[$i] ;
    J'ai donc 1 tab avec 3 élements dedans, donc je vais faire une boucle ou je vais passer 3 fois (count ($tab)).
    La première fois je vais récupérer $tab[$i] = 'conducteur' (OK)
    La seconde fois $tab[$i] = 'Receptionniste' (OK)
    mais la troisième fois $tab[$i] = '' (KO)
    Je n'irai pas plus loin car on arrive à la fin du count. Et je n'aurai pas récupérer mon élément $tab[15] = 'Gerant' !!!! et c'est cette info qu'il me faut pour ensuite interroger ma base => $recherche = $tab[$i]

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par Kiwimenthe
    Et je n'aurai pas récupérer mon élément $tab[15] = 'Gerant' !!!! et c'est cette info qu'il me faut pour ensuite interroger ma base => $recherche = $tab[$i]
    As-tu regardé le foreach dont je t'ai parlé?
    Sinon il faut faire un tableau a deux dimensions pour avoir d'un coté l'id, et de l'autre le nom de la catégorie, mais le foreach est aussi bien.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $tab = array();							
    $tab[1]= 'conducteur';
    $tab[2]= 'Receptionniste';
    $tab[15]= 'Gerant';
     
    $mes_id = array_keys($tab);
    for ($i=0;$i<count($mes_id); $i++){
    	echo "<br>".$tab[$mes_id[$i]]." avec id = ".$mes_id[$i];
    }
    Résultat (j'ai testé) :
    conducteur avec id = 1
    Receptionniste avec id = 2
    Gerant avec id = 15

    car mes_id est comme ça :
    $mes_id[0] = 1
    $mes_id[1] = 2
    $mes_id[2] = 15


    Ca va mieux ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 13
    Par défaut
    Merci Lyna, effectivement j'avais affiché ca mais je dois en faite pouvoir récuperer le nom contenu dans mon tableau et l'ID. Alors je vais me pencher sur la sol proposer par Koopajah

    Si je veux créer un tableau à 2 dimensions (avec des index qui commencent à zéro), je peux écrire ?

    $tab[][$ligne['idcat']] = $ligne['nomcat'] ?


    $tab[][1] = 'conducteur'
    $tab[1][2] = 'Receptionniste'
    $tab[2][15] = 'Gerant'

  8. #8
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Oui tu peux, suffit de tester faut dire
    et j'en déduis que ma solution du foreach (qui semblait etre la plus simple) est passée a la trappe...

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

Discussions similaires

  1. [Tableaux] Déclaration tableau multidimension
    Par P4board dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2007, 22h18
  2. [Tableaux] Déclaration d'un tableau dans une classe
    Par rochenico dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2006, 12h29
  3. [Tableaux] Déclaration d'un tableau à 2 dimensions
    Par kcizth dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 16h35
  4. [xslt] déclaration de tableau
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 29/09/2005, 16h13
  5. Réponses: 3
    Dernier message: 26/09/2005, 23h24

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