System d'affichage : ma boucle

Résolu
Bonjour,
au secours car je risque gros, en effet je fais un systeme de chat , et je veux que quand on clique sur une personne connecter on charge son historique un peu a la maniere de skype mais le probleme que j ai c'est que actuelllement quand on clique sur quelqu'un ce sont les message qui a recu seulement qui s'affiche au niveau de son pseudo et de l'autre aussi :
voila mon code :
  
//pour recuperer les messages que l'expediteur a envoyer au destinataite et vise versa
$r=$posts->name->find(array(
'conditions'=>array(
'id_expediteur' => $d['id_expediteur'], 'id_destinateur' => $d['id_destinateur'],
'id_expediteur' => $d['id_destinateur'], 'id_destinateur' => $d['id_expediteur'])
));

// recuperation des users connecter
$us = $users->name->find(array('conditions'=>array('etat'=>1)));
// la boucle de traitement
foreach ($r as $key => $value) {
# code...
foreach ($us as $k => $v) {
# code...

if($_SESSION['id'] == $v->id)
{

echo "<img src=../upload/$v->image height=50px; width=50px;>";
echo '<p class="label label-important">';
echo $value->message."\t";
echo "</p>";
echo $value->date_envoie;
echo "</br>";
}
elseif($v->id == $d['id_destinateur'] )
{

echo "<img src=../upload/$v->image height=50px; width=50px;>";
echo '<p class="label label-success">';
echo $value->message."\t";
echo "</p>";
echo $value->date_envoie;
echo "</br>";

}

}
}


je suis vraiment bloquer donc aidez moi svp

1 réponse

  1. ton code est explosif !
    tu ne peux pas récupéré TOUTES les lignes de ta BDD pour ensuite mettre une condition qui dit : si la session actuel et la même que la ligne bouclé je fais ça ...

    dans la requête tu dois avoir un truc du genre :

    $currentUserId = $_SESSION['id'];
    $currentClicUserId = $id_du_user_cliquez;
    where ( id_expediteur=$currentUserId AND id_destinateur=$currentClicUserId ) OR ( id_expediteur=$currentClicUserId AND id_destinateur=$currentUserId )
    1. j ai faire actu je recuperer tout mais le probleme que j ai c'est que je veux faire un system du style skype or lorque je le faire c'est tout les message qui s'affiche en double chez le destinateur et aussi l'expediteur,
      donc comment je faire pour regler cette situation?
    2. j'ai rien compris dsl
    3. actu je recupere tout les messages des deux personnes qui sont en train d'echanger, le probleme est que je veux afficher les messages de chacun les un a la suites des autres dans le modele de skype ;
      voici mon code apres recuperation des messages :
      foreach ($r as $key => $value) {
      		    		# code...
      			 	        foreach ($us as $k => $v) {
      	    			        # code...
      			 	        	
      				    			if($_SESSION['id'] == $v->id) 
      				    			{
      				    			     
      				    			     //echo $v->pseudo.":\t" ;
      				    			     echo "<img src=../upload/$v->image height=50px; width=50px;>";
      				    			     echo '<p class="label label-important">';
      				                     echo $value->message."\t";
      				                     echo "</p>";
      				                     echo $value->date_envoie;
      				                     echo "</br>";
      				                
      				                     
      				                 }
      				                 elseif($v->id ==  $d['id_destinateur'] )
      				                 {
      				                 
                  
      				                 	 //echo $v->pseudo.":\t" ;
      
      				                 	 echo "<img src=../upload/$v->image height=50px; width=50px;>";
      				    			     echo '<p class="label label-success">';
      				                     echo $value->message."\t";
      				                     echo "</p>";
      				                     echo  $value->date_envoie;
      				                     echo "</br>";
      				             
      				                     
      						            }
      
      				           }
      	                
      
      					    	
      	    		}
      
      

      je veux un systeme comme cela
      exemple :
      pseudoA : slt cmt tu va?
      Pseudo B : je vais bien et toi?
      Pseudo A: cool
      ........

      mais j ai actuellement
      pseudo A : slt
      pseudo B : slt(meme message s'affiche chez les deux)
      pseudo A : pas tres bien(c'est normalement le message de pseudo B)

      tu vois, c'est mon porbleme
    4. J'ai du mal à cerné ton problème car j'ai pas tout le code sous les yeux, si tu as un problème de doublon alors affiche que un message sur deux ça corrigera ton problème provisoirement.
    5. essai de renommé tes variable pour qu'elles soit plus facilement reconnaissable, tu as peut être une erreur de variable mélangé car tu utilisé différente boucle.