messagerie interne les message ne s'affiche pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : messagerie interne les message ne s'affiche pas

par momox » 25 avr. 2006, 18:34

Ton problême n'est toujours pas résolu, tu dois concatener la variable qui contient le pseudo du membre!
@+

par polusdemus » 25 avr. 2006, 15:54

ok!!!!!

par jojolapine » 25 avr. 2006, 15:53

bon ben d'après ce que je vois sur ta page ça marche :lol:
mais change quand-même la couleur du texte stp...on voit rien :roll:

par polusdemus » 25 avr. 2006, 15:52

merci bcp de m'avoir aider mais c'est bon sa marche et j'ai trouvé la raison c'est vraiment une erreur des plus bète j'avais mis

$pseudo_membre

au lieu de

$pseudo

désolé de t'avoir fait reflechir pour rien

par jojolapine » 25 avr. 2006, 15:51

nan c'est bon ça requête est correctement formulée, seulement, comme tu doit le voir toi même polusdemus, ta variable $pseudo_membre est vide...
donc c'est normal que tu ne récupère aucun message, la question, où est stockée le pseudo de ton utilisateur...?

par Ryle » 25 avr. 2006, 15:50

Pour l'exécution de tes requêtes utilise des variables pour les stocker et les exécuter :
$sql = "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ";
$reponse = mysql_query($sql); 
C'est plus pratique et tu peux ainsi ajouter un "echo $sql;" juste après pour afficher la requête qui a été exécuté (avec les variables remplacées par leurs valeurs)

Mais sinon pourquoi y a-t-il deux mysql_connect() et mysql_select_db() ?
Pis pourquoi exécuter deux fois la requête "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' " ?

par momox » 25 avr. 2006, 15:49

Dis moi, dans ta requete pour recuperer les messages, t'aurais pas oublié la concatenation de ta variable contenant le pseudo du membre?
Car la, tel que tu as mis ta requete, il va rechercher a chaque fois les messages d'un membre nommé $pseudo_membre et non nommé par le contenu de ta variable.
@+

par polusdemus » 25 avr. 2006, 15:48

voila ce qu'il ya sur la page

SELECT * FROM messagerie WHERE `destinataire`='' espace membre changer vos informations liure les messages ecrire messages deconnexion



Message reçu

SELECT * FROM messagerie WHERE `destinataire`='' order by mktime desc

par jojolapine » 25 avr. 2006, 15:46

ton code tu l'écrits comme ça:
<?php

session_start();

if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
{
    echo 'Vous n\'êtes pas autorisez à acceder à cette page.'; //Si non
}
else //Si oui
{

?>
<html>
<?
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  

$requete1 = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' ");
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' "; // les message du joueur  changer $pseudo_membre
$var1 = mysql_fetch_array ($requete1);
    $titre = $var1['titre'];
    $expediteur  = $var1['expediteur'];
    $message = $var1['message'];
    $mktime = $var1['mktime'];
?>
<body>
<table width="960" border="1">
  <tr>
    <td width="155"><a href="pdf_espace_membre.php">espace membre </a></td>
    <td width="193"><a href="pdf_espace_membre_changeinfo.php">changer vos informations </a></td>
    <td width="134"><a href="messagerie.php">liure les messages </a></td>
    <td width="135"><a href="message.php">ecrire messages </a></td>
    <td width="309"><a href="deconnexion.php">deconnexion</a></td>
  </tr>
</table>
<p align="center" class="copyright">&nbsp;</p>
<p align="center" class="copyright">Message re&ccedil;u </p>
<form action="suprime_message.php" method="POST">
  <span class="copyright">
  <?
mysql_connect("****","******","******"); // connection a la base de donné
mysql_select_db("***");  

$reponse = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ");
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc ";
while ($donnees = mysql_fetch_array($reponse) )  
{ ?>
  <? mysql_query("UPDATE messagerie SET lu='0' WHERE `destinataire`='$pseudo_membre' "); ?>
  </span>
  <table width="785" border="1" align="center" bgcolor="#393939">
    <tr>
      <th width="70" scope="col"><div align="center" class="copyright">Expediteur</div></th>
      <th width="65" scope="col"><div align="center" class="copyright">Date</div></th>
      <th width="100" scope="col"><div align="center" class="copyright">Titre</div></th>
      <th width="450" scope="col"><div align="center" class="copyright">Message</div></th>
   
      <div align="center" class="copyright"><img src="enveloppe.jpg" alt="r&eacute;pondre" border="0">&nbsp;</div></th>
    </tr>
    <tr>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo $donnees['expediteur']; ?></div></th>
      <th scope="col"><span class="copyright">
        </span>
        <div align="center" class="copyright"><? echo date('d/m/Y', $donnees['mktime']);?>        </div>
      <p class="copyright"><? echo date('H\h i\m\i\n s\s', $donnees['mktime']); ?></p></th>
      <th scope="col"><span class="copyright"><? echo $donnees['titre']; ?>
      </span>
      <div align="center"></div></th>
      <th scope="col"><span class="copyright">
      </span>
      <div align="center" class="copyright"><? echo stripslashes($donnees['message']); ?></div></th>
      <th width="66" class="copyright" scope="col">
        <input type="checkbox" name="cocher<? echo $donnees['id']; ?>">
      </th>
    </tr>
  </table>
  <p>
    <?
}
?>
  </p>
  <p align="center">
    <select name="suprime_message">
      <option value="message_select">Effacer les messages sélectionnés</option>
      <option value="tout_message">Effacer tous les messages</option>
    </select>
    <input type="submit" value="ok" />
    &nbsp;
    </p>
    </p>
  <p>
</form>

  <?
}
?>
edit: ça va afficher deux requête sur ta page que tu testeras dans phpmyadmin...

par polusdemus » 25 avr. 2006, 15:44

ou doit le mettre je n'ai aps bien compris !!!

par jojolapine » 25 avr. 2006, 15:40

essaye de mettre juste derrière ta requête sql, ceci:
echo "SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc "
ensuite, tu vas sur ta page et ta requête sera affichée...
montre moi ce que ça donne...
PS: je serai toi je changerai la couleur de la police de caractère parce qu'on voit pas grand chose :lol:

par polusdemus » 25 avr. 2006, 15:32

désolé je comprends pas tyout ce que tu dis!! :lol: mais j'ai enlevé ce bout de code

Code : Tout sélectionner

<? mysql_connect("***","**","**"); // connection a la base de donné mysql_select_db("***"); $reponse = mysql_query("SELECT * FROM messagerie WHERE `destinataire`='$pseudo_membre' order by mktime desc "); while ($donnees = mysql_fetch_array($reponse) ) { ?> <? mysql_query("UPDATE messagerie SET lu='0' WHERE `destinataire`='$pseudo_membre' "); ?>
mais les messages ne s'affichant tjs pas!!

par jojolapine » 25 avr. 2006, 15:29

donne moi le résultat du echo $sql aussi, je peu pas deviner à quoi ressemble ta requête... :wink:

par polusdemus » 25 avr. 2006, 15:26

si j'ai fait ce qu'il fallait voila ce qyui c'est affiché :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'expediteur``lu` SELECT * FROM `messagerie` WHERE 1 LIMIT 0, 30' at line 1

par jojolapine » 25 avr. 2006, 15:23

bien au contraire, si tu faits une requête dans ta BDD, ta requête va ressemblée à ça:

Code : Tout sélectionner

SELECT * FROM messagerie WHERE `destinataire`=''
et donc ne retournera rien ce qui fait que $var1 ne contiendra rien, et du coup les variables titre contenus etc non plus...
fait donc un test en affichant ta requête et éxécute là sous phpmyadmin pour voir...
redonne moi le résultat après