repeter un tableau suivant le nombre de resultat d'une requete

Eléphant du PHP | 170 Messages

09 déc. 2007, 19:36

Bonjour a tous,
Je suis en train de creer mon site de vent immobilier. Lorsqu'une personne visite mon site et va visualiser les biens a vendre, je voudrai que le resultat soit un tableau par annonces. Comment faire pour repeter ce tableau suivant le nombre de resultat de la recherche? C'est a dire que si il n'y a qu'une annonce alors un tableau, si 5 ou 6, une annonce par tableau...voici mon code:
     	
  elseif($_POST['prixmini'] == "40000" and $_POST['prixmaxi'] == "40000") // prix = 40 000€	 
	  
	  {
	       $reponse = mysql_query("SELECT type, prix, descriptif, lien FROM bdd WHERE prix = 40000"); // Requête SQL
           while ($donnees = mysql_fetch_array($reponse) )
           {
           ?>
		   <div id="Layer1" style="position:absolute; left:218px; top:76px; width:691px; height:395px; z-index:1"> 
  <div align="center"></div>
  <table width="629" height="355" border="0" align="center" left:215px; top:115px>
    <tr align="center" valign="middle"> 
      <td height="75"><div align="left"><?php echo $donnees['type']; ?></div></td>
      <td><div align="left">def</div></td>
      <td><div align="left">coup de coeur</div></td>
      <td><div align="left">r&eacute;f</div></td>
      <td><div align="left">d&eacute;signation</div></td>
      <td><div align="left"><?php echo $donnees['prix']; ?></div></td>
    </tr>
    <tr align="center" valign="middle"> 
      <td height="148" colspan="2"><div align="left"><?php echo '<img src="image/'.$donnees['lien'].'">'; ?></div></td>
      <td colspan="4"><div align="left"><?php echo $donnees['descriptif']; ?></div></td>
    </tr>
    <tr align="center" valign="middle"> 
      <td><div align="left">liens photos </div></td>
      <td colspan="5"><div align="left">liens</div></td>
    </tr>
  </table>
</div>
		   
           <?php
           }
           mysql_close(); // Déconnexion de MySQ
	  }	
Dans cet exemple, je me suis arrangé pour n'avoir qu'une reponse donc le resultat s'affiche dans mon tableau sans soucis...Mais si il y a deux reponses, je voudrai qu'un deuxieme tableau apparaisse en dessous du premier, et le tout sans avoir a rebalancer le code d'un deuxieme tableau
Quelqu'un a une idee??

Eléphant du PHP | 75 Messages

09 déc. 2007, 19:47

Bah normalement c'est bon, il répétera le nombre de tableau autant de fois qu'il y a d'enregistrement dans ta table.

Si par exemple il y a 2 enregistrement, il fera 2 tableaux, s'il y en a 15 il en fera 15.

:)

Ta boucle va lire tous les enregistrements de ta table jusqu'à qu'il arrive à la fin de ta table et qu'il n'y ai dont plus de données à lire.

^^

Eléphanteau du PHP | 40 Messages

09 déc. 2007, 20:10

dans ton exemple le probleme c'est que tu reafiche tes tableaux les uns sur les autres.
a cause de ton:

Code : Tout sélectionner

<div id="Layer1" style="position:absolute; left:218px; top:76px; width:691px; height:395px; z-index:1">
tu devrais incrementer ton attribut top:76px du type:
   $mon_top = 76;
  $mon_entre_deux = 5;
  $mon_height = 395;
while ($donnees = mysql_fetch_array($reponse) )
           {
           ?>
           <div id="Layer1" style="position:absolute; left:218px; top:<?php echo $mon_top; ?>px; width:691px; height:<?php echo $mon_height; ?>px; z-index:1"> 
                 //je vois rien a changer mais j'ai pas bien etudier!!
           </div>
           
           <?php
           $mon_top += $mon_height + $mon_entre_deux;
           } 
en construction http://plus2site.fr

Eléphant du PHP | 170 Messages

10 déc. 2007, 22:54

au secours ça marche pas!!!!

Eléphanteau du PHP | 40 Messages

10 déc. 2007, 22:57

je croi que les moderateur aime pas les appelles au secour comme ça. donne nous autre chose quoi comme erreur? quoi comme modif? quoi comme resultat??? quelque chose quoi!!!!
en construction http://plus2site.fr

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 déc. 2007, 23:36

Modération :
chris51200, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 170 Messages

11 déc. 2007, 07:34

bon alors voici le code sachant qu'il y a plusieur reponse dans ma BDD (donc je voudrai afficher autant de tableau que de reponse).
elseif($_POST['prixmini'] == "40000" and $_POST['prixmaxi'] == "80000") // prix compris entre 40 000 et 80 000€	 
	  
	  {
	       $reponse = mysql_query("SELECT type, prix, descriptif, lien FROM bdd WHERE prix >= 40000 AND prix <= 80000 ORDER BY prix"); // Requête SQL
           while ($donnees = mysql_fetch_array($reponse) )
           {
           ?>
		          <div id="Layer1" style="position:absolute; left:218px; top:76px; width:691px; height:395px; z-index:1"> 
  <div align="center"></div>
  <table width="629" height="354" border="0" align="center" bordercolor="#0000FF" left:215px; top:115px>
    <tr align="center" valign="middle" bordercolor="#0000FF" bgcolor="#FFFFFF"> 
      <td height="75"><div align="left"><?php echo $donnees['type']; ?></div></td>
      <td><div align="left">def</div></td>
      <td><div align="left">coup de coeur</div></td>
      <td><div align="left">r&eacute;f</div></td>
      <td><div align="left">d&eacute;signation</div></td>
      <td><div align="left"><?php echo $donnees['prix']; ?></div></td>
    </tr>
    <tr align="center" valign="middle" bgcolor="#FFFFFF"> 
      <td height="148" colspan="2"><div align="left"><?php echo '<img src="image/'.$donnees['lien'].'">'; ?></div></td>
      <td colspan="4"><div align="left"><?php echo $donnees['descriptif']; ?></div></td>
    </tr>
    <tr align="center" valign="middle" bordercolor="#FFFFCC" bgcolor="#FFFFFF"> 
      <td height="123"><div align="left">liens photos </div></td>
      <td colspan="5"><div align="left">liens</div></td>
    </tr>
  </table>
</div>
     
<?php
           }
           mysql_close(); // Déconnexion de MySQ
	  }	     
donc la les valeurs des differents resultat se superposes dans la meme case. Comment puis je faire pour incrementer mon tableau autant de fois que de reponses?
merci

Eléphanteau du PHP | 40 Messages

11 déc. 2007, 17:50

lol t'abuse! quoi comme erreur? ben,toujour la même! quoi comme modif? ben,heu... rien! quoi comme resultat ??? on sait même pas si ta page s'affiche.
donc vraiment rien de rien!!!!!!!
dans :

Code : Tout sélectionner

<div id="Layer1" style="position:absolute; left:218px; top:76px; width:691px; height:395px; z-index:1">
retire l'attribut style complet fait une selection de 'style..à..z-index:1"' et tape la touche "suppr". si ta page affiche tout tes resultats mais resemble pas a ce que tu voulais, la solution tu l'as. remonte de quelques postes
en construction http://plus2site.fr

Eléphant du PHP | 170 Messages

11 déc. 2007, 23:20

HA oui daccord...je comprends maintenant
MERCI A TOUS!