oui bon réponse mon profEn sélectionnant sur les deux tables les tuples correspondants.
Tu fait la sélection avec l'id ou le pseudo suivant ce que t'a dans les tables.
@+
^^ toute a fait moogli c'es rélisable moi j'ai fait deux requete ^^bon, 1er test simple
select (SELECT COUNT(DISTINCT id_topic) from posts where pseudo_post='mido') as nb1, (SELECT COUNT(DISTINCT topic.id_topic) FROM topic where pseudotopic='mido')as nb2;
mais heu j'arrive pas a faire l'addition, me manque un truc ^^
faut que j'y réfléchisse, ça doit être réalisable (tous est possible tous est réalisable .... )
@+
$totalPost = mysql_query('SELECT COUNT(DISTINCT posts.id_topic) FROM posts where pseudo_post="'.$_SESSION['pseudo'].'" ') or die (mysql_error()); //req pour compter le nb des message qui apartien au sujet en question
$nbPostTotal= mysql_result($totalPost, 0); //range les résultats sous la forme d'un tableau.
// $total=$donnees_total['1']; //récupère le total pour le placer dans la variable $total.
$totalTopic = mysql_query('SELECT COUNT(DISTINCT topic.id_topic) FROM topic where pseudotopic="'.$_SESSION['pseudo'].'" ') or die (mysql_error()); //req pour compter le nb des message qui apartien au sujet en question
$nbTopicTotal= mysql_result($totalTopic, 0); //range les résultats sous la forme d'un tableau.
$nbParticipation = ($nbPostTotal + $nbTopicTotal);
mais le problème c'est quand je veux selection tous les sujet qu'il a crée ou il a commenté avec un order by c'est la ou je me blok
il est super ta requête ^^ ça donne meme résultat que les miens mais bcp mieux ^^ moin d code ^^$sql = 'select (COUNT(DISTINCT posts.id_topic)) , (COUNT(DISTINCT topic.id_topic)) from topic,posts where posts.pseudo_post = topic.pseudotopic and topic.pseudotopic=\''.'.$_SESSION['pseudo'].'\'';
$lesMsg = mysql_query ('select DISTINCT posts.id_topic,topic.id_topic from topic,posts where topic.id_topic = posts.id_topic and posts.pseudo_post ="'.$_SESSION['pseudo'].'" or topic.pseudotopic="'.$_SESSION['pseudo'].'" ORDER BY topic.date_mise_jour DESC, topic.time_mise_jour DESC, posts.date_post DESC, posts.time_post LIMIT '.$premiereEntree.', '.$messagesParPage.'') or die (mysql_error());
while( $resultTopic = mysql_fetch_object( $lesMsg ) )
{
echo 'mon id est : '.$resultTopic->id_topic;
echo '<br/>';
}
résultat c'est :
select DISTINCT posts.id_topic from topic,posts where posts.pseudo_post ='mido' and topic.pseudotopic='mido' ORDER BY topic.date_mise_jour DESC, topic.time_mise_jour DESC, posts.date_post DESC, posts.time_post limit 0,10;
la j'ai simplifier, car si tu laisse le select du topics.id_topic tu va forcément avoir autant de fois chaque topic créer qu'il y a de commentaire du membre avec+----------+
| id_topic |
+----------+
| 8 |
| 1 |
| 10 |
| 11 |
+----------+
4 rows in set (0.00 sec)
select DISTINCT posts.id_topic as CommenttopicID, topic.id_topic as topicID from topic,posts where posts.pseudo_post ='mido' and topic.pseudotopic='mido' ORDER BY topic.date_mise_jour DESC, topic.time_mise_jour DESC, posts.date_post DESC, posts.time_post limit 0,10;
tu a un produit cartésien, donc même pas envisageable (la 8 lignes au lieux de 4)
j'ai essayé le group by, mais j'y arrive pas la, comme je l'ai dit je suis mauvais en SQL+----------------+---------+
| CommenttopicID | topicID |
+----------------+---------+
| 8 | 12 |
| 1 | 12 |
| 10 | 12 |
| 11 | 12 |
| 8 | 11 |
| 1 | 11 |
| 10 | 11 |
| 11 | 11 |
+----------------+---------+
8 rows in set (0.00 sec)
oui ^^ de tt façon merci moogli tt o long de mon stage tu étais là pour me répondre ^^ a vrai dire dans mon rapport de stage jvé mettre ton nom pas le mien ^^heu pasta ?![]()
nan mais, c'que je voulais dire c'est d'expliquer avec des mots simples. suivant le vieille adage : ce qui s'explique bien, ce conçoit bien
et comme on est pas dans ta tête on peux pas tous deviner
donc un bon énoncé, même pas en français académique juste compréhensible c'est bon
@+
if (($datetime->date_msg) == (date("Y-m-d")))
$dateMsg = 'Aujourd\'hui';
elseif (($datetime->date_msg) == (date("Y").'-'.date("m").'-'.((date("d"))-1)))
$dateMsg = 'Hier';
else
$dateMsg = $datetime->date_msg;
Avec ce code si la date = a la date de jour ça maffiche bien Aujourd'hui mais hier non psk en fait le problème vien de ((date("d"))-1))) $hier= ((date("d"))-1);
if ($hier>= 01 and $hier<= 10)
$hier = '0'.(date("d")-1);
if (($datetime->date_msg) == (date("Y-m-d")))
$dateMsg = 'Aujourd\'hui';
elseif (($datetime->date_msg) == (date("Y").'-'.date("m").'-'.$hier))
$dateMsg = 'Hier';
else
$dateMsg = $datetime->date_msg;
mais est ce que je peux mettre tous ça dans une function psk ce code est répété +++ fois dans mon code
<?php
function compareDate( $date ) {
$aujourdhui = new datetime();// initialise avec la valeur de l'instant pr�sent par d�faut
$dateAtraiter = new datetime($date);// bon faudrait v�rifier que le format soit bien yyyy-mm-dd
$interval = $aujourdhui->diff($dateAtraiter);
$ecart = $interval->format('%R%a');
switch ($ecart) {
case 0: $ret = 'aujourd\'hui';
break;
case -1: $ret = 'hier';
break;
default : $ret = '????';// bon ben la tu met c'que tu veux ;)
}
unset($aujourdhui);
unset($dateAtraiter);
return $ret;
}
?>
a tester bien sur function compareDate( $date )
{
$aujourdhui = new datetime();// initialise avec la valeur de l'instant pr?sent par d?faut
$dateAtraiter = new datetime($date);// bon faudrait v?rifier que le format soit bien yyyy-mm-dd
$interval = $aujourdhui->diff($dateAtraiter);
$ecart = $interval->format('%R%a');
switch ($ecart)
{
case 0: $ret = 'aujourd\'hui';
break;
case -1: $ret = 'hier';
break;
default : $ret = $date;// bon ben la tu met c'que tu veux <img src="./images/smilies/icon_wink.gif" alt=";)" title="Wink" />
}
unset($aujourdhui);
unset($dateAtraiter);
return $ret;
}
compareDate($resultposts->date_post);
echo 'mon résultat est : '.$ret;
Notice: Undefined variable: ret ligne ( echo 'mon résultat est : '.$ret; )