Afficher que les 5 derniers donnée d'un table 


FORUM

forum / PHP / Afficher que les 5 derniers donnée d'un table

Vous n êtes pas connecté

Page :1

Afficher que les 5 derniers donnée d'un table

Auteurs Messages
filou80 Posté à 21h16 le 29 Jan 15

Membre inscrit le 25/03/2014
Messages : 118
Localisation : somme
Bonsoir a tous

Filou et de retour en force.

Comment afficher que les 5 derniers messages d'un forum (qui sont dans une table).
voici le script qui affiche les sujets sur le forum car je veux afficher sur ma page de garde que les 5 derniers.

<table width="500" border="1">
        <tr>
          <td> Auteur </td>
          <td> Messages </td>
        </tr>
        <?php
 // on se connecte à notre base de données
 $base = mysql_connect ('xxxxx', 'xxxxxx', 'xxxxxx');
 mysql_select_db ('xxxxxxx', $base) ;

 // on prépare notre requête
 $sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';

 // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

 // on va scanner tous les tuples un par un
 while ($data = mysql_fetch_array($req)) {

 // on décompose la date
 sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);

 // on affiche les résultats
 echo '<tr>';
 echo '<td>';

 // on affiche le nom de l'auteur de sujet ainsi que la date de la réponse
 echo htmlentities(trim($data['auteur']));
 echo '<br />';
 echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;

 echo '</td><td>';

 // on affiche le message
 echo nl2br(htmlentities(trim($data['message'])));
 echo '</td></tr>';
 }

 // on libère l'espace mémoire alloué pour cette reqête
 mysql_free_result ($req);
 // on ferme la connection à la base de données.
 mysql_close ();
 ?>
        <!-- on ferme notre table html -->
      </table>


Merci par avance pour votre aide

@+ Filou
said Posté à 21h43 le 29 Jan 15

Membre inscrit le 16/09/2012
Messages : 1513
Localisation :
Je ne suis pas sure de te suivre.
Remplaces ceci 
$sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';

 par ceci 
$sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse desc limit 0,5';


pour voir


filou80 Posté à 14h59 le 30 Jan 15

Membre inscrit le 25/03/2014
Messages : 118
Localisation : somme
Bonjour

J'ai essayer me cela ne fonctionne pas.
Cela fonctionne mais tout apparaît je voudrais faire apparaître que les 5 derniers messages.

<tr>
    <td align="center" class="textesite"><p><br />
      <br />
      <?php
// on se connecte à notre base de données
$base = mysql_connect ('host', 'user', 'password');
mysql_select_db ('inscription', $base) ;

// préparation de la requete
$sql = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC';


// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de sujets du forum
$nb_sujets = mysql_num_rows ($req);

if ($nb_sujets == 0) {
 echo 'Aucun sujet';
}
else {
 ?>
    </p>
      <table width="500" border="1">
        <tr>
          <td> Auteur </td>
          <td> Titre du sujet </td>
          <td> Date dernière réponse </td>
        </tr>
        <?php
 // on va scanner tous les tuples un par un
 while ($data = mysql_fetch_array($req)) {

 // on décompose la date
 sscanf($data['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);

 // on affiche les résultats
 echo '<tr>';
 echo '<td>';

 // on affiche le nom de l'auteur de sujet
 echo htmlentities(trim($data['auteur']));
 echo '</td><td>';

 // on affiche le titre du sujet, et sur ce sujet, on insère le lien qui nous permettra de lire les différentes réponses de ce sujet
 echo '<a href="./lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , htmlentities(trim($data['titre'])) , '</a>';

 echo '</td><td>';

 // on affiche la date de la dernière réponse de ce sujet
 echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
 }
 ?>
      </table>
      <?php
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données.
mysql_close ();
?></td>
  </tr>


Merci par avance de votre aide.

@+ Filou
said Posté à 16h17 le 30 Jan 15

Membre inscrit le 16/09/2012
Messages : 1513
Localisation :
Remplaces par ceci:

$sql = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY id DESC LIMIT 0,1';

ça marchera s'il s'agit du script que tu parlais au départ.
Et si ça marche, tu me montres la table sql
filou80 Posté à 16h26 le 30 Jan 15

Membre inscrit le 25/03/2014
Messages : 118
Localisation : somme
Est il possible de masquer ma base et mon mot de passe de ma base.
filou80 Posté à 16h29 le 30 Jan 15

Membre inscrit le 25/03/2014
Messages : 118
Localisation : somme
Est il possible de masquer ma base et mon mot de passe de ma base.
filou80 Posté à 17h06 le 30 Jan 15

Membre inscrit le 25/03/2014
Messages : 118
Localisation : somme
Merci Said

Sa fonctionne vous êtes le meilleur.
Cela est-il gênant pour les identifiants de ma base ou faut il mieux que je les changes ?

@+ Filou
Samomoi

Page : 1