8722 sujets

Développement web côté serveur, CMS

bonjour tout le monde
je veux afficher les messages des acteur de mon site mais je veux que le nom de meme acteur ne se repete pas deux fois
voici le code
<?php
// Connexion à la base de données
include('config.php')
?>
                      
<?php
// On récupère les derniers messages
$dn = mysql_query('select id, auteur, message from test2');
while($dnn = mysql_fetch_array($dn))
{
?>
  
<h2><?php echo htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8'); ?><h2>
<p><?php echo htmlspecialchars($dnn['message'], ENT_QUOTES, 'UTF-8'); ?></p>
  
<?php
}
?>

la table test2
http://img15.hostingpics.net/pics/722566Sanstitre2.png
http://img15.hostingpics.net/pics/883529Sanstitre7.png
et ca affiche ca
http://img15.hostingpics.net/pics/386457Sanstitre3.png
et je veux qu'il soit comme ca
http://img15.hostingpics.net/pics/408026Sanstitre4.png
pouvez vous me doner un code pour les afficher de cette maniere
Modifié par lordjoker (17 Feb 2013 - 16:30)
Bonjour,

tu peux créer une variable $auteurprec qui prend la valeur a la fin de la boucle while, cela permet de comparer avec celui d'après et de ne pas réafficher si c'est le même :
$dn = mysql_query('select id, auteur, message from test2');

$auteurprec = "";
while($dnn = mysql_fetch_array($dn))
{
if ($auteurprec != $dnn['auteur']) 
    { ?>
<h2><?php echo htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8'); ?><h2>
<?php } ?>
<p><?php echo htmlspecialchars($dnn['message'], ENT_QUOTES, 'UTF-8'); ?></p>
<?php 
$auteurprec = $dnn['auteur'];
} ?>


Es ce que ca te conviens ?
Group by me parait propre.
Sinon crée un array avec les Noms.

$listnom=array();
while($dnn = mysql_fetch_array($dn)){
if (!in_array($dnn['auteur'],$listenom){
$listenom[]=$dnn;
}
}

$n=sizeof($dnn);
//ensuite reboucler et afficher ce que tu cherches.
for ($i=0; $i < $n ; $i++) {
echo '<h2>'.htmlentities($listenom[$i], ENT_QUOTES, 'UTF-8').'<h2>';
while($dnn = mysql_fetch_array($dn)){
if ($listenom[0]==$dnn['auteur']){
echo '<p>'.htmlspecialchars($dnn['message'], ENT_QUOTES, 'UTF-8').'</p>';
}
}
}
Modifié par Lemonstr (03 Mar 2013 - 09:11)