PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 21-07-2010 16:03:46

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

probleme avec extract et tableau

bonjour à toutes et tous!

Je viens vers vous concernant un petit problème qui je pense doit etre basique mais qui me pose quand même des soucis!
Aussi, j'espere qu'une ame charitable pourra m'apporter des eclaircies!

je vais recupérer une liste de projets en cours via la ligne suivante


$liste_projets= recup_projets($_SESSION['id'], 2);
 

et je tente de faire un extract de mon array via


foreach ($liste_projets as $elements)
  {
  extract($elements);
}}
 

puis fais mon include pour renvoyer vers ma page de vue:     


include CHEMIN_VUE.'projets_actifs.php';
 

sur cette page je fais:


 var_dump($liste_projets);
if (!empty($liste_projets)) {

echo '
<td>'
.$Acronyme.'<td>
<td align="left">'
.$LigneAppel.'</td>
<td>'
.$Prog.'</td>
<td>'
.$NbContrat.'</td>
<td></td>
<td>Access</td>'
;
}
 

mon var_dump me retourne bien les données de tous les projets enregistrés
par contre le tableau ne m'affiche que le dernier resultat et pas les premiers

Comment y remédier please?
grand merci à vous!
@+

Hors ligne

#2 21-07-2010 16:44:16

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : probleme avec extract et tableau

Bonjour,

A mon humble avis ton soucis viens de ta gestion du foreach.

Je te remets dessous un explicatif du fonctionnement de foreach que j'avais fait sur un autre post il y a quelques temps.

Prenons le tableau suivant :


$row=array('A','B','C','D','E');
// on a $row[0]='A'; $row[1]='B' ; $row[2]='C' ; $row[3]='D' ; $row[4]='E'; Jusque la c'est clair

// Ce qu'il ne faut pas faire :

foreach ($row as $DB){
  $my_string_2 = $DB[1];
  $my_string_3 = $DB[2];
  $my_string_4 = $DB[3];
print "$my_string_2.$my_string_3.$my_string_4";
}

// Ce qu'il faut savoir:
// Dans notre exemple le tableau $row possède 5 indexes et ta boucle foreach va parcourir le tableau à chaque itération. Pour avoir le bon affichage voici un exemple du code que l'on peut appliquer :

$i=0;
foreach ($row as $DB){
     $i++;
     if ($i==1){$my_string_1=$DB[0];}
     if ($i==2){$my_string_2=$DB[0];}
     if ($i==3){$my_string_3=$DB[0];}
     if ($i==4){$my_string_4=$DB[0];}
     if ($i==5){$my_string_5=$DB[0];}
}
 print " $my_string_1.$my_string_2.$my_string_3";

// Ici ton print contiendra les bonnes valeurs^^
// ne pas oublier cependant :

unset($DB);
 

Faudra aussi que tu penses à faire une boucle pour l'affichage de l'ensemble de ton tableau.

Voila. J'espère que cela aura pu t'aider.

Dernière modification par Jc (21-07-2010 17:00:55)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 22-07-2010 11:13:04

Darkangel
Membre
Inscription : 20-11-2009
Messages : 128

Re : probleme avec extract et tableau

Merci pour ton code et les explications fournies, toutefois je n'arrive pas à intégrer un système similaire dans mon code malgrés mes tentatives répétées!

j'en suis ici:


if (!empty($liste_projets)) {
$nb = count($liste_projets);
$i =0;
foreach ($liste_projets as $DB => $elements){
if ($i<=$nb) {
$i++ ;
print_r($elements[$i]);
extract($elements[$i]);
}
 

mais cela me donne

Notice: Undefined offset: 1 in H:\prog\EasyPHP-5.3.2i\www\PROJET2\modules\gestion-suivi\projets_actifs.php on line 16

Warning: extract() expects parameter 1 to be array, null given in H:\prog\EasyPHP-5.3.2i\www\PROJET2\modules\gestion-suivi\projets_actifs.php on line 17

Notice: Undefined offset: 2 in H:\prog\EasyPHP-5.3.2i\www\PROJET2\modules\gestion-suivi\projets_actifs.php on line 16

Warning: extract() expects parameter 1 to be array, null given in H:\prog\EasyPHP-5.3.2i\www\PROJET2\modules\gestion-suivi\projets_actifs.php on line 17

Hors ligne

#4 22-07-2010 11:57:36

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probleme avec extract et tableau

$elements n'est pas ton tableau mais le contenu de l'une des case de ton tableau.
Donc soit tu fais un print_r($elements) soit tu fais un print_r($liste_projets[$i]).

Hors ligne

Pied de page des forums