PHP|Débutant :: Forums

Advertisement

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

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

#1 22-01-2013 23:01:02

CouZine
Membre
Inscription : 22-01-2013
Messages : 4

Remplir array avec une boucle while

Bonjour à tous,

Je voudrai remplir un array à l'aide d'une boucle While mais ça ne fonctionne pas...



Voici mon code dans lequel je parcoure le résultat de ma requête pour l'afficher dans une liste déroulante (ce qui fonctionne très bien) mais je voudrai également stocker les résultats dans un tableau. Pour l'instant le tableau reste vide.


$tab_ent=array();
while($data = mysql_fetch_assoc($req_gen))
{ echo $data['Entite']; //j'ai ajouté cette ligne pour tester, mais ça n'affiche rien :|
$ent = $data['Entite'];
$tab_ent[] = $ent;
echo '<option>'.$ent.'</option>'; //aucun souci d'affichage dans la liste
}

Si vous avez une solution je suis preneuse.


___
Couzine

Hors ligne

#2 23-01-2013 10:38:18

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Remplir array avec une boucle while

Saluton,

    $tab_ent=array();
    while($data = mysql_fetch_assoc($req_gen))
    { echo $data['Entite']; //j'ai ajouté cette ligne pour tester, mais ça n'affiche rien :|
    $tab_ent[]= $data['Entite'];
      echo '<option>'.$data['Entite'].'</option>'; //aucun souci d'affichage dans la liste
    }

Franchement, je ne vois pas pourquoi ton array $tab_ent était vide, sauf si $data['Entite'] est vide (comme semble l'indiquer le résultat de echo) mais à quoi bon passer par cette variable intermédiaire $ent ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 23-01-2013 11:30:52

CouZine
Membre
Inscription : 22-01-2013
Messages : 4

Re : Remplir array avec une boucle while

Hello,

Je te mets le code final que je voudrai obtenir :

 
while($data = mysql_fetch_assoc($req_gen))
{
$ent = $data['Entite'];
if(in_array($ent, $tab_ent)){
  $tab_ent[] = $data['Entite'];
  echo '<option>'.$ent.'</option>';
}

Je veux enlever les doublons de ma requête en testant à chaque fois si le résultat est déjà affiché. J'espère que je suis clair...
Je suis déccord que le echo n'affiche rien, mais c'est tout de même bizarre que ça affiche correctement $data['Entite'] dans la liste déroulante non ? Cela prouve qu'il n'est pas vide...

J'espère être assez clair. Si une autre solution existe pour filtrer les doublons, je suis preneuse.


___
Couzine

Hors ligne

#4 23-01-2013 12:16:18

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Remplir array avec une boucle while

>>Je veux enlever les doublons de ma requête

un SELECT DISTINCT ne serai pas de meilleurs augure ?
a++

Hors ligne

#5 29-01-2013 15:16:43

CouZine
Membre
Inscription : 22-01-2013
Messages : 4

Re : Remplir array avec une boucle while

Quel est le plus pertinent ou plutôt le plus rapide d'exécution :
- faire une requête générale puis trier les résultats (ma demande ci-dessus) ?
- faire plusieurs requêtes très ciblées ?

C'est dans un souci de rapidité d'exécution que je voulais appliquer cette boucle. Peut-être ai-je tord.


___
Couzine

Hors ligne

#6 29-01-2013 20:45:08

nicolas
Membre
Inscription : 11-11-2009
Messages : 69
Site Web

Re : Remplir array avec une boucle while

CouZine a écrit :

Quel est le plus pertinent ou plutôt le plus rapide d'exécution :
- faire une requête générale puis trier les résultats (ma demande ci-dessus) ?
- faire plusieurs requêtes très ciblées ?

C'est dans un souci de rapidité d'exécution que je voulais appliquer cette boucle. Peut-être ai-je tord.

Le plus rapide : faire une seule requête qui ramène les résultats ciblés.

Hors ligne

#7 08-02-2013 10:50:20

CouZine
Membre
Inscription : 22-01-2013
Messages : 4

Re : Remplir array avec une boucle while

Ok, merci de ta réponse Nicolas.


___
Couzine

Hors ligne

Pied de page des forums