|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Bonjour à tous,
A la suite d'un problème résolu, un petit problème vient d'apparaitre pour faire simple voilà quelques explications. J'ai deux tables : type_logement -id_logement -type_logement (chambre,studio,appartement,maison...) offres -id -id_logement -nom -prénom -rue... Le problème est que en voulant faire simple j'ai créer un formulaire pour créer une nouvelle offre ou modifier une offre cependant la liste déroulante elle ne copie dans la table offre que l'id_logement et non pas le type_logement. Les offres ressemblent alors à : vous avez choisi un 2, son loyer est de... Le problème c'est que à la place du 2 qui est l'id correpondant à appartement j'aurais aimer avoir, vous avez choisi un appartement... Le code affichant un résumé du contenu de la table est : Code :
<?php $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr align="center"> <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['type']); ?></td> <td><?php echo stripslashes($donnees['meuble']);?></td> <td><?php echo stripslashes($donnees['loyer']);?></td> <td><?php echo stripslashes($donnees['distance']);?></td> <td><?php echo stripslashes($donnees['superficie']);?></td> <td><?php echo stripslashes($donnees['prenom_proprio']);?></td> <td><?php echo stripslashes($donnees['nom_proprio']);?></td> <td><?php echo stripslashes($donnees['rue']);?></td> <td><?php echo stripslashes($donnees['code_postal']);?></td> <td><?php echo stripslashes($donnees['ville']);?></td> </tr> Merci d'avance pour votre aide et j'espère avoir étais assez claire |
|
|
|
|
|
#2 |
![]() Date d'inscription: avril 2009
Messages: 809
|
essaye ce genre de requête :
Code SQL :
SELECT * FROM base_logement AS BL INNER JOIN type_logement AS TL TL.id_type_logement = BL.id_type_logement ORDER BY BL.id_logement DESC
__________________
GNAP ! |
|
|
|
|
|
#3 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Bonjour,
pourquoi ne pas créer un tableau php de correspondance ? Code :
$tab_corr = array(1=>"chambre", 2=>"studio", 3=>"appartement", 4=>"maison"); |
|
|
|
|
|
#4 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Merci Madfrix et nosferapti !
C'est vrai que la solution d nosferapti est plus dans l'esprit de ce que je penser faire mais ta solution Madfrix est aussi intéressante bien que si il me fallait ajouter des types de logements il serait préférable de juste devoir modifier la table je pense. j'ai donc essayé, pour le moment sans succès je ne suis pas vraiment sur j'ai donc tester cela : Code :
<?php $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr align="center"> <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <? $retour2= mysql_query('SELECT * FROM base_logement AS BL INNER JOIN type_logement AS TL TL.id_logement = BL.id'); ?> <td><?php echo stripslashes($retour2['type_logement']); ?></td> <!-- type_logement est ici le contenu chambres,studio... --> <td><?php echo stripslashes($donnees['meuble']);?></td> <td><?php echo stripslashes($donnees['loyer']);?></td> <td><?php echo stripslashes($donnees['distance']);?></td> <td><?php echo stripslashes($donnees['superficie']);?></td> <td><?php echo stripslashes($donnees['prenom_proprio']);?></td> <td><?php echo stripslashes($donnees['nom_proprio']);?></td> <td><?php echo stripslashes($donnees['rue']);?></td> <td><?php echo stripslashes($donnees['code_postal']);?></td> <td><?php echo stripslashes($donnees['ville']);?></td> </tr> Merci encore pour votre aide ^^ |
|
|
|
|
|
#5 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Re
il manque déjà un ON dans ta requete avant TL.id_logement je pense |
|
|
|
|
|
#6 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Merci Madfrix,
J'ai corrigé mais j'ai un doute dans ce que je dois écrire pour l'echo... Code :
<?php $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les offres { ?> <tr align="center"> <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <? $retour2= mysql_query('SELECT * FROM base_logement AS BL INNER JOIN type_logement AS TL ON TL.id_logement = BL.id_logement'); $type_logement = $retour2['type_logement']; ?> <td><?php echo stripslashes($type_logement); ?></td> <td><?php echo stripslashes($donnees['meuble']);?></td> <td><?php echo stripslashes($donnees['loyer']);?></td> <td><?php echo stripslashes($donnees['distance']);?></td> <td><?php echo stripslashes($donnees['superficie']);?></td> <td><?php echo stripslashes($donnees['prenom_proprio']);?></td> <td><?php echo stripslashes($donnees['nom_proprio']);?></td> <td><?php echo stripslashes($donnees['rue']);?></td> <td><?php echo stripslashes($donnees['code_postal']);?></td> <td><?php echo stripslashes($donnees['ville']);?></td> </tr> |
|
|
|
|
|
#7 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Quelque chose comme cela ?
Code php :
while($ligne = mysql_fetch_assoc($retour2)) $type_logement = $ligne['type_logement']; |
|
|
|
|
|
#8 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Merci Madfrix,
J'ai essayé ce que tu me proposé mais malheureusement il ne prend que le dernier champ de la table type_logement qui est studio et il affiche cela à chaque endroit même si c'est un appartement ou une maison, je me suis dit qu'il faudrait peut être mettre un test et afficher mais c'est encore pire voilà ce que j'ai fait : Code :
<?php $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les offres { ?> <tr align="center"> <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <? $retour2= mysql_query('SELECT type_logement FROM base_logement AS BL INNER JOIN type_logement AS TL ON TL.id_logement = BL.id_logement'); while($ligne = mysql_fetch_assoc($retour2)) { $type_logement = $ligne['type_logement']; if ($type_logement==$id_logement)?><td><? echo stripslashes($type_logement); ?></td><? } ?> <td><?php echo stripslashes($donnees['meuble']);?></td> <td><?php echo stripslashes($donnees['loyer']);?></td> <td><?php echo stripslashes($donnees['distance']);?></td> <td><?php echo stripslashes($donnees['superficie']);?></td> <td><?php echo stripslashes($donnees['prenom_proprio']);?></td> <td><?php echo stripslashes($donnees['nom_proprio']);?></td> <td><?php echo stripslashes($donnees['rue']);?></td> <td><?php echo stripslashes($donnees['code_postal']);?></td> <td><?php echo stripslashes($donnees['ville']);?></td> </tr> |
|
|
|
|
|
#9 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
J'abandonne Madfrix,
J'opte pour ta solution beaucoup plus simple peut être à mettre en place enfin c'est ce que je pensais au départ mais l'idéal connaissant le numéro du tableau il faudrait venir chercher l'élément correspondant alors je proposerais bien ça : Code :
$tab = array(1=>"Appartement", 2=>"Chambre", 3=>"Maison", 4=>"Gite", 5=>"studio"); $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les offres { ?> <tr align="center"> <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <td><?php echo tab['id_logement'+1]?></td> <td><?php echo stripslashes($donnees['meuble']);?></td> <td><?php echo stripslashes($donnees['loyer']);?></td> <td><?php echo stripslashes($donnees['distance']);?></td> <td><?php echo stripslashes($donnees['superficie']);?></td> <td><?php echo stripslashes($donnees['prenom_proprio']);?></td> <td><?php echo stripslashes($donnees['nom_proprio']);?></td> <td><?php echo stripslashes($donnees['rue']);?></td> <td><?php echo stripslashes($donnees['code_postal']);?></td> <td><?php echo stripslashes($donnees['ville']);?></td> </tr> Et si de cette façon je peut récupérer le descriptif ? Merci d'avance |
|
|
|
|
|
#10 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Pas de soucis pour les indices, c'est un tableau associatif
Par contre, remplace ça : Code php :
<td><?php echo tab['id_logement'+1]?></td> par ça : Code php :
<td><?php echo $tab[$id_logement];></td> D'où récupères tu ton $id_logement ? |
|
|
|
|
|
#11 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Merci Madfrix,
Mon id_logement je le récupère pas en faisant ça : Code :
$retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC'); while ($donnees = mysql_fetch_array($retour)) Par contre il n'est pas très content il ne m'affiche rien mais si j'écrit : Code :
<td><?php echo stripslashes($tab['id_logement']);?></td> |
|
|
|
|
|
#12 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
C'est normal, tu as pas d'indice 'id_logement' dans ton tableau $tab, seulement des 1, 2, 3, 4, 5. Il faut que tu mettes un $ devant id_logement et remplace :
Code php :
while ($donnees = mysql_fetch_array($retour)) par : Code php :
while ($donnees = mysql_fetch_assoc($retour)) Beaucoup plus confortable notamment si tu rajoutes ou enlèves des champs dans ta table mysql_fetch_array ne fonctionne qu'avec des indices numériques pas alpha je pense toutes tes erreurs poviennent déjà de là EDIT: En fait non cela doit marcher mais mysql_fetch_assoc est plus clean
|
|
|
|
|
|
#13 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
J'ai essayé de remplacer par un $ mais j'obtient une ligne blanche je ne le place peut être pas au bon endroit...
Code :
<td><?php echo stripslashes($tab['$id_logement']);?></td> Code :
<td><?php echo stripslashes($donnees['id_logement']);?></td> |
|
|
|
|
|
#14 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Il faut que tu mettes des double quotes au lieu des simples quotes.
Ex: Code php :
$a = 'coucou'; echo $a; -> coucou echo '$a'; -> $a echo "$a"; -> coucou les doubles quotes interprétent les variables, les simples quotes non |
|
|
|
|
|
#15 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Merci pour cet éclaircissement ^^
Donc je test : Code :
<td><?php echo $tab["$id_logement"];?></td> |
|
|
|
|
|
#16 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Fais un :
Code php :
echo $id_logement;
pour voir s'il te retourne bien un chiffre |
|
|
|
|
|
#17 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
en effectuant un
Code :
echo $id_logement;
Je ne le récupère bien qu'en effectuant un : Code :
<td><?php echo stripslashes($donnees['id_logement']);?></td> |
|
|
|
|
|
#18 |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Bordeaux
Messages: 408
|
Ok, c'est parce que tu le récupères de ton tableau associatif et que tu ne l'as pas affecté à une variable. Soit tu fais :
Code php :
while ($donnees = mysql_fetch_assoc($retour)){ ... $id_logement = $donnees['id_logement']; ... } echo $tab[$id_logement]; ou alors Code php :
echo $tab[$donnees['id_logement']]; |
|
|
|
|
|
#19 |
|
Membre régulier
![]() Date d'inscription: décembre 2006
Messages: 125
|
Problème résolut merci Madfrix mais du coup un nouveau problème beaucoup plus important vient d'apparaître ! Les joies de l'informatique... ^^
|
|
|
|
|
|
![]() |
||
Jointure entre deux tables
|
||
| Outils de la discussion | |
|
|