Vous n'êtes pas identifié(e).
Pages :: 1
Bonsoir,
Je sollicite votre aide pour un petit souci d'affichage de données d'un bd mysql.
Ma page doit afficher les données d'une annonce. Par exemple:
Appartement
Prix
Nombre de pieces
Cuisine équipée
...
Les données s'affichent bien, mais en plusieurs parties. Par exemple:
Appartement
Prix
Nombre de pièces
...
Appartement
Prix
Cuisine équipée
...
Pour chaque caractéristique de mon annonces, il affiche un record supplémentaire, au lieu des les afficher un au dessous de l'autre.
Voici mon code de mon while:
////////////////////////////////////////////////////////////////////////////////
// On scanne la base de données
while ($data = mysql_fetch_array($result_ad))
{
// On affiche les données
echo '<div id="content">';
echo ''.htmlentities(trim($data['type_'.$lang.''])).'<br clear="all" />';
echo ''.htmlentities(trim($data['prix_'.$lang.''])).'<br clear="all" />';
echo ''.htmlentities(trim($data['caract_'.$lang.''])).'<br clear="all" />';
echo '</div>';
}
////////////////////////////////////////////////////////////////////////////////
Pour information, les données "caractéristiques" se trouvent dans une table séparée jointe à ma table principale.
Voici comment mes tables sont +/- configurées:
TABLE_ANNONCES
/// annonces_id /// type_id /// caract_id
TABLE_TYPE
/// type_id /// type_fr /// type_en /// type_de
TABLE_CARACT
/// annonces_id /// caract_alias /// caract_rec
TABLE_CARACT_DETAILS
/// caract_alias /// caract_fr /// caract_en /// caract_de
Ma table TABLE_ANNONCES est liée à la table TABLE_TYPE et à la table TABLE_CARACT.
Ma table TABLE_CARACT est liée à la table TABLE_CARACT_DETAILS.
De quelle manière dois-je modifier mon code ci-dessus pour éviter les affichages en double?
Merci d'avance.
Hors ligne
le probleme doit etre dans le select et on ne le vois pas
a++
Hors ligne
Bonjour,
Ce html n'est pas conforme au standard html5.0 ni à aucune définition de document. Remplace par <br/> ou </br> selon ton doctype et puis ensuite regarde comment se comporte ton navigateur avec du code propre.
Dernière modification par Jc (29-04-2010 21:02:50)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
ce n'est pas ça qui empercherai d'afficher ses données même mal formatées
le html non compris est tout simplement ignoré par le navigateur
a++
Hors ligne
Voici le select:
$request_ad = 'SELECT ';
$request_ad .= 'table_annonces.annonces_id, table_annonces.type_id, table_annonces.transaction_id, ';
$request_ad .= 'table_type.type_id, table_type.type_fr, table_type.type_en, table_type.type_de, ';
$request_ad .= 'table_caract_details.caract_alias, table_caract_details.caract_fr, table_caract_details.caract_en, table_caract_details.caract_de, ';
$request_ad .= 'table_caract.annonces_id, table_caract.caract_alias, table_caract.caract_rec, ';
$request_ad .= 'table_transaction.transaction_id, table_transaction.transaction_fr, table_transaction.transaction_en, table_transaction.transaction_de ';
$request_ad .= 'FROM ';
$request_ad .= 'table_annonces ';
$request_ad .= 'JOIN table_transaction ON table_annonces.transaction_id=table_transaction.transaction_id ';
$request_ad .= 'JOIN table_type ON table_type.type_id=table_annonces.type_id ';
$request_ad .= 'JOIN table_caract ON table_caract.annonces_id=table_annonces.annonces_id ';
$request_ad .= 'JOIN table_caract_details ON table_caract_details.caract_alias=table_caract.caract_alias';
Je viens également de remarquer que j'ai commis des erreurs de frappe:
TABLE_ANNONCES
/// annonces_id /// type_id /// transaction_id (et non pas caract_id)
Et revoici une exemple de while:
// On scanne la base de données
while ($data = mysql_fetch_array($result_ad))
{
// On affiche les données
echo '<div id="content">';
echo ''.htmlentities(trim($data['transaction_'.$lang.''])).'<br clear="all" />';
echo ''.htmlentities(trim($data['type_'.$lang.''])).'<br clear="all" />';
echo ''.htmlentities(trim($data['caract_'.$lang.''])).'<br clear="all" />';
echo '</div>';
}
Ce qui m'affiche:
Achat
Appartements
Nombre de pièces
Achat
Appartements
Cuisine équipée
et non pas:
Achat
Appartements
Nombre de pièces
Cuisine équipée
Je dois modifier mon while de sorte qu'il m'affiche les données de la table table_caract_details avec les autres données (Achat, Appartements) sans qu'il réaffiche à chaque fois celle-ci.
Merci
Dernière modification par Maximeus (29-04-2010 22:35:09)
Hors ligne
dans le mode d'emploi disponible ICI, il est recommandé l'usage de balise [ code=php] et [ /code].... surtout que tu n'en ai pas à ton 1er post ....
Ton post serait BEAUCOUP plus agréable à lire, et à analyser !
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Je prends note, merci.
Voici mon post modifié
Voici le select:
Je viens également de remarquer que j'ai commis des erreurs de frappe:
TABLE_ANNONCES
/// annonces_id /// type_id /// transaction_id (et non pas caract_id)
Et revoici une exemple de while:
Ce qui m'affiche:
Achat
Appartements
Nombre de piècesAchat
Appartements
Cuisine équipée
et non pas:
Achat
Appartements
Nombre de pièces
Cuisine équipée
Je dois modifier mon while de sorte qu'il m'affiche les données de la table table_caract_details avec les autres données (Achat, Appartements) sans qu'il réaffiche à chaque fois celle-ci.
Merci
Dernière modification par Maximeus (30-04-2010 08:00:54)
Hors ligne
C'est pas encore ça .... il manque la précision du php --> [ code=php] j'ai édité ton post...
Ensuite, c'est quoi ces concatenations ??
echo ''.htmlentities(trim($data['caract_'.$lang.''])).'<br clear="all" />';
Correct :
Enfin, ne donne pas "un exemple de while" mais TON while !!... et regarde du coté du " SELECT DISTINCT "
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Pages :: 1