Page 1 sur 1

Affichage de données

Posté : 07 août 2007, 14:43
par benjam89
Bonjour,
Je voudrais faire une messagerie pour mes membres, j'ai le code pour afficher mes message mais celui-ci dit toujours qu'il n'y en à pas alors que si, pour trouver les messages de chaque membre, lorsque le membre va dans sa messagerie, il doir séléctionner le pseudo du membre dans la table membres et séléctionner les messages que ce membre à reçu donc avec ce même pseudo le script devrais afficher que les messages de ce membre !

Voici mon script:
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title></title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="Bazonnet Benjamin" />
<meta name="generator" content="L'Equipe de Mon Hôtel Virtuel" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Pragma" content="no-cache" />
<style type="text/css">
/* <![CDATA[ */ 
body {
color: #000;
background-color: #efefef;
font-family: verdana, helvetica, sans-serif;
font-size: 80% !important;
}
p.situation {
text-align: right;
padding: 1em;
}
p.navigation {
text-align: center;
font-size: 0.85em;
text-decoration: underline;
}
p.date_nouv {
float: right;
font-size: 0.85em;
}
/* ]]> */
</style>
</head>
<body>
<?php
/**
Commençons par fixer les paramètres :
*/
/* Paramètres de connexion */
$admin_bd   = "***************";              /* Le pseudonyme permettant à l'administrateur de se connecter */
$mdp_bd     = "**************";                  /* Le mot d passe de l'administrateur de base de données */
serveur_bd = "*****************";         /* L'adresse du serveur de base de données */
$base_bd    = "****************";           /* La base de données où sont enregistrées les informations */
                                                                                                            
/* Paramètres de pagination */
$nb_message_par_page = 20;             /* Nombre de messages par page */
$url = "./mess_recept.php?id=$id&page=";
                                                                                                            
/* On détermine quelle est la page qui est actuellement affichée */
$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 0;
$page_affichee    = ($page_en_cours + 1);
                                                                                                            
/* Connexion au serveur de base de données */
$connexion = mysql_pconnect($serveur_bd, $admin_bd, $mdp_bd);
                                                                                                            mysql_select_db($base_bd);
$resultat_sql = mysql_query("select * from membres WHERE id=\"$id\"");
                                                                                                            
/* Requête pour compter les messages présents dans notre base de données */
$sql_nb = "SELECT COUNT(*) FROM `messagerie` WHERE pseudo=\"$pseudo\"";
                                                                                                            
/* Exécution de la requête et récupération du résultat */
$resultat_1 = mysql_query($sql_nb);
$nb_messages = mysql_result($resultat_1, 0);
                                                                                                            
/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */
$nb_pages = ceil($nb_messages / $nb_messages_par_page);
                                                                                                            
/** 
Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation.
Première chose à vérifier : avons-nous plusieurs pages, et au moins une ?
*/
if($nb_pages > 0)
{
/* On définit une variable qui contiendra les données de navigation */
$barre_nav = "";
/* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */
if($nb_pages > 1)
{
/** 
Nous avons plusieurs pages: nous allons afficher successivement les liens vers
les pages précédentes s'il y en a, la page en cours et les liens vers les pages
suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables
sauf pour la page en cours dont nous mettrons le chiffre en gras
*/
if($page_en_cours > 0)
{
for($i = 0; $i < $page_en_cours; $i++)
{
$p = $i + 1;
$barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | ";
}
}
/**
On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une 
page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente
*/
$barre_nav .= "<strong>". $page_affichee ."</strong>";
/* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */
if(($page_affichee) < $nb_pages)
{
/* Il reste encore d'autres pages à afficher */
$nb_suivantes = $nb_pages - ($page_affichee);
for($j = ($page_affichee); $j < $nb_pages; $j++)
{
$p = $j + 1;
$barre_nav .= " | <a href=\"". $url . $j ."\" title=\"page ". $p ."\">". $p ."</a>";
}
}
                                                                                                                    
/* On peut définir en plus la situation dans une autre variable à afficher ailleurs */
$page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages.";
}
else
{
/* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */
$barre_nav .= "page 1/1";
}
/**
On peut maintenant afficher notre page. On va commencer par récupérer les informations
On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT.
*/
$debut = $page_en_cours * $nb_messages_par_page;
$sql_n = "SELECT * FROM messagerie LIMIT ". $debut .", ". $nb_messages_par_page .";";
$nouvelles = mysql_query($sql_n);
?>
<p class="situation"><?php echo($page_affichee); ?></p>
<?php
while($mess = mysql_fetch_assoc($nouvelles))
{
?>
<td id="table_1_R01C01" style="width:33%; height:50%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffcc; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C">DATE</span></P>
</td>
<td id="table_1_R01C02" style="width:33%; height:50%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffcc; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C">EXPÉDITEUR</span></P>
</td>
<td id="table_1_R01C03" style="width:33%; height:50%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffcc; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C">SUJET</span></P>
</td>
<td id="table_1_R02C01" style="width:33%; height:49%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffff; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C"><?php echo $mess['date']; ?></span></P>
</td>
<td id="table_1_R02C02" style="width:33%; height:49%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffff; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C"><?php echo $mess['pseudo_expediteur']; ?></span></P>
</td>
<td id="table_1_R02C03" style="width:33%; height:49%; vertical-align: top; padding:1px 4px 1px 4px; border:1px solid #4a4141; background-color:#ffffff; /* CellStyle */" __AddCode="here">
<P class="Normal-P"><span class="Default-Paragraph-Font-C"><a href="message.php?id=<? echo "$id"; ?>&id_message=<? echo "$id_message"; ?>"<?php echo $mess['sujet']; ?></a></span></P>
</td>
<?php
}
/* on libère la mémoire */
                                                                                                                mysql_free_result($resultat_1);
                                                                                                                mysql_free_result($hotels);
/* On peut fermer la connexion à MySQL */
                                                                                                                mysql_close($connexion);
/* On affiche maintenant la barre de navigation */
?>
<p class="navigation"><?php echo($barre_nav); ?></p>
<?php
}
else
{
/** 
Nous n'avons aucune page, on peut alors afficher un message autre 
sans devoir nous préoccuper de la navigation
*/
?>
<h3>Vous n'avez aucun Message - Boîte de Réception Vide</h3>
<hr />
<?php
}
?>
</body>
</html>
Merci d'avance pour votre aide !

Posté : 07 août 2007, 14:49
par d0m
Je voudrais faire une messagerie pour mes membres, j'ai le code pour afficher mes message mais celui-ci dit toujours qu'il n'y en à pas alors que si, pour trouver les messages de chaque membre, lorsque le membre va dans sa messagerie, il doir séléctionner le pseudo du membre dans la table membres et séléctionner les messages que ce membre à reçu donc avec ce même pseudo le script devrais afficher que les messages de ce membre !
je crois que tu as gagné le prix de la phrase la plus longue (et plus incompréhensible).

Tu pourrais éditer ton code stp pour enlever tos ces espaces dans la visualisation, j'ai cru que tout était vide au départ...

en faisant un affichage des résultats de ta requête $resultat_1 = mysql_query($sql_nb); il y a quelque chose?

Re: Affichage de données

Posté : 07 août 2007, 15:09
par benjam89
Voilà j'ai édité et non parce que justement aucune erreur ne s'affiche, il me marque qu'il n'y as pas de messages dans la boîte de réception alors qu'il y en à un que j'ai enregistré pour faire les tests !

Posté : 07 août 2007, 16:18
par jpaul
Bonjour,

Le problème vient probablement des requêtes SQL.
A ta place, je reprendrais chacune des requêtes SQL (j'ajouterais un display de la requête à chaque fois qu'il y a un mysql_query pour pouvoir faire un copier coller) pour les tester via phpMyAdmin (phpMyAdmin est un outil qui devient vite indispensable quand on utilise une base de données).
Tu devrais ainsi pouvoir détecter quelle requête ne te donne pas le résultat escompté.

Posté : 07 août 2007, 16:47
par Sékiltoyai
Ou alors or die('Erreur SQL : ' . mysql_error()) après chaque requète…

Posté : 07 août 2007, 16:53
par benjam89
Ben justement, sa me dit seulement que je n'ai aucune données enregistrés, il n'y à aucune erreur c'est sa que je ne comprend pas

Posté : 07 août 2007, 16:54
par Sékiltoyai
Donne la structure de ta table ainsi que les données à problèmes.