[Messagerie] function recup_conversation en pdo

Résolu
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -  
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Sachant que le code de cette function mysl_ est :
<?php
//la function qui va recuperer les conversations
function recup_conversation()
{
    $results = array();
    $sql = mysql_query("
    SELECT conversations.id_conversation,
                    conversations.sujet_conversation,
                    utilisateurs.pseudo,
                    utilisateurs.avatar,
                    conversations_messages.date_message
                    FROM conversations
                    LEFT JOIN conversations_messages ON conversations.id_conversation = conversations_messages.id_conversation
                    INNER JOIN conversations_membres ON conversations.id_conversation = conversations_membres.id_conversation
                    INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp
                    WHERE pseudo_dest = '{$_SESSION['pseudo']}'
                    GROUP BY conversations.id_conversation
                    ORDER BY conversations_messages.date_message DESC
    ");
    while($row = mysql_fetch_assoc($sql))
    {
        $results[] = $row;
    }
        return $results;
}
?>


Qu'est ce que donne ce code en pdo svp ?
J'approche de la fin !

Merci d'avance :)
A voir également:

7 réponses

hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Commence par faire un premier jet, on n'est pas là pour mâcher le travail. Essaye un peu au moins... D'autant que tu dispose d'un grand nombre d'exemples de conversion !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
C'est un truc de ce genre ?

<?php 
//la function qui va recuperer les conversations
function recup_conversation() {
 global $bdd; // déclaration globale de BDD

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;
$strWhere = $pseudo ? " WHERE pseudo !='$pseudo'  " : '' ;

$sql = "conversations.id_conversation,
                    conversations.sujet_conversation,
                    utilisateurs.pseudo,
                    utilisateurs.avatar,
                    conversations_messages.date_message
                    FROM conversations
                    LEFT JOIN conversations_messages ON conversations.id_conversation = conversations_messages.id_conversation
                    INNER JOIN conversations_membres ON conversations.id_conversation = conversations_membres.id_conversation
                    INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp
                    WHERE pseudo_dest = '{$_SESSION['pseudo']}'
                    GROUP BY conversations.id_conversation
                    ORDER BY conversations_messages.date_message DESC";

 $req = $bdd->prepare($sql);
 $req->execute();  
 $resultat = $req->fetchall();
return $resultat;
}
?>
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Passe le $_SESSIOn['pseudo'] dans un array !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention  
 
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;

comme ça ?
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Un array $params pour la requete !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention  
 
$params = array(':session_pseudo' =>$pseudo_session ');
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Voilà et réutiliser le :session_pseudo dans la requête à la place de $_SESSION['pseudo'] (au niveau du where)
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Tu as bien changé :pseudo_session ?
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
bien sur
<?php 
//la function qui va recuperer les conversations
function recup_conversation() {
 global $bdd; // déclaration globale de BDD

$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;

$sql = "SELECT conversations.id_conversation,
                    conversations.sujet_conversation,
                    utilisateurs.pseudo,
                    utilisateurs.avatar,
                    conversations_messages.date_message
                    FROM conversations
                    LEFT JOIN conversations_messages ON conversations.id_conversation = conversations_messages.id_conversation
                    INNER JOIN conversations_membres ON conversations.id_conversation = conversations_membres.id_conversation
                    INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp
                    WHERE pseudo_dest = ':session_pseudo '
                    GROUP BY conversations.id_conversation
                    ORDER BY conversations_messages.date_message DESC";
					
					$params = array(':session_pseudo' =>$pseudo_session);
                    
					
$req = $bdd->prepare($sql);
$req->execute($params);
$resultat = $req->fetchall();

return $resultat;
}
?>
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Je voulais dire dans phpmyadmin :)
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
pourquoi ? pour la requête j'ai fais :
SELECT conversations.id_conversation,
                    conversations.sujet_conversation,
                    utilisateurs.pseudo,
                    utilisateurs.avatar,
                    conversations_messages.date_message
                    FROM conversations
                    LEFT JOIN conversations_messages ON conversations.id_conversation = conversations_messages.id_conversation
                    INNER JOIN conversations_membres ON conversations.id_conversation = conversations_membres.id_conversation
                    INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp
                    WHERE pseudo_dest = ':session_pseudo '
                    GROUP BY conversations.id_conversation
                    ORDER BY conversations_messages.date_message DESC
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Donc tu n'as pas remplacé :session_pseudo dans le WHERE !! Met le pseudo du membre qui a un message !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
j'ai : http://www.noelshack.com/2015-26-1435093749-erreur.jpg
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Sans le code utilisé (celui que tu utilises pour l'affichage), impossible de voir ce qui cloche...
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
ah pardon
<?php 
include('functions/membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<h3>Les conversations</h3>
<?php 
$conversations = recup_conversation();
   if($conversations == true)
   {
        foreach($conversations as $conversation)
     {
      ?>
         <div class='conversation'>      
        <a href="index.php?page=profile&pseudo=<?php echo $conversation['pseudo']; ?>"><?php echo $conversation['pseudo']; ?></a><br />
     <omg src='avatar/<?php echo $conversation['avatar']; ?> height='70' width='70'>
     <p><a href=""> <?php echo $conversation['sujet_conversation'] ?></a></p>
     
                  </div>      
      <?php
     }
   }else{
    ?>
       <div class'error'>Vous n'avez pas de message</div>
    <?php
   }
?>
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
coloration syntaxique...
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
dsl j'ai oublié la balise de fermeture :/
0

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

Posez votre question
Utilisateur anonyme
 
Bonjour

 WHERE pseudo_dest = ':session_pseudo '


Il ne faut pas d'apostrophes autour de :session_pseudo :
 WHERE pseudo_dest = :session_pseudo
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
ah merci beaucoup !
j'ai mtn ceci : http://www.noelshack.com/2015-26-1435095592-erreur.jpg
(je sais pas pourquoi ça s'est repeté plusieurs fois et il manque l'avatar)
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Pourquoi en plusieurs fois => ça vient de ta bdd !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
ah je vois, 3 messages ont été envoyés
0
Utilisateur anonyme
 
Pour l'avatar, encore une histoire d'apostrophes.
<omg src='
et où est l'apostrophe qui ferme le src ?
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
comme ceci ?
<omg src=""avatar/<?php echo $conversation['avatar']; ?> height='70' width='70'>
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

1 - .. ce n'est pas OMG .. mais IMG qu'on doit utiliser.
2 - Il faut écrire, comme le dit Le père, les attributs entre QUOTES !

<IMG src='avatar/<?php echo $conversation['avatar']; ?>'  height='70' width='70'></IMG>
0
hharchi9 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   24
 
Pour ne plus avoir plusieurs champs d'affiché, check ta base de données et enlève les champs en double qui se sont formés à la réexécution du script !
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10
 
parfait merci à tous :) petite question pourquoi dans ma bdd je ne peux supprimer les messages? :/
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ben.. je ne sais pas ... tu fais comment pour essayer de les supprimer ??
Tu as un message d'erreur ??
.... si tu ne nous donnes pas plus d'infos ... et bien..... ( ...comment dire....???...) ..... on ne pourra pas DEVINER !!!!!
0
Zakarya93 Messages postés 984 Date d'inscription   Statut Membre Dernière intervention   10 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
finalement je pense que ça se fera manuellement sur le site, ou je peux très bien utilise une requete avec un DELETE ^^
0