Souci de requete pour l'affichage

Résolu/Fermé
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 29 déc. 2015 à 00:38
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 2 janv. 2016 à 17:31
Bonsoir,

Je reviens à nouveau vers vous car, j'ai encore un souci sur un code.
En faite j'ai un module MP qui fonctionne puisqu'il enregistre tous correctement dans ma bdd par contre les MP ne veulent pas s'afficher sur ma page.

voici mon code concernant l'affichage :

default;
    
    echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./messagesprives.php">Messagerie privée</a>';
    echo '<h1>Messagerie Privée</h1><br /><br />';

    $query=$bdd->prepare('SELECT mp_lu, mp_id, mp_expediteur, mp_titre, mp_time, ID, pseudo
    FROM forum_mp
    LEFT JOIN membres ON forum_mp.mp_expediteur = membres.ID
    WHERE mp_receveur = :id ORDER BY mp_id DESC');
    $query->bindValue(':id',$id,PDO::PARAM_INT);
    $query->execute();
    echo'<p><a href="./messagesprives.php?action=nouveau">
    <img src="./includes/images/nouveau.gif" alt="Nouveau" title="Nouveau message" />
    </a></p>';
    if ($query->rowCount()>0)
    {
	?>
        <table>
        <tr>
        <th></th>
        <th class="mp_titre"><strong>Titre</strong></th>
        <th class="mp_expediteur"><strong>Expéditeur</strong></th>
        <th class="mp_time"><strong>Date</strong></th>
        <th><strong>Action</strong></th>
        </tr>
<?php
        //On boucle et on remplit le tableau
        while ($data = $query->fetch())
        {
            echo'<tr>';
            //Mp jamais lu, on affiche l'icone en question
            if($data['mp_lu'] == 0)
            {
            echo'<td><img src="./images/message_non_lu.gif" alt="Non lu" /></td>';
            }
            else //sinon une autre icone
            {
            echo'<td><img src="./images/message.gif" alt="Déja lu" /></td>';
            }
            echo'<td id="mp_titre">
            <a href="./messagesprives.php?action=consulter&id='.$data['mp_id'].'">
            '.stripslashes(htmlspecialchars($data['mp_titre'])).'</a></td>
            <td id="mp_expediteur">
            <a href="./voirprofil.php?action=consulter&m='.$data['membre_id'].'">
            '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></td>
            <td id="mp_time">'.date('H\hi \l\e d M Y',$data['mp_time']).'</td>
            <td>
            <a href="./messagesprives.php?action=supprimer&id='.$data['mp_id'].'&sur=0">supprimer</a></td></tr>';
        } //Fin de la boucle
        $query->CloseCursor();
        echo '</table>';

    } //Fin du if
    else
    {
        echo'<p>Vous n\'avez aucun message privé pour l\'instant, cliquez
        <a href="./index.php">ici</a> pour revenir à la page d\'index</p>';
    }
} //Fin du switch
?>


Si quelqu'un à une idée, je suis preneur car ça fait bien 3H que je cherche et je trouve pas ou est le problème.

Merci par avance pour votre aide.

5 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 déc. 2015 à 01:45
Bonjour,

Tu veux dire que tu obtiens le message :
Vous n\'avez aucun message privé pour l\'instant, cliquez.... 
??

C'est donc que tu n'entres pas dans ton IF.

Premier problème : Il est déconseillé d'utiliser l'intruction ROWCOUNT
Ensuite... as tu testé ta requête en direct dans ta BDD ? Elle fonctionne ??
As tu vérifié quelle valeur avait ta variable $id ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
29 déc. 2015 à 11:47
Quand je l'entre cette requete :

SELECT mp_lu, mp_id, mp_expediteur, mp_titre, mp_time, ID, pseudo
    FROM forum_mp
    LEFT JOIN membres ON forum_mp.mp_expediteur = membres.ID
    WHERE mp_receveur = :id ORDER BY mp_id DESC


j'ai cette erreur :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':id ORDER BY mp_id DESC LIMIT 0, 30' at line 4

une idée ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
29 déc. 2015 à 11:50
J'ai testé en retirant cette ligne :

WHERE mp_receveur = :id ORDER BY mp_id DESC


La requete fontionne très bien dans phpmyadmin.
je vais tester sur le site voir ce que ça donne.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
29 déc. 2015 à 11:58
les MP s'affiche mais en faite il affiche tous les MP de la bdd sans prendre en compte l'ID du membre.

Autrement, vous avez pas un script de MP avec option répondre et supprimer seulement ?(et ci-possible bbcode).

Comme ça j'étudierais en même temps comment c'est fait.

Merci par avance.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
30 déc. 2015 à 01:24
personne pour m'aider ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
30 déc. 2015 à 03:28
Tu peux tester ta requête
SELECT mp_lu, mp_id, mp_expediteur, mp_titre, mp_time, ID, pseudo
    FROM forum_mp
    LEFT JOIN membres ON forum_mp.mp_expediteur = membres.ID
    WHERE mp_receveur = :id ORDER BY mp_id DESC

EN REMPLACANT LES VARIABLES ???
par exemple.... tu y mets un ID existant et tu regardes si ça te retourne quelque chose.....
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
30 déc. 2015 à 12:53
La requete fonctionne et m'affiche bien les MP correspondant à l'ID que je met.
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
31 déc. 2015 à 03:53
une idée du coup ?
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
31 déc. 2015 à 19:44
Personne à une idée pour m'aider à debugger ce code ?
0

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

Posez votre question
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
1 janv. 2016 à 18:15
Un idée de quelqu'un ?
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
1 janv. 2016 à 22:58
Ca ne sert à rien de venir demander 3 fois par jour si quelqu'un à une idée !!!!!
Si personne ne répond c'est que : ( plusieurs choix possibles ! )
- Personne n'a le temps
- Personne ne sait
- Personne ne comprend ta question (car mal rédigée)
- Personne n'a envie

.....


Et puis... qu'as tu essayé depuis ??
Tu nous as indiqué que la requête que je t'ai fais essayé (et que donc tu as mis en place dans ton code bien sûr (hein ??) fonctionnait.
- As tu essayé de voir ce que retournait le rowcount ?
- As tu essayé de mettre un peu de debug ? ( un try catch par exemple ) ??
0
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
2 janv. 2016 à 17:31
j'ai tous essayé et finalement j'ai trouvé la solution, merci quand même.
0