[Messagerie] function recup_conversation en pdo

Résolu/Fermé
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 23 juin 2015 à 19:30
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 24 juin 2015 à 15:01
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 :)

7 réponses

hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 20:12
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 20:21
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 20:34
Passe le $_SESSIOn['pseudo'] dans un array !
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10 > hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015
23 juin 2015 à 21:01
$pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL;

comme ça ?
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 21:13
Un array $params pour la requete !
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10 > hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015
23 juin 2015 à 21:35
$params = array(':session_pseudo' =>$pseudo_session ');
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 21:36
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:00
Tu as bien changé :pseudo_session ?
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 23:01
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:03
Je voulais dire dans phpmyadmin :)
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 23:04
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:07
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 23:09
j'ai : http://www.noelshack.com/2015-26-1435093749-erreur.jpg
0
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:35
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
Modifié par Zakarya93 le 23/06/2015 à 23:41
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:39
coloration syntaxique...
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 23:41
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
23 juin 2015 à 23:35
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
23 juin 2015 à 23:40
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
23 juin 2015 à 23:43
Pourquoi en plusieurs fois => ça vient de ta bdd !
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
24 juin 2015 à 00:26
ah je vois, 3 messages ont été envoyés
0
Utilisateur anonyme
23 juin 2015 à 23:46
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
24 juin 2015 à 00:25
comme ceci ?
<omg src=""avatar/<?php echo $conversation['avatar']; ?> height='70' width='70'>
0
jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 4 705
24 juin 2015 à 10:18
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 mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 24
24 juin 2015 à 12:57
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
24 juin 2015 à 13:54
parfait merci à tous :) petite question pourquoi dans ma bdd je ne peux supprimer les messages? :/
0
jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024 4 705
24 juin 2015 à 14:40
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 lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10 > jordane45 Messages postés 38301 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 novembre 2024
24 juin 2015 à 15:01
finalement je pense que ça se fera manuellement sur le site, ou je peux très bien utilise une requete avec un DELETE ^^
0