[PHP] afficher avec une boucle un array
Résolu/Fermé
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
-
29 nov. 2008 à 15:47
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 déc. 2008 à 20:04
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 déc. 2008 à 20:04
A voir également:
- [PHP] afficher avec une boucle un array
- Easy php - Télécharger - Divers Web & Internet
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
9 réponses
Utilisateur anonyme
29 nov. 2008 à 16:21
29 nov. 2008 à 16:21
Bonjour,
voir si :
$limite = sizeof( $_SESSION['panier']);
ne donne pas le nombre de ligne.
voir si :
$limite = sizeof( $_SESSION['panier']);
ne donne pas le nombre de ligne.
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
29 nov. 2008 à 16:59
29 nov. 2008 à 16:59
Sa ne marche pas tout a fait.
voici le résultat :
J'ai ajouter 2 séries d'articles
donc 2 fois le prix, la taille,...
Par observation, je dirais que la fonction que tu m'as donné compte le nombre de ligne seulement dans l'array panier et pas ceux des autres array qui sont dans l'array panier comme par exemple l'array id qui contient 2 id (qui s'affiche ici).
EDIT : après avoir chipotter un peu, j'ai réussi a adapter ta fonction.
merci pour ton aide :D
voici le résultat :
J'ai ajouter 2 séries d'articles
donc 2 fois le prix, la taille,...
Nom Prix unitaire Quantité Prix total Supprimer test5 50 € 200 € Supprimer test5 50 € 100 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer € 0 € Supprimer
Par observation, je dirais que la fonction que tu m'as donné compte le nombre de ligne seulement dans l'array panier et pas ceux des autres array qui sont dans l'array panier comme par exemple l'array id qui contient 2 id (qui s'affiche ici).
EDIT : après avoir chipotter un peu, j'ai réussi a adapter ta fonction.
merci pour ton aide :D
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 nov. 2008 à 17:42
29 nov. 2008 à 17:42
en complément:
/* Initialisation du panier */ $_SESSION['panier'] = array(); /* Subdivision du panier */ $_SESSION['panier']['id_produit'] = array(); $_SESSION['panier']['nom_produit'] = array(); $_SESSION['panier']['quantite'] = array(); $_SESSION['panier']['taille'] = array(); $_SESSION['panier']['couleur'] = array(); $_SESSION['panier']['prix'] = array(); //il faut faire deux boucles inbriquees foreach($_SESSION['panier'] as $cle1=>$s_array){ //tu parcours l'array $_SESSION['panier'] echo "<br />Contenu de ".$cle1;"<br />"; foreach($s_array as $cle2=>$value){ // la tu parcours les sous array echo $value."<br />"; } }
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
29 nov. 2008 à 19:19
29 nov. 2008 à 19:19
Si j'utilise un foreach, je ne pourrais pas afficher plusieurs donnée différentes sur une même ligne.
Car mon code n'est pas prévu pour mettre un foreach.
voici mon code :
Comme on peut le voir, j'ai un peu bidouiller pour l'utilisation du foreach mais sa ne marche pas, je m'embrouille avec les sessions et les foreach.
et forcément si je met partout la variable $variable, je n'aurai pas du tout ce qu'il me faut.
Car mon code n'est pas prévu pour mettre un foreach.
voici mon code :
foreach ($_SESSION['panier'] as $key1=>$array) { foreach ($array as $key2=>$value) { ?> <tr> <td><?php echo $_SESSION['panier'][$key2][$value];?></td> <td><?php echo $_SESSION['panier'][$key2][$value].' €';?></td> <td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$_SESSION['panier'][$key2][$value].'" />';?></td> <td><?php echo $_SESSION['panier'][$key2][$value] * $_SESSION['panier'][$key2][$value].' €';?></td> <td><a href="?page=commander&mod=<?php echo $_SESSION['panier'][$key2][$value];?>">Supprimer</a></td> </tr> <?php $prix = $_SESSION['panier'][$key2][$value] * $_SESSION['panier'][$key2][$value]; $prixtot = $prix + $prixtot; //Incrémentation $numLine++; } }
Comme on peut le voir, j'ai un peu bidouiller pour l'utilisation du foreach mais sa ne marche pas, je m'embrouille avec les sessions et les foreach.
et forcément si je met partout la variable $variable, je n'aurai pas du tout ce qu'il me faut.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 nov. 2008 à 20:20
29 nov. 2008 à 20:20
Oui tu n'as pas saisi le principe du foreach
cette boucle parcours un array et à chaqu epassage associe l'index $cle avec la valeur $value
donc tu peux travailler dessu à chaque passage avec ces variables
dans ton cas si tu connais ce qu'il y a dans le sous array pas besoin de 2 ième boucle
cette boucle parcours un array et à chaqu epassage associe l'index $cle avec la valeur $value
donc tu peux travailler dessu à chaque passage avec ces variables
dans ton cas si tu connais ce qu'il y a dans le sous array pas besoin de 2 ième boucle
<?php $numLine=1; foreach ($_SESSION['panier'] as $key1=>$array){ //si tu sais ce qu'il y a dans ce sous array pas besoin de 2 ieme boucle $nom=$array[0]; $prix_unit=$array[1]; $quantite=$array[2]; $prix_total=$array[3]; $supprimer=$array[3]; ?> <tr> <td><?php echo $nom;?></td> <td><?php echo $prix_unit.' €';?></td> <td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit' . $numLine . '" value="'.$quantite.'" />';?></td> <td><?php echo $prix_unit * $quantite.' €';?></td> <td><a href="?page=commander&mod=<?php echo $nom;?>">Supprimer</a></td> </tr> <?php //Incrémentation $numLine++; }
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
29 nov. 2008 à 20:34
29 nov. 2008 à 20:34
Très bizarre, voici mon résultat :
Nom Prix unitaire Quantité Prix total Supprimer 4 € 0 € Supprimer test5 € 0 € Supprimer 4 € 0 € Supprimer s € 0 € Supprimer s € 0 € Supprimer 50 € 0 € Supprimer
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 nov. 2008 à 10:09
30 nov. 2008 à 10:09
quel est le contenu des array ? nom, prix unit etc..
est ce que tu les remplis pour chaque index, même si vide ?
est ce que tu les remplis pour chaque index, même si vide ?
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
30 nov. 2008 à 11:25
30 nov. 2008 à 11:25
Chaque array contient une donnée, aucun champ n'est vide et il y a 6 array différent dans l'array panier
voila les 6 arrays différents.
$_SESSION['panier']['id_produit'] $_SESSION['panier']['nom_produit'] $_SESSION['panier']['quantite'] $_SESSION['panier']['taille'] $_SESSION['panier']['couleur'] $_SESSION['panier']['prix']
voila les 6 arrays différents.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
>
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
30 nov. 2008 à 15:54
30 nov. 2008 à 15:54
Oui mais au niveau en dessous ?
/* Initialisation du panier */
$_SESSION['panier'] = array();
/* Subdivision du panier */
$_SESSION['panier']['id_produit'] = array();
$_SESSION['panier']['nom_produit'] = array();
$_SESSION['panier']['quantite'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['couleur'] = array();
$_SESSION['panier']['prix'] = array();
que contieneent les array() ainsi définis
/* Initialisation du panier */
$_SESSION['panier'] = array();
/* Subdivision du panier */
$_SESSION['panier']['id_produit'] = array();
$_SESSION['panier']['nom_produit'] = array();
$_SESSION['panier']['quantite'] = array();
$_SESSION['panier']['taille'] = array();
$_SESSION['panier']['couleur'] = array();
$_SESSION['panier']['prix'] = array();
que contieneent les array() ainsi définis
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
30 nov. 2008 à 20:14
30 nov. 2008 à 20:14
Je ne comprend pas très bien.
a ce moment dans le code, comme les array sont crééent, elle sont vide mais des que je rajoute une donnée (ajout d'un t-shirt) toute les array sont complétées en même temps.
a ce moment dans le code, comme les array sont crééent, elle sont vide mais des que je rajoute une donnée (ajout d'un t-shirt) toute les array sont complétées en même temps.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
>
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
30 nov. 2008 à 20:20
30 nov. 2008 à 20:20
elle sont vide mais des que je rajoute une donnée (ajout d'un t-shirt) toute les array sont complétées en même temps.
comment écris tu dans ces array ? par un index numéroté de 0 à ...
ou par un index chaine par exemple prix_unitaire
comment écris tu dans ces array ? par un index numéroté de 0 à ...
ou par un index chaine par exemple prix_unitaire
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 nov. 2008 à 10:18
30 nov. 2008 à 10:18
en complement:
$prix_total=$prix_unit*$quantite; $_SESSION['panier']['id_produit'] = array("nom"=>"toto","prix_unit"=>"20","quantite"=>"5","prix_total"=>"".$prix_total."","supprimer"=>"supprimer"); //ce qui donnera pour l'affichage: <?php $numLine=1; foreach ($_SESSION['panier'] as $key1=>$array){ //si tu sais ce qu'il y a dans ce sous array pas besoin de 2 ieme boucle $nom=$array['nom']; $prix_unit=$array['prix_unit']; $quantite=$array['quantite']; $prix_total=$array['prix_total']; $supprimer=$array['supprimer']; //etc...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
3 déc. 2008 à 18:55
3 déc. 2008 à 18:55
Bonsoir,
Essayes comme ça, j'aienfin compris comment sont organisés tes array
@lain
Essayes comme ça, j'aienfin compris comment sont organisés tes array
<?php /* Initialisation du panier */ $_SESSION['panier'] = array(); /* Subdivision du panier */ $_SESSION['panier']['id_produit'] = array(); $_SESSION['panier']['nom_produit'] = array(); $_SESSION['panier']['quantite'] = array(); $_SESSION['panier']['taille'] = array(); $_SESSION['panier']['couleur'] = array(); $_SESSION['panier']['prix'] = array(); // en fait il faut afficher les sous array // taille des sous array: (on part du principe qu'ils ont tous la même longueur) $nb_index=sizeof($_SESSION['panier']['id_produit']); //par une boucle on les parcours en affichant leur valeur for($i=0;$i<$nb_index;$i++){ ?> <tr> <td><?php echo $_SESSION['panier']['nom_produit'][$i];?></td> <td><?php echo $_SESSION['panier']['prix'][$i].' €';?></td> <td><?php echo '<input type="text" style="text-align:center;" class="formulaire" name="nombre_produit'.$i. '" value="'.$_SESSION['panier']['quantite'][$i].'" />';?></td> <td><?php echo $_SESSION['panier']['prix'][$i] * $_SESSION['panier']['quantite'][$i].' €';?></td> <td><a href="?page=commander&mod=<?php echo $_SESSION['panier']['id_produit'][$i];?>">Supprimer</a></td> </tr> <?php } ?>
@lain
okuni
Messages postés
1221
Date d'inscription
jeudi 4 septembre 2008
Statut
Membre
Dernière intervention
2 janvier 2014
126
3 déc. 2008 à 19:48
3 déc. 2008 à 19:48
Ok merci :)
mais tu n'utilise pas foreach dans cet exemple.
mais tu n'utilise pas foreach dans cet exemple.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
3 déc. 2008 à 20:04
3 déc. 2008 à 20:04
Non ,
foreach est intéressant si on veut utiliser le nom de l'index dans le cas d'un array avec index non numerique (string)
et de plus dans ton cas foreach ne parcourrait qu'un seul des array, hors la on affiche un index de chacun des array à chaque boucle
foreach est intéressant si on veut utiliser le nom de l'index dans le cas d'un array avec index non numerique (string)
et de plus dans ton cas foreach ne parcourrait qu'un seul des array, hors la on affiche un index de chacun des array à chaque boucle