Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 21/08/2006, 10h21   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
Par défaut [Conception] probleme d'affichage de plusieurs enregistrements

bonjour,

ce que j'aimerais faire c'est afficher le nom d'une entreprise ainsi que tous les employés (contacts) quelle contient. j'ai créé deux table, une entreprise et une autres contacts. Je fais mes requetes sur mes tables:
Citation:
$req = "SELECT * FROM entreprise WHERE 1=1";


//Ajout des conditions sur la rasion sociale//
if(@$_POST['raisonSociale'] != "")
{$req .= " AND EN_raisonSociale LIKE '%" . @$_POST['raisonSociale'] . "%'";
$raisonsociale=$_POST['raisonSociale'];
}
Citation:

$req_contacts = "SELECT * FROM contacts WHERE CO_EN_raisonSociale LIKE '%" . $row_rsGeneral['EN_raisonSociale'] . "%'";
j'ai un peu raccourci la première car elle controle plusieurs champs mais c'est juste pour vous donner une idée.

Le problème que j'ai est le suivant: quand il n'y a qu'une seule entreprise retournée avec ma requete, l'affichage se passe sans probleme mais lorsque a requete renvoi plusieurs entreprises ca devient le bordel la mise en forme n'existe plus et je ne recoit pas les employés des entreprises renvoyés après la 1ere entreprise.

mon code pour affciher les entreprise est le suivant.
Citation:
Citation:
<p>&nbsp;</p>
<form name="form3" method="post" action="">
<table width="95%"**border="0" cellspacing="0" cellpadding="0">
<?php do { ?>
<tr>
**<th colspan="2" scope="col">Entreprise</th>
</tr>

<tr>
**<td width="41%">Raison Sociale</td>
<td width="59%">
<?php
echo $row_rsGeneral['EN_raisonSociale']; ?>
</td>
</tr>

<tr>
**<td>Adresse</td>
<td>
<?php
echo $row_rsGeneral['EN_adresse']; ?>
</td>
</tr>

<tr>
**<td>Boite postale </td>
<td>
<?php
echo $row_rsGeneral['EN_boitePostale']; ?></td>
</tr>

<tr>
**<td>Code postal</td>
**<td>
<?php
echo $row_rsGeneral['EN_codePostal']; ?></td>
</tr>

<tr>
**<td>Ville</td>
<td>
<?php
echo $row_rsGeneral['EN_ville']; ?>
</td>
</tr>

<tr>
**<td>Abonner</td>
<td>
<?php
echo $row_rsGeneral['EN_abonner']; ?>
</td>
</tr>

<tr>
**<td>Secteur</td>
<td><?php echo $row_rsGeneral['EN_secteur']; ?>
</td>
</tr>

<tr>
**<td>Commentaire</td>
<td><?php echo $row_rsGeneral['EN_commentaire']; ?>
</td>
</tr>

<tr>
**<td>Numéro lettre début abonnement</td>
<td><?php echo $row_rsGeneral['EN_numDebutAbo']; ?>
</td>
</tr>

<tr>
**<td>Numéro lettre fin abonnement </td>
<td><?php echo $row_rsGeneral['EN_numFinAbo']; ?>
</td>
</tr>

<tr>
**<td>Téléphone de l'entreprise </td>
<td><?php echo $row_rsGeneral['EN_telephone']; ?>
</td>
</tr>

<tr>
**<td>Adresse Web </td>
<td><?php echo $row_rsGeneral['EN_web']; ?>

</td>
</tr>

<p>&nbsp;</p>
<p>&nbsp;</p>

<table width="95%"**border="0" cellspacing="0" cellpadding="0">

<?php
do {
?>

<tr>
**<th colspan="2" scope="col">Contacts</th>
</tr>

<tr>
**<td width="41%">Civilité</td>
**<td width="59%">

<?php
echo $row_rsContacts['CO_civilite']; ?>

**</td>
</tr>

<tr>
**<td>Nom</td>
<td>
<?php
echo $row_rsContacts['CO_nom']; ?>
</td>
</tr>

<tr>
**<td>Prénom </td>
<td>
<?php
echo $row_rsContacts['CO_prénom']; ?>
</td>
</tr>

<tr>
**<td>Fonction</td>
<td>
<?php
echo $row_rsContacts['CO_fonction']; ?>
</td>
</tr>

<tr>
**<td>Téléphone direct</td>
<td>
<?php
echo $row_rsContacts['CO_telephoneFixe']; ?>
</td>
</tr>

<tr>
**<td>Téléphone portable</td>
<td>
<?php
echo $row_rsContacts['CO_telephonePortable']; ?>
</td>
</tr>

<?php } while ($row_rsContacts = mysql_fetch_assoc($rsContacts)); ?>


</table>


<?php } while ($row_rsGeneral = mysql_fetch_assoc($rsGeneral)); ?>


<p>&nbsp;</p>
</form>
<p>&nbsp;</p>
</form>
<p>&nbsp;</p>

merci de votre aide.
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 10h27   #2
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
tu commences ta première boucle après la création de ton tableau et tu la finis après la fermeture de ton tableau. Ce qui fait que quand tu as plusieurs entreprises, tu ouvres 1 tableau que tu refermes autant de fois que tu as d'entreprises à afficher.
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 10h47   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
oki je comprend ce que tu veux dire mais je ne vois pas comment faire. Pourrais tu montrer ce que je dois changer dans mon code?
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 11h24   #4
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
Citation:
oki je comprend ce que tu veux dire mais je ne vois pas comment faire. Pourrais tu montrer ce que je dois changer dans mon code?
ben en fait ça veut dire que tu n'as pas compris enfait

en regardant encore ton code je me suis aperçu que tu ne refermais pas ta première table.
d'où ton problème.

Ce que je te conseille de faire c'est d'afficher la source html de ta page résultat et de voir d'où vient le problème en prenant comme base pour un tableau bien fait :
- à chaque balise <table> correspond 1 balise </table>
- à chaque balise <tr> correspond 1 balise </tr>
- à chaque balise <td> correspond 1 balise </td>
- si tu veux imbriquer des tableaux, tu ouvres la balise <table> dans un <td> de la table parente et tu la refermes au sein du même <td>

Quand tu auras identifié les balises manquantes/mal placées, tu pourras corriger ton code
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 11h33   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
La mise en page est maintenant correcte mais j'ai toujours un problème quant à l'affichage des employés. Les employés de la première entreprise s'affichent sans problème alors que ceux des entreprises suivantes ne s'affichent pas du tout.

Le problème vient-ils de mes requêtes ou est-ce de nouveau mon affichage?
benoitinfrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h08   #6
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 78
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 78
Points : 12
Points : 12
salut à tous.

j'ai fini par résoudre mon problème. En fait j'effectuait ma requete en dehors de ma boucle ce qui bien évidement me renvoyait les employé de la première entreprise mais pas ceux des suivantes. En le plaçant à l'intérieur de ma boucle "do". j'envoi à chaque tour une requete qui me renvoi les employé de l'entreprise en cours.

Merci encore de votre aide qui ma mis sur la voie...

bye
benoitinfrance 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 07h41.


 
 
 
 
Partenaires

Hébergement Web