System d'affichage : ma boucle

Résolu/Fermé
kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 - Modifié par kherox le 16/12/2013 à 09:50
kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 - 18 déc. 2013 à 12:06
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

enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
17 déc. 2013 à 14:55
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 )
0
kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 1
17 déc. 2013 à 16:39
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?
0
enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
17 déc. 2013 à 16:46
j'ai rien compris dsl
0
kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 1
17 déc. 2013 à 16:54
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
0
enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
17 déc. 2013 à 18:07
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.
0
enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
17 déc. 2013 à 18:09
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.
0