Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 08h56   #1
Invité de passage
 
Homme Kévin
Étudiant
Inscription : octobre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Kévin
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 21
Points : 4
Points : 4
Par défaut foreach dans boucle while

Bonjour,

Le but de mon site web est la gestion de réunion.

Un formulaire permet la création de réunion dans la table réunion (sous postgre)
MLD réunion
(Num_reu, date_reu, lieux_reu, numpers_reu (clé étrangère à la table personne ))

Sur une autre page, j'affiche les infos de la table réunion.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$dbconnect=pg_connect("host=localhost dbname=PTI user=... password=...");
 
$count = "Select * from reunion";
$resultat=pg_query($dbconnect,$count);
 
while($tab=pg_fetch_array($resultat))
{
 
blablabla....
 
 $hotesse =$tab['numpers_reu'];
 
foreach ($hotesse as & $num){
	$sql="select nom_pers from personnes where num_pers ='".$num."';";
	$resul=pg_query($dbconnect,$sql);
	echo $result;
}
}
?>

L'idée c'est que en récupérant le numéro de la personne avec $tab['num_pers'] je puisse afficher pour chaque réunion le nom de la personne qui se trouve dans la table personnes.
Il faut donc que je fasses une requête qui va, pour chaque réunion, afficher le nom de la personne en fonction du numéro situé dans la table reunion.
J'avais pensé à faire un foreach dans le while avec une requête sql mais je n'y arrive pas.


Erreur retourner:
Warning: Invalid argument supplied for foreach()


Merci de votre aide
Kevfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h08   #2
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Bonjour,

Tu peux remplacer tes boucles par une seule requête en effectuant une jointure
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h10   #3
Invité de passage
 
Homme Kévin
Étudiant
Inscription : octobre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Kévin
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 21
Points : 4
Points : 4
Citation:
Envoyé par hariman Voir le message
Bonjour,

Tu peux remplacer tes boucles par une seule requête en effectuant une jointure
pas vraiment car dans le while j'ai:
echo"<p style='clear: both;'></p>";
echo "<img src=images/calendrier_icon.gif />". strftime("%d,%m,%Y",strtotime($tab['date'])) .'</br > Ville: '.$tab['lieux_reu'].'</br > Nombre de personnes: '.$tab['nbpers_reu'].'</br > Hôtesse: ';
echo"<p style='clear: both;'></p>";

j'affiche toutes les infos pour chaque réunions, et il y en a environ une dizaine.
Kevfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 10h17   #4
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
- Récupère les réunions :
Code :
select distinct num_reu, date_reu, lieux_reu from reunion
- Puis, pour chaque réunion, récupère les personnes :

Code :
1
2
// pour chaque réunion, faire :
  select personnes.nom_pers from reunion left join personnes on reunion.num_pers = personnes.num_pers where reunion.num_reu = $num_reu
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 10h23   #5
Invité de passage
 
Homme Kévin
Étudiant
Inscription : octobre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Kévin
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 21
Points : 4
Points : 4
Heu....
L’idée c'est de récupérer le nom de la personne pour chaque réunion.
Donc sans utiliser de boucle je ne vois pas comment faire.

Lorsque je fais la requête pour récupérer le nom j'obtiens: Resource id #8
Kevfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 10h30   #6
Membre éclairé
 
Avatar de hariman
 
Homme Luc Hariman RANDRIANOMENJANAHARY
Développeur Java
Inscription : janvier 2008
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Luc Hariman RANDRIANOMENJANAHARY
Localisation : Ile Maurice

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2008
Messages : 175
Points : 349
Points : 349
Envoyer un message via MSN à hariman Envoyer un message via Skype™ à hariman
Citation:
Envoyé par hariman Voir le message
Code :
1
2
// pour chaque réunion, faire :
  select personnes.nom_pers from reunion left join personnes on reunion.numpers_reu = personnes.num_pers where reunion.num_reu = $num_reu
C'est là que tu fais un boucle.

Pour être plus clair :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
 
$dbconnect=pg_connect("host=localhost dbname=PTI user=... password=...");
 
$count = "select distinct num_reu, date_reu, lieux_reu from reunion";
$resultat=pg_query($dbconnect,$count);
 
while($tab=pg_fetch_array($resultat))
{
 
  // blablabla....
 
  $num_reu = $tab['num_reu'];
 
  $sql="select personnes.nom_pers from reunion left join personnes on reunion.numpers_reu = personnes.num_pers where reunion.num_reu = $num_reu";
  $resul=pg_query($dbconnect,$sql);
  while ($tab2 = pg_fetch_array($resul))
    echo $tab2['nom_pers'];
 
}
?>
__________________
Les boutons et adorent être cliqués, donc ne les oubliez pas
hariman est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/02/2012, 10h46   #7
Invité de passage
 
Homme Kévin
Étudiant
Inscription : octobre 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Kévin
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2011
Messages : 21
Points : 4
Points : 4
Là j'ai mieux compris
Merci beaucoup Hariman

Sujet résolu.
Bonne journée
Kevfou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h39.


 
 
 
 
Partenaires

Hébergement Web