[MySQL] Problème de requête

Problème de requête [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 19-05-2006 à 15:04:41    

Bonjour, j'ai créé une base de données pour un site d'annonces immobilières.
Les types d'offre (appartement, maison, terrain...) dans la table sont stocké sous la forme 1, 2, 3...
Chaque chiffre est associé à un type d'offre.
Comment faire lors de l'affichage des résultats pour indiquer que "1" correspond à "appartement", "2" à "maison"...
 
Merci par avance.

Reply

Marsh Posté le 19-05-2006 à 15:04:41   

Reply

Marsh Posté le 19-05-2006 à 15:34:34    

Ben-o a écrit :

Bonjour, j'ai créé une base de données pour un site d'annonces immobilières.
Les types d'offre (appartement, maison, terrain...) dans la table sont stocké sous la forme 1, 2, 3...
Chaque chiffre est associé à un type d'offre.
Comment faire lors de l'affichage des résultats pour indiquer que "1" correspond à "appartement", "2" à "maison"...
 
Merci par avance.


 
sous php  
fait un tableau array :

Code :
  1. <?php
  2. $tableau=array("bonjour","appartement","maison",...);
  3. echo $tableau[0]; -> // retourne bonjour
  4. echo $tableau[1]; -> // retourne appartement  
  5. echo $tableau[2]; -> // retourne maison  
  6. ?>


apres c en fonction de ton langage

Reply

Marsh Posté le 19-05-2006 à 15:44:48    

Merci 100top, c'est bien php/mysql, j'avais oublié de préciser.

Reply

Marsh Posté le 19-05-2006 à 16:49:30    

Ou une solution propre avec une table en base listant les types de bien avec association entre code et libellé. Comme lors de l'ajout d'un nouveau type ca evite de toucher au code PHP. :)


---------------
MZP est de retour
Reply

Marsh Posté le 19-05-2006 à 20:59:50    

select
   case type_offre
      when 1 then 'appartement'
      when 2 then 'maison
      else then 'autres'
   end case
from table...

Reply

Marsh Posté le 19-05-2006 à 21:46:13    

ca ne fait que deporter le bordel. Autant le faire dans PHP à ce niveau.

Reply

Marsh Posté le 20-05-2006 à 09:24:58    

tu peux également créer une table supplémentaire pour la description des différents types
imaginons que tu as la table suivante appelé "type_bien" :

+------+-------------+
| type | description |
+------+-------------+
|    1 | appartement |
|    2 | maison      |
|    3 | chateau     |
+------+-------------+


Et que ta table possédant les annonces s'appelle "annonce" ; tu feras une requête de ce style :

Code :
  1. SELECT a.* , b.description FROM annonce a, type_bien b WHERE a.type=b.type;

Reply

Marsh Posté le 20-05-2006 à 15:06:06    

cinocks a écrit :

ca ne fait que deporter le bordel. Autant le faire dans PHP à ce niveau.


 
je pense que si ca touche aux données et qu'on peut le faire en sql alors il vaut mieux toujours le faire en sql.
ca permet de compartimenter les tâches et de faciliter la maintenance.
 
par contre je rejoins l'idée d'une table dédiée, si les libellés sont susceptibles de changer régulièrement, c'est mieux.
 

Reply

Marsh Posté le 20-05-2006 à 18:43:40    

disons que si la requete effectuée dans le code PHP, ca ne deporte pas grand chose.


---------------
MZP est de retour
Reply

Marsh Posté le 20-05-2006 à 18:49:17    

cinocks a écrit :

disons que si la requete effectuée dans le code PHP, ca ne deporte pas grand chose.


ce qui veut dire ?

Reply

Marsh Posté le 20-05-2006 à 18:49:17   

Reply

Marsh Posté le 20-05-2006 à 19:06:51    

Code :
  1. <?
  2. $sql = 'select case type_offre when 1 then "appartement" when 2 then "maison" else then "autres" end case from table...'
  3. ?>


cette requete sera faite au sein même du code php, donc passer par un trableau ou par le sql pour convertir les id en libellé, ca revient totalement au meme.


Message édité par cinocks le 20-05-2006 à 19:07:14

---------------
MZP est de retour
Reply

Marsh Posté le 29-05-2006 à 09:20:27    

Merci à vous pour ces précisions

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed