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 :

php Foreach imbriqué


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 47
    Points
    47
    Par défaut php Foreach imbriqué
    Salut,

    Je bloque sur un simple problème.

    J'ai deux foreach imbriqués. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_POST['check_idimage'])AND ISSET($_POST['check_id_album']))
    {
    	foreach($_POST['check_idimage'] as $key => $value)
    	{
    		foreach($_POST['check_id_album'] as $key => $value)
    		{
     
    		echo $value. '<br/>';
    		}
    	}
    }
    Je souhaiterais obtenir la valeur check_id_album qui correspond à la valeur check_idimage, donc ma servir de la valeur du premier foreach pour m'afficher la valeur correspondante. Mais pour le moment, il me répète chaque valeur de check_id_album pour chaque valeur de check_idimage.

    Je ne sais pas si je suis clair ?

    Merci

  2. #2
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Si tu changé les $key => $value, car avoir les mêmes variables pour deux boucles, hum ca fait mal.

    Tente deja cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    if (isset($_POST['check_idimage'])AND ISSET($_POST['check_id_album']))
    {
    	foreach($_POST['check_idimage'] as $key => $value)
    	{
    		foreach($_POST['check_id_album'] as $key2 => $value2)
    		{
     
    		echo $value.'-'.$value2. '<br/>';
    		}
    	}
    }
    Ca devrai aider à voir comment sont tes tableaux, d'ailleurs peut tu préciser le remplissage ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Salut,

    Merci pour ta réponse mais voici ce que j'obtiens ( sur base de 3 enregistrements pour le moment) :

    288-8
    288-10
    288-8

    289-8
    289-10
    289-8

    280-8
    280-10
    280-8

  4. #4
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Hum le souci c'est que je voie pas ce que tu attend comme résultats.
    Peux-tu me faire un exemple concret ?

    Par exemple si tu veux l'enregistrement 2 du tableau 1 quel enregistrement du 2 eme tableau tu veux ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Imaginons que j'ai que 3 enregistrements.

    Je souhaiterais simplement afficher le couple

    id_image - id_album

    pour chaque enregistrement de ma table. Si j'ai 3 enregistrements, avoir donc :

    280 - album 01
    281 - album 02
    282 - album 03

    Je suis un peu plus clair ?

  6. #6
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Un peu plus claire, hum oui et non.

    Si tes enregistrements sortent d'une base de données, je voie pas pourquoi tu utilise 2 tableaux.
    Dans ta table tu peux bien faire :
    id_album|nom_album|id_image|ect

    et utiliser donc
    $ligne['id_album'] et $ligne['id_image']
    ($ligne est un tableau associatif crée à partir d'un mysql_fetch_assoc() de ta requete, et avec un while() dessus tu passe tous les enregistrements.

    Aprés si tu a deux tableau juste comme cela normalement un :
    echo($tab1[0].'-'.$tab2[0]); devrai fonctionner et donc

    D'ailleurs je viens de relire le code de base, normalement $_POST['check_idimage'] n'a qu'une valeur car ca correspond à un seul champ du formulaire.

    Peux-tu me dire ce que tu cherche à faire exactement ?

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est une requête avec jointure entre ta table image et ta table album qu'il te faut.
    Tu n'as pas besoin de transmettre les deux clés dans le post puisqu'elles sont égales.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    En fait, je cherche à déplacer des images d'un album à un autre. L'utilisateur à devant lui une page ou il voit toutes les images et pour chaque image, il y a une liste déroulante lui permettant de choisir l'album destination. La liste déroulante est remplie dynamiquement à parti de la BDD.

    J'ai une table album et une table image



    Il faudra que je déplace les images non seulement dans les dossiers du serveur mais aussi dans la BDD histoire que tout soit cohérent.

    J'ai donc besoin d'avoir des information sur la source de l'image et des information de destination.

    Précision : je fais mes traitements sur la même page que celle ou j'affiche les données.

Discussions similaires

  1. Boucles foreach imbriquées: affichage non désiré
    Par renaud26 dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2009, 08h36
  2. boucles foreach imbriquées!
    Par jalam dans le forum C#
    Réponses: 12
    Dernier message: 16/07/2007, 18h08
  3. [Tableaux] Probleme de Foreach imbriqué
    Par ainotenshi dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2007, 11h50
  4. [mysql et php] requêtes imbriquées
    Par php_de_travers dans le forum Requêtes
    Réponses: 7
    Dernier message: 13/04/2006, 22h46
  5. [Dates] foreach imbrique ?
    Par pascale86 dans le forum Langage
    Réponses: 4
    Dernier message: 17/10/2005, 12h04

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