Systeme de messagerie priver

Résolu/Fermé
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - 6 oct. 2020 à 02:16
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 - 20 oct. 2020 à 10:07
salut tous le monde j'essaye de coder un système de messagerie priver là suis confronter un un problème j'aimerai savoir comment classer les messages de l'expéditeur a droite et ceux du destinataire a gauche
<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8", "root", "");


error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
?>
<?php
$iesp ="5 " ;
$dest ="10" ;
 ?>

 <?php $requete = $bdd->query("SELECT * FROM membres where id = $dest  ");

  while($normal =$requete->fetch())

{ ?>
  
 <?php echo $normal ['pseudo'] 


 ?> <br>
<img src="<?php echo $normal ['avatar']?>" weight = "100" height ="100">
<?php }  ?> 


<?php $requete = $bdd->query("SELECT * FROM messages where id_expediteur = $iesp and id_destinataire = $dest  or id_destinataire = $iesp and id_expediteur = $dest " );

  while($resultat =$requete->fetch())

{?>
  

    <table>
  <tr>
 <ul> 
 <?php
    
  ?>
  <?php echo $resultat ['id_expediteur']?>
  <?php echo $resultat ['message']?></br>
  <?php echo $resultat ['date']?></br>
 
  </ul>
   
  

  
   
 </tr>
 
<?php }?> 


  

6 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
6 oct. 2020 à 08:47
Bonjour,

Ta question concerne une requête SQL ???
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
6 oct. 2020 à 09:30
Non c’est mysql
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
6 oct. 2020 à 10:39
MySQL c'est le moteur...
Le langage c'est le sql..
Donc quel est le souci exactement ?
Qu'obtiens tu ?
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
6 oct. 2020 à 10:55
bonjour, le soucis est-il d'afficher les messages en deux colonnes ?
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
Modifié le 6 oct. 2020 à 12:51
J’ai fais une requête select from
Des messages
Maina j’aimerais
Afficher
Les messages
De l’expéditeur droit et ceux du destinataire à gauche en fonction du date time comme pour messager ou WhatsApp

après le fetch

La j’obtiens les messages de l’expéditeur et du destinataire
Mais pas classer de droit à gauche
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024
Modifié le 6 oct. 2020 à 12:53
Voilà comme pour messanger ou WhatsApp
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
Modifié le 18 oct. 2020 à 14:35
bonjour la voila bdd et ce sa affiche sur la page









J’aimerais les afficher ainsi
Mais j’arrive pas parce le système ne fait pas la différence entre les messages de l’expéditeur et ceux du destinataire


0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
18 oct. 2020 à 14:34
Tu n'as pas bien lu ce que je t'ai marqué ou alors tu n'as pas compris....

Je t'ai demandé de tester ta requête dans ta bdd ( via phpmyadmin )
Pour être plus précis.. tu prends la requête, tu vas dans phpmyadmin tu ouvres l'onglet SQL, tu y colles la requêtes et tu cliques sur le bouton exécuter.
Là, tu nous en fais une cpature écran...

Bien entendu, tu nous postes également le code de cette requête sur le forum que l'on voit laquelle tu as utilisé
Tu auras, bien entendu, pris en compte mes remarques précédentes et tu y aura ajouté un ORDER BY sur la date...
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
18 oct. 2020 à 17:14
La je crois
Que je me trompe c’est pas un problème mysql
Mais Plus-tot php while loop
Je m’excuse

C’est pour sa on arrive pas a se comprendre
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
18 oct. 2020 à 19:28
Si si, on se comprend bien....
Ton premier souci, c'est d'avoir la bonne requête SQL
De là, il sera plus facile de "trouver" le code php adapté.

Donc.. j'attend que tu répondes à mes questions précédentes....
A partir de là, on verra pour t'aiguiller sur le code php à écrire.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
18 oct. 2020 à 21:02
Pense à nous faire le ORDER BY en fonction de tes besoins.
Actuellement, le message le plus récent apparait en haut... c'est ce que tu veux ?

Et dans ton code PHP .. qu'as tu essayé ?
Car... il te suffit d'un IF/ELSE sur l'id de l'expéditeur pour savoir de qui vient le message ....
Et via ce if, utiliser, par exemple, une classe CSS pour placer le texte à gauche ou à droite ...

Quoi qu'il en soit,
SI tu n'as pas de souci avec la requête... ta question n'a rien à faire dans le forum Bases de données !
Si ta question concerne l'écriture d'un simple IF/ELSE en PHP... il aurait fallut placer ta question dans le forum PHP et, au passage, te former aux fondamentaux du langage... ( le IF c'est quand même l'une des premières instruction qu'on apprend en programmation ! )

Et enfin,; si ta question concerne le fait d'écrire du html/css pour placer ton texte à gauche ou à droite... là .. c'est dans le forum CSS qu'il aurait fallu poster ton message...

Ce n'est pas la première fois que tu postes dans un forum sans réel lien avec ton problème. Il serait temps que tu fasses des efforts.. histoire qu'on reste motivé à te venir en aide.
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
18 oct. 2020 à 21:04
Et tu en es où avec cette discussion : https://forums.commentcamarche.net/forum/affich-36848256-joindre-une-table-article-avec-mutiple-photo-d-une-autre-table-nommee-image ??
Si elle est résolue, faudrait que tu la marques en tant que telle ...
Sinon, à minima, indiquer où tu en es et sur quoi tu bloques...
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
Modifié le 20 oct. 2020 à 00:29
voila ce que sa m'affiche

Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\xampp\htdocs\automobile.php on line 56

<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8", "root", "");


error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
?>
<?php
$iesp ="5 " ;
$dest ="10" ;
 ?>

 <?php $requete = $bdd->query("SELECT * FROM membres where id = $dest  ");

  while($normal =$requete->fetch())

{ ?>
  
 <?php echo $normal ['pseudo'] 


 ?> <br>
<img src="<?php echo $normal ['avatar']?>" weight = "100" height ="100">
<?php }  ?> 


<?php $requete = $bdd->query("SELECT * FROM messages where id_expediteur = $iesp and id_destinataire = $dest  or id_destinataire = $iesp and id_expediteur = $dest order by date DESC " );

  while($resultat =$requete->fetch())
   

   if ($resultat = $iesp) 

     
   
  

{?>
  

    <table>
  <tr>
 <ul> 
 <?php
   {  
  ?>

  <div align="center">
    
  <div align="right"></div>
 <?php echo $resultat ['id_expediteur']?>
  <?php echo $resultat ['message']?></br>
  <?php echo $resultat ['date']?></br> 

  <?php } else { ?>
    <div align="left">

    <?php echo $resultat ['id_expediteur']?>
  <?php echo $resultat ['message']?></br>
  <?php echo $resultat ['date']?></br>
</div>
</div>

 <?php } ?>
 
  </ul>
   
  

  
   
 </tr>
 
<?php }?> 


0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
20 oct. 2020 à 00:28
Bon.. histoire de gagner du temps...
voici à quoi devrait ressembler ton code
<?php
// Affichage des erreurs php ( à placer AU DEBUT de ton code.. AVANT tout le reste ! )
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

// connexion de la bdd ET activation des erreurs PDO
try{
  $bdd = new PDO("mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8", "root", "");
  // Activation des erreurs PDO
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
  die('Erreur : ' . $e->getMessage());
}

// initialisation des variables
$iesp ="5 " ;
$dest ="10" ;


// requête pour récupérer les infos du membre 
$sql = "SELECT * FROM membres where id = :dest";
$datas = array(':dest'=>$dest);

//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute($datas) ;
  $normal = $requete->fetch(); // tu n'attends qu'un seul résultat.. donc pas besoin de boucle
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

//requête pour récupérer les messages
$sql = "SELECT * 
FROM messages 
WHERE (id_expediteur = :iesp and id_destinataire = :dest)
  or (id_destinataire = :iesp and id_expediteur = :dest)
  order by date DESC ";
$datas = array(':dest'=>$dest, ':iesp'=>$iesp);

//Execution de la requete
try{
  $requete = $bdd -> prepare($sql) ;
  $requete->execute($datas) ;
  $messages = $requete->fetchAll(); // On stocke le résultat dans un array
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}


echo $normal ['pseudo'] ;
echo "<img src='".$normal['avatar']."' height='100' width='100'/>";
echo "<br>";


if(!empty($messages)){
  echo "<ul>";
  foreach($messages as $M){
   
    $idExp = $M['id_expediteur'];
    $message = htmlspecialchars($M['message']);
    $date = $M['date'];
    if ($idExp == $iesp ) {
      $class = "classpouraligneragauche";
    }else{
      $class = "classpouraligneradroite";
    }
    
    echo "<li class='".$class."' data-id='".$idExp."'>
           <span class='date'>".$date."</span>
           <span class='message'>".$message."</span>
          </li>";
   
  }
  echo "</ul>";  
}
   
?>
  

Ta question étant posée dans le forum Bases de données... la requête s'y trouve
Tu nous as ensuite demandé pour le code PHP.. désormais c'est chose faite.
Maintenant il te reste le CSS à faire.. mais là.. tu devras chercher par toi même ou ouvrir une nouvelle discussion dans le bon forum pour ça.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
20 oct. 2020 à 01:26
daccord mais sinon ils sont toujours pas aligner gauche a droite

0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
20 oct. 2020 à 07:03
Tu sais lire ???
Alors relis ce que j'ai marqué dans mon précédent message !!!!!
0
ir_1997 Messages postés 97 Date d'inscription vendredi 12 juin 2020 Statut Membre Dernière intervention 13 juin 2021
20 oct. 2020 à 10:07
d'accord c'est saisie merci beaucoup
0