Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2929 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme foreach php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme foreach php

n°2303142
rakima
Posté le 10-07-2017 à 13:08:11  profilanswer
 

bonjour, ca fait quelques semaines que je suis bloquée , et je commence q desesperer , j ai vraiment besoin d aide.
 
mon code ressemble a ca :

Code :
  1. global $wpdb;
  2.     //Je construis la requete à part
  3.     $requete = "SELECT meta_value,meta_key FROM `usermeta` ";
  4.     $requete .= "where user_id='".get_current_user_id()."' ";
  5.     $donnees = $wpdb->get_results($requete);
  6. $domaine=array();
  7. $metiers_domaine=array();
  8. $description=array();
  9. $dom=array();
  10. $m_d=array();
  11. $desc=array(); ?>
  12.   <?php 
  13. foreach ($donnees as $user) {
  14.         if ($user->meta_key == "job_listing_category" ) {
  15.             $domaine[] = $user->meta_value;
  16.          $dom[] = $user->umeta_id;
  17.         }
  18.         if ($user->meta_key == "description" ) {
  19.             $description[]= $user->meta_value;
  20.          $desc[]= $user->umeta_id;   
  21.         }   
  22.         if ($user->meta_key == "metier_domaine" ) {
  23.             $m_d[] = unserialize($user->meta_value);
  24.           //$metiers_domaine1[] = $user->umeta_id;
  25.           //$arraye = array($metiers_domaine, $metiers_domaine1);
  26.           }
  27.       }
  28. ?>
  29. <form method="POST" action="p.php">
  30. <table class="pure-table pure-table-bordered">
  31.         <tr><th>Domaine</th>
  32.     <?php  foreach($domaine as $dom ){
  33.         echo "<td>".ucfirst($dom)."<br></td> ";} ?>
  34.     </tr>
  35.        <tr><th>Metier Domaine</th>
  36.     <?php foreach($m_d as $key){
  37.         echo "<td>";
  38.         foreach($key as $o){
  39.             echo "<br>";
  40.             echo ucfirst($o);}echo "</td>";}?>
  41.          </tr>
  42.     <tr><th>Dossier Technique</th>
  43.     <?php
  44.         foreach($description as $desc){
  45.             echo "<td>".ucfirst($desc)."<br></td>"; }?></tr>
  46.     <tr><th>Action</th>
  47.         <?php $somme=count($domaine);
  48.                       for ($i = 0; $i < $somme; $i++){?>
  49.         <td>
  50.             <a href="p?dom=<?php echo $dom ?>&o=<?php echo $o ?>&desc=<?php echo $desc ?>" title="Editer">
  51.             <img src="edit-e1498588233966.png"></a>
  52.             <a href="e?dom=<?php echo $dom ?>&m_d=<?php echo $m_d ?>&desc=<?php echo $desc ?>" title="Remove"><img src="remove-e1499223.png" ></a>
  53.         </td>
  54.         <?php } $i++;?>
  55.     </tr>
  56.     </table>
  57. </form>


 
le href editer , mon renvoi les valeurs du derniers enregistrements de la table , alors que je veux qu il me donne les valeurs de la ou il pointe .
je sais que ca provient du for des href , mais je ne sais pas ce qu'il faut que je fasse pour récupérer les valeurs voulu .


Message édité par rakima le 10-07-2017 à 13:12:52
mood
Publicité
Posté le 10-07-2017 à 13:08:11  profilanswer
 

n°2303143
rufo
Pas me confondre avec Lycos!
Posté le 10-07-2017 à 13:51:33  profilanswer
 

T'es pas dans les mêmes boucles. Ca risque pas de marcher, si je comprends bien ton code.
 
La première boucle va afficher sur une ligne, tous les domaines. par contre, je comprends pas pourquoi tu mets un <br /> dans ton <td>, c'est un non-sens :/
 
La 2ème boule va afficher sur une seconde ligne le "métier domaine" avec une autre boucle à l'intérieur  :/
 
La 3ème boucle affiche sur une ligne des dossiers techniques (avec encore un <br /> dans le <td>  :pfff:  
 
Enfin, une 4ème boucle (de type for et non foreach) qui affiche à nouveau la description et un truc en rapport avec le métier domaine.
 
Bref, aucun chance que tout ça fonctionne puisque tes boucles s'exécute les unes à la suite des autres et non en parallèle, comme il semble que tu le voudrais. En plus, tu fais appelles à des variables qui viennent de boucles précédentes et (donc) déjà terminées d'être exécutées. Il est normal que $o ou $desc t'indique la dernière valeur puisqu'ils sont arrivés à la fin de leur boucle.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2303145
rakima
Posté le 10-07-2017 à 15:19:37  profilanswer
 

Merci pour la reponse , j'ai enlevé les <br> (erreur bete) mais qui changes rien ,le probleme c'est que meta_key prend 3 valeurs "job_listing_category" ou "metier_domaine" ou "description"
et :
job_listing_category c'est les domaines
metier_domaine c'est les métiers domaine
description c'est dossier technique
mais l'architecture de ma table usermeta est tres limitée (je peux pas la changer , bd wordpress)
du coup dans la colomn meta_key y'a job_listing_category ,metier_domaine et description donc forcement faut que je teste avant d'afficher , mais comme vous dites je sais que mes foreach ressemble a un bazard , mais je sais plus par ou commencer
 

n°2303176
rufo
Pas me confondre avec Lycos!
Posté le 10-07-2017 à 22:42:58  profilanswer
 

J'ai l'impression que la valeur commune entre tes 3 types de données, c'est $user->umeta_id.
Du coup, je te propose la structure suivante :
$ArrayData = array(
                              id1 => array(
                                                   'domaine' => $domaine_value,
                                                   'metier' => $metier_value,
                                                   'desc' => $desc_value
                                                 ),
                              id2 => array(
                                                  ...
                                                 ),
                             );
id 1, id2... représentent les valeurs prises par $user->umeta_id.
 
Mais le mieux, ça serait de nous poster un exemple de contenu de ta table de données et le rendu de ces données dans le tableau que tu cherches à afficher. Ainsi, ce sera plus simple de te proposer la structure de données à utiliser pour faire les boucles que tu veux.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme foreach php

 

Sujets relatifs
Problème avec boucle foreach powershellproblème avec une boucle foreach
Problème ArrayList et foreach[PERL] probleme avec foreach et l'ascii 10
Probléme avec fonction foreachProblème avec foreach !
probleme avec foreachproblème avec foreach
Problème avec foreachproblème avec fonction FOREACH
Plus de sujets relatifs à : probleme foreach php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR