Problème affichage info bulle messages
Fermé
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
-
1 juil. 2015 à 15:46
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 16 juil. 2015 à 02:05
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 16 juil. 2015 à 02:05
A voir également:
- Problème affichage info bulle messages
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Info pc - Guide
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Crystaldisk info - Télécharger - Informations & Diagnostic
- Video bulle whatsapp - Accueil - Messagerie instantanée
26 réponses
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
1 juil. 2015 à 16:10
1 juil. 2015 à 16:10
Déjà ....
regardes ta requête ... elle est fausse :
Que vient faire ce " > date_vue" .. tout seul ???
Ensuite.... as tu une fonction qui met à jour ta date vue pour les messages ? (comme pour les invitations en fait ..) ??
Si oui.. montres nous son code !
regardes ta requête ... elle est fausse :
$sql = "SELECT COUNT(id_conversation) as NB FROM conversations WHERE pseudo_dest=:pseudo_session OR (pseudo_exp=:pseudo_session > date_vue) ";
Que vient faire ce " > date_vue" .. tout seul ???
Ensuite.... as tu une fonction qui met à jour ta date vue pour les messages ? (comme pour les invitations en fait ..) ??
Si oui.. montres nous son code !
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
2 juil. 2015 à 21:20
2 juil. 2015 à 21:20
la structure de ma table : http://www.noelshack.com/2015-27-1435864827-erreur.jpg
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
4 juil. 2015 à 13:49
4 juil. 2015 à 13:49
Tu as trois tables
conversations ( id, sujet,date_creation)
conversations_membres(id, id_conversation, destinataire)
conversation_message(id,id_conversation,expediteur,texte,date_message)
... au passage ... moi.. je n'en aurais sûrement fait qu'une ....(en regroupant les deux tables conversation_membre et conversation_messages...) ... mais bon..
quoi qu'il en soit ... CHACUNE de ces tables dispose d'un ID auto_incrémenté ... et un champ ID_CONVERSATION .. qui permet de faire le lien avec la table CONVERSATION et donc entre-elles !
Une fois tes tables remises avec la BONNE structure .. tu pourras effectuer des requêtes pour récupérer ( le nombre de conversations, le nombre de messages, la liste des messages ..etc....) par l'intermédiaire des JOINTURES.
conversations ( id, sujet,date_creation)
conversations_membres(id, id_conversation, destinataire)
conversation_message(id,id_conversation,expediteur,texte,date_message)
... au passage ... moi.. je n'en aurais sûrement fait qu'une ....(en regroupant les deux tables conversation_membre et conversation_messages...) ... mais bon..
quoi qu'il en soit ... CHACUNE de ces tables dispose d'un ID auto_incrémenté ... et un champ ID_CONVERSATION .. qui permet de faire le lien avec la table CONVERSATION et donc entre-elles !
Une fois tes tables remises avec la BONNE structure .. tu pourras effectuer des requêtes pour récupérer ( le nombre de conversations, le nombre de messages, la liste des messages ..etc....) par l'intermédiaire des JOINTURES.
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
6 juil. 2015 à 19:44
6 juil. 2015 à 19:44
ok, sinon concernant la structure de mes tables :
conversations (id_conversation / sujet_conversation)
conversations_membre (id_conversation / pseudo_dest)
conversations_messages (id_conversation / pseudo_exp / corps_message) date_message)
conversations (id_conversation / sujet_conversation)
conversations_membre (id_conversation / pseudo_dest)
conversations_messages (id_conversation / pseudo_exp / corps_message) date_message)
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
6 juil. 2015 à 20:02
6 juil. 2015 à 20:02
Quoi au sujet de la structure de tes tables ?????
Je t'ai répondu. ... tu me dis même "ok" ...... Oo
Je t'ai répondu. ... tu me dis même "ok" ...... Oo
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
6 juil. 2015 à 20:16
6 juil. 2015 à 20:16
mais je sais pas ce que je dois mettre pour les tables que vous m'avez données :
conversations ( id, sujet,date_creation)
conversations_membres(id, id_conversation, destinataire)
conversation_message(id,id_conversation,expediteur,texte,date_message)
leur détails
conversations ( id, sujet,date_creation)
conversations_membres(id, id_conversation, destinataire)
conversation_message(id,id_conversation,expediteur,texte,date_message)
leur détails
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
6 juil. 2015 à 20:27
6 juil. 2015 à 20:27
Tu ne vois pas le rapport entre "mes tables " et les tiennes ?
.... expediteur = pseudo_exp
.... destinataire = ( à ton avis ????? .......) => ben oui... pseudo_dest
.. je te laisse faire le rapprochement pour les autres....
Quoi qu'il en soit ... au final... tu auras les mêmes tables qu'avant SAUF que tu auras un CHAMP ID (auto incrementé) en PLUS ( et que le champ id_conversation quant à lui.. ne sera plus en auto-increment )
Attention .. la table conversations (id_conversation / sujet_conversation) ... elle .... NE CHANGE PAS !
conversations ( id, sujet,date_creation) conversations_membres(id, id_conversation, destinataire) conversation_message(id,id_conversation,expediteur,texte,date_message)
conversations (id_conversation / sujet_conversation) conversations_membre (id_conversation / pseudo_dest) conversations_messages (id_conversation / pseudo_exp / corps_message)
.... expediteur = pseudo_exp
.... destinataire = ( à ton avis ????? .......) => ben oui... pseudo_dest
.. je te laisse faire le rapprochement pour les autres....
Quoi qu'il en soit ... au final... tu auras les mêmes tables qu'avant SAUF que tu auras un CHAMP ID (auto incrementé) en PLUS ( et que le champ id_conversation quant à lui.. ne sera plus en auto-increment )
Attention .. la table conversations (id_conversation / sujet_conversation) ... elle .... NE CHANGE PAS !
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
6 juil. 2015 à 22:14
6 juil. 2015 à 22:14
Je vois merci!
du coup si j'ai bien compris, il me manque 2 id (conversations_membres et conversations_message) et un date création à rajouter c'est bien ça ?
et sinon pour le 1/
id = id_conversation ?
sujet = sujet conversation ?
date_creation = a rajouter ??
du coup si j'ai bien compris, il me manque 2 id (conversations_membres et conversations_message) et un date création à rajouter c'est bien ça ?
et sinon pour le 1/
id = id_conversation ?
sujet = sujet conversation ?
date_creation = a rajouter ??
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
12 juil. 2015 à 18:16
12 juil. 2015 à 18:16
Toujours la même chose ... il semble, au vue du message..., que tu as déjà une primarykey de définie !!!!
Va donc, dans ton phpmyadmin, executer la requête suivante
https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html
Cela te montrera la structure exacte de ta table.
Je t'invite, au passage, à venir nous coller le résultat de cette requête sur le forum.
NB : Au passage, voici la requête à utiliser pour retirer la primary key existante :
Va donc, dans ton phpmyadmin, executer la requête suivante
https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html
SHOW CREATE TABLE tbl_name
- en remplaçant tbl_name par le nom de ta table.....
Cela te montrera la structure exacte de ta table.
Je t'invite, au passage, à venir nous coller le résultat de cette requête sur le forum.
NB : Au passage, voici la requête à utiliser pour retirer la primary key existante :
ALTER TABLE tbl_name DROP PRIMARY KEY;
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 19:08
12 juil. 2015 à 19:08
merci :)
pour conversations_membres :
CREATE TABLE `conversations_membres` (
`id_conversation` int(10) NOT NULL,
`pseudo_dest` varchar(100) NOT NULL,
PRIMARY KEY (`id_conversation`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
pour conversations_messages :
CREATE TABLE `conversations_messages` (
`id_conversation` int(10) NOT NULL,
`pseudo_exp` varchar(100) NOT NULL,
`texte` text NOT NULL,
`date_message` int(11) NOT NULL,
PRIMARY KEY (`id_conversation`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
pour conversations_membres :
CREATE TABLE `conversations_membres` (
`id_conversation` int(10) NOT NULL,
`pseudo_dest` varchar(100) NOT NULL,
PRIMARY KEY (`id_conversation`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
pour conversations_messages :
CREATE TABLE `conversations_messages` (
`id_conversation` int(10) NOT NULL,
`pseudo_exp` varchar(100) NOT NULL,
`texte` text NOT NULL,
`date_message` int(11) NOT NULL,
PRIMARY KEY (`id_conversation`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 19:23
12 juil. 2015 à 19:23
Tout a été rajouté merci !
passons à l'étape suivante :)
passons à l'étape suivante :)
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
12 juil. 2015 à 19:41
12 juil. 2015 à 19:41
Et il est où ton champ id auto incremente ?? (En plus du id_conversation !!)
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
12 juil. 2015 à 19:42
12 juil. 2015 à 19:42
je l'ai rajouté dans conversations_membres et conversations_messages
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
12 juil. 2015 à 19:43
12 juil. 2015 à 19:43
je vous fais un alter table de mes tables avec modifications aussi ?
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 19:41
12 juil. 2015 à 19:41
petit bémol : je ne recois aucun messages, j'ai "vous n'avez pas de messages" malgré que j'ai modifié ce qu'il fallait dans mes functions :
message.func.php :
conversations.php :
conversations.func.php :
new_message.func.php :
message.php :
ce sont tout les codes ou j'ai effectué une ou plusieurs modif concernant les tables
message.func.php :
<?php //récupération des messages function recup_message() { global $bdd; $sql= "SELECT date_message, texte, sujet, pseudo, avatar FROM conversations_messages JOIN utilisateurs ON pseudo = pseudo_exp JOIN conversations_membres ON conversations_messages.id_conversation = conversations_membres.id_conversation JOIN conversations ON conversations_messages.id_conversation = conversations.id_conversation WHERE conversations_messages.id_conversation= :id AND conversations_membres.pseudo_dest= :pseudo_dest ORDER BY conversations_messages.date_message DESC"; try{ $reponse= $bdd->prepare($sql); $params=array(':id' =>$_GET['id'], ':pseudo_dest' => $_SESSION['pseudo']); $reponse->execute($params); $messages=$reponse->fetchall(); } catch(Exception $e){ die('Erreur : '.$e->getMessage()); $messages=NULL; } return $messages; } ?>
conversations.php :
<?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 /> <IMG src='avatar/<?php echo $conversation['avatar']; ?>' height='70' width='70'></IMG> <p><a href="index.php?page=message&id=<?php echo $conversation['id_conversation']; ?>"> <?php echo $conversation['sujet']; ?></a></p> <p>Posté le : $date</p> <p><a href="index.php?page=supprimer_message&id=<?php echo $conversation['id_conversation']; ?>">Supprimer le message</a></p> </div> <?php } }else{ ?> <div class'error'>Vous n'avez pas de message</div> <?php } ?>
conversations.func.php :
<?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, 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; } ?>
new_message.func.php :
<?php //la function qui va nous permettre de verifier si le pseudo existe et si la personne n'essaye pas de s'auto envoyer un message function pseudo_incorrect(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo_get){ $sql = "SELECT COUNT(pseudo) as NB FROM utilisateurs WHERE pseudo = :pseudo_get AND pseudo != :pseudo_session"; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' =>$pseudo_session , ':pseudo_get' => $pseudo_get ); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,texte,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation, ":pseudo"=> $pseudo, ":message"=> $message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } ?>
message.php :
<?php include_once("{$_SERVER['DOCUMENT_ROOT']}rs/functions/message.func.php"); include_once("{$_SERVER['DOCUMENT_ROOT']}rs/body/header.php"); include_once("{$_SERVER['DOCUMENT_ROOT']}rs/body/menu.php"); ?> <h3>Les messages</h3> <?php $messages = recup_message(); foreach($messages as $message) { ?> <div class="messages"> <p>Envoyé par : <a href="index.php?page=profile&pseudo=<?php echo $message['pseudo']; ?>"><?php echo $message['pseudo']; ?> </a> Le : <?php echo date('d/m/Y à H:i:s',strtotime($message['date_message']));?></p> <img src='avatar/<?php echo $message['avatar']; ?>' height='50px' width='50px'></img><br/> <p>"<em><?php echo $message['texte']; ?></em>"<hr></p> </div> <?php } ?>
ce sont tout les codes ou j'ai effectué une ou plusieurs modif concernant les tables
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
12 juil. 2015 à 20:24
12 juil. 2015 à 20:24
1 - As tu testé les différentes requêtes dans ta BDD (via phpMyadmin) pour t'assurer qu'elles fonctionnent correctement ??? (en remplaçant les variables par des valeurs existantes bien entendu....)
Par exemple celle là :
en remplaçant :pseudo_dest par 'jean' (ou 'xzak47') .. et :id .. par un ID existant.
2 - Quelles sont les nouvelles structures de tes tables ?
As tu bien ajouté le champ 'id' comme je te l'ai proposé ? L'as tu bien mis en primarykey ? ... et en auto-incrementé ??
Par exemple celle là :
SELECT id_conversation , date_message , texte , sujet , pseudo , avatar FROM conversations_messages M JOIN utilisateurs U ON U.pseudo = M.pseudo_exp JOIN conversations_membres MS ON M.id_conversation = MS.id_conversation JOIN conversations C ON M.id_conversation = C.id_conversation WHERE M.id_conversation= :id AND MS.pseudo_dest= :pseudo_dest ORDER BY M.date_message DESC
en remplaçant :pseudo_dest par 'jean' (ou 'xzak47') .. et :id .. par un ID existant.
2 - Quelles sont les nouvelles structures de tes tables ?
As tu bien ajouté le champ 'id' comme je te l'ai proposé ? L'as tu bien mis en primarykey ? ... et en auto-incrementé ??
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 20:31
12 juil. 2015 à 20:31
1- j'ai : #1052 - Column 'id_conversation' in field list is ambiguous
sachant que id_conversation se trouve dans conversations_membres
2- Oui :)
sachant que id_conversation se trouve dans conversations_membres
2- Oui :)
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
12 juil. 2015 à 20:33
12 juil. 2015 à 20:33
SELECT C.id , date_message , texte , sujet , pseudo , avatar , M.id_conversation FROM conversations_messages M JOIN utilisateurs U ON U.pseudo = M.pseudo_exp JOIN conversations_membres MS ON M.id_conversation = MS.id_conversation JOIN conversations C ON M.id_conversation = C.id_conversation WHERE M.id_conversation= :id AND MS.pseudo_dest= :pseudo_dest ORDER BY M.date_message DESC
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 20:37
12 juil. 2015 à 20:37
avec le "C" que vous avez rajouté de select, j'ai : #1054 - Unknown column 'C.id_conversation' in 'on clause'
sinon sans le C : #1052 - Column 'id' in field list is ambiguous
sinon sans le C : #1052 - Column 'id' in field list is ambiguous
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
12 juil. 2015 à 21:19
12 juil. 2015 à 21:19
Quelle est la structure de ta table conversations ??
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
12 juil. 2015 à 21:22
12 juil. 2015 à 21:22
Au pire.. tu remplaces C.id_conversation ... par C.id
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
12 juil. 2015 à 21:40
12 juil. 2015 à 21:40
pour le 2e code, conversations.func.php :
j'ai : #1054 - Unknown column 'conversations.id_conversation' in 'field list'
SELECT conversations.id_conversation, conversations.sujet, 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 = 'xzak47' GROUP BY conversations.id_conversation ORDER BY conversations_messages.date_message DESC
j'ai : #1054 - Unknown column 'conversations.id_conversation' in 'field list'
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
12 juil. 2015 à 21:55
12 juil. 2015 à 21:55
...... par ce que. ..... ton champ se nomme id tout court !
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
Modifié par Zakarya93 le 13/07/2015 à 16:07
Modifié par Zakarya93 le 13/07/2015 à 16:07
No database select avec ceci :
SELECT conversations .id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = 'xzak47' GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
13 juil. 2015 à 16:14
13 juil. 2015 à 16:14
Tu as un espace à ta première ligne ...
conversations .id,
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
Modifié par Zakarya93 le 13/07/2015 à 16:27
Modifié par Zakarya93 le 13/07/2015 à 16:27
meme soucis (no database select)
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 16:27
13 juil. 2015 à 16:27
No database select again (code à votre manière) :
SELECT C.id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages C conversations C.id = conversations_messages C.id INNER JOIN conversations_membres MS ON M.id_conversation = MS.id_conversation INNER JOIN utilisateurs U ON U.pseudo = M.pseudo_exp WHERE pseudo_dest = 'xzak47' GROUP BY conversations C.id ORDER BY M.date_message DESC
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
13 juil. 2015 à 17:02
13 juil. 2015 à 17:02
Tu t'es bien placé dans ta bdd AVANT de lancer ta requête ??
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
13 juil. 2015 à 17:08
13 juil. 2015 à 17:08
là était l'erreur, du coup j'ai : #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 'conversations C.id = conversations_messages C.id
INNER JOIN ' at line 7
(avec le code du dessus)
INNER JOIN ' at line 7
(avec le code du dessus)
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 17:09
13 juil. 2015 à 17:09
Celui ci marche !!!
SELECT conversations .id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = 'xzak47' GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 17:16
13 juil. 2015 à 17:16
Il reste ce code mais il n'y a rien a modifier n'est ce pas ? :
de plus quand je vais sur mon site et sur l'onglet "messages", j'ai cette erreur :
Parse error: syntax error, unexpected 'sujet' (T_STRING), expecting ']' in C:\wamp\www\rs\pages\conversations.php on line 16
code :
<?php //la function qui va nous permettre de verifier si le pseudo existe et si la personne n'essaye pas de s'auto envoyer un message function pseudo_incorrect(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_get = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; if($pseudo_get){ $sql = "SELECT COUNT(pseudo) as NB FROM utilisateurs WHERE pseudo = :pseudo_get AND pseudo != :pseudo_session"; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' =>$pseudo_session , ':pseudo_get' => $pseudo_get ); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } // la fonction qui va crée la conversation et les messages qui va avec function creer_conversation($sujet,$message){ $pseudo_exp = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; $pseudo_dest = isset($_GET['pseudo'])?$_GET['pseudo']:NULL; $id_conversation = add_conversation($sujet); add_conversations_membres($id_conversation,$pseudo_dest); add_conversations_messages($id_conversation,$pseudo_exp,$message); return $id_conversation; } function add_conversation($sujet=NULL){ global $bdd; $sql = "INSERT INTO conversations (sujet) VALUES(:sujet)"; $params = array(":sujet"=>$sujet); //On prepare l'insertion try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_membres($id_conversation,$pseudo_dest){ global $bdd; $sql="INSERT INTO conversations_membres(id_conversation,pseudo_dest) VALUES(:id_conversation,:pseudo_dest)"; $params=array(":id_conversation"=>$id_conversation ,":pseudo_dest"=>$pseudo_dest); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } function add_conversations_messages($id_conversation,$pseudo,$message=''){ global $bdd; $sql="INSERT INTO conversations_messages(id_conversation,pseudo_exp,texte,date_message) VALUES(:id_conversation,:pseudo,:message, NOW())"; $params=array(":id_conversation"=>$id_conversation, ":pseudo"=> $pseudo, ":message"=> $message); try{ $prepare = $bdd->prepare($sql); $prepare->execute($params); //récupère l'ID créé par l'insertion en BDD $id = $bdd->lastInsertId(); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } return $id; } ?>
de plus quand je vais sur mon site et sur l'onglet "messages", j'ai cette erreur :
Parse error: syntax error, unexpected 'sujet' (T_STRING), expecting ']' in C:\wamp\www\rs\pages\conversations.php on line 16
code :
<?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 /> <IMG src='avatar/<?php echo $conversation['avatar']; ?>' height='70' width='70'></IMG> <p><a href="index.php?page=message&id=<?php echo $conversation['id ?>"> <?php echo $conversation['sujet']; ?></a></p> <p>Posté le : $date</p> <p><a href="index.php?page=supprimer_message&id=<?php echo $conversation['id']; ?>">Supprimer le message</a></p> </div> <?php } }else{ ?> <div class'error'>Vous n'avez pas de message</div> <?php } ?>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
13 juil. 2015 à 18:54
13 juil. 2015 à 18:54
... et tu ne vois pas l'erreur ????
.... le message te parle d'un PB de crochet (expecting ']' ).... dans le code ci-dessus.. ne vois tu pas un crochet manquant ?
<p><a href="index.php?page=message&id=<?php echo $conversation['id ?>"> <?php echo $conversation['sujet']; ?></a></p>
.... le message te parle d'un PB de crochet (expecting ']' ).... dans le code ci-dessus.. ne vois tu pas un crochet manquant ?
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
13 juil. 2015 à 18:59
13 juil. 2015 à 18:59
Merci (j'y penserai la prochaine fois pour l'expecting) sinon j'ai "Posté : $date" qui s'affiche et c nickel
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
13 juil. 2015 à 19:34
13 juil. 2015 à 19:34
j'aimerai avoir la date affichée au lieu de $date
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
13 juil. 2015 à 19:41
13 juil. 2015 à 19:41
..... ben il suffit d'en faire un ECHO ....
<p>Posté le : <?php echo $date; ?></p>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
13 juil. 2015 à 19:42
13 juil. 2015 à 19:42
mais à mon avis... $date .. n'existe pas....
c'est sûrement un truc comme ça qu'il te faut :
c'est sûrement un truc comme ça qu'il te faut :
echo $conversation['date'];
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 21:34
13 juil. 2015 à 21:34
j'ai mis ceci
mais j'ai : Posté le : 2147483647
qui s'affiche :/ (c'est ce qui est dans ma bdd)
je viens de voir ce champ sur ma table et il était en int(11), je viens de le modifier en datetime(6) mais tout est à 0 concernant la date et l'heure
logiquement faut modifier ma function ?
<p>Posté le : <?php echo $conversation['date_message']; ?></p>
mais j'ai : Posté le : 2147483647
qui s'affiche :/ (c'est ce qui est dans ma bdd)
je viens de voir ce champ sur ma table et il était en int(11), je viens de le modifier en datetime(6) mais tout est à 0 concernant la date et l'heure
logiquement faut modifier ma function ?
<?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, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = 'xzak47' GROUP BY conversations.id 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; } ?>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 21:35
13 juil. 2015 à 21:35
l'erreur vient-elle d'ici ?
WHERE pseudo_dest = 'xzak47'
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
13 juil. 2015 à 21:39
13 juil. 2015 à 21:39
corrigé :
j'ai : Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\rs\functions\conversations.func.php on line 25
$sql = "SELECT conversations.id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = :pseudo_dest GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC";
j'ai : Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\rs\functions\conversations.func.php on line 25
<?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, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = :pseudo_dest GROUP BY conversations.id 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; } ?>
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 00:07
14 juil. 2015 à 00:07
J'hésite franchement à répondre ....
ça ne fait que 48 fois qu'on te corrige la même erreur dans tes différents codes !!!!!!!!
Donc ... pour la dernière fois j'espère ....
- Quelle est la variable dans ta requête ?
- Comme se nomme ta variable dans l'array param ?
-->>> Est-ce que les deux variables portent bien le même nom ...???
ça ne fait que 48 fois qu'on te corrige la même erreur dans tes différents codes !!!!!!!!
Donc ... pour la dernière fois j'espère ....
- Quelle est la variable dans ta requête ?
- Comme se nomme ta variable dans l'array param ?
-->>> Est-ce que les deux variables portent bien le même nom ...???
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
14 juil. 2015 à 00:18
14 juil. 2015 à 00:18
- je ne sais pas
- pseudo_session
- pseudo_session
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 00:39
14 juil. 2015 à 00:39
Tu réponds à quelle question au juste ?
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
14 juil. 2015 à 00:45
14 juil. 2015 à 00:45
"- Quelle est la variable dans ta requête ?
- Comme se nomme ta variable dans l'array param ? "
- Comme se nomme ta variable dans l'array param ? "
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 00:48
14 juil. 2015 à 00:48
Donc NON.
-Quelle est la variable dans la requête ?
- Comment associes tu la variable $pseudo_session de ton array PARAMS avec la variable de ta requête ?
-Quelle est la variable dans la requête ?
- Comment associes tu la variable $pseudo_session de ton array PARAMS avec la variable de ta requête ?
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 01:24
14 juil. 2015 à 01:24
donc bon code :
?
<?php //la function qui va recuperer les conversations function recup_conversation() { global $bdd; // déclaration globale de BDD $pseudo_dest = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL; $sql = "SELECT conversations.id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE MS.pseudo_dest = :pseudo_dest GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC"; $params = array(':pseudo_dest' =>$pseudo_dest); $req = $bdd->prepare($sql); $req->execute($params); $resultat = $req->fetchall(); return $resultat; } ?>
?
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 01:39
14 juil. 2015 à 01:39
Presque .... d'où il vient ton MS ????
Vu que tu n'as pas préfixé tes tables dans la requête...ça ne sert à rien de le mettre !
Au passage.... penses donc à mettre un bloc TRY / CATCH pour trapper les éventuelles erreurs et qu'elles te soient affichées.
Vu que tu n'as pas préfixé tes tables dans la requête...ça ne sert à rien de le mettre !
Au passage.... penses donc à mettre un bloc TRY / CATCH pour trapper les éventuelles erreurs et qu'elles te soient affichées.
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 01:44
14 juil. 2015 à 01:44
<?php //la function qui va recuperer les conversations function recup_conversation() { global $bdd; // déclaration globale de BDD $pseudo_dest = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL; $sql = "SELECT conversations.id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = :pseudo_dest GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC"; $params = array(':pseudo_dest' =>$pseudo_dest); try{ $query = $bdd->prepare($sql); $query ->execute($params); $return = 1; }catch(Exception $e) { echo "<br>".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } return $resultat; ?>
comme ceci ?
j'ai un : Notice: Undefined variable: resultat in C:\wamp\www\rs\functions\conversations.func.php on line 34
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 01:47
14 juil. 2015 à 01:47
C'est le problème quand on fait des bêtes copier/coller dans savoir ce qu'on fait ......
Qu'as tu fais du FETCHALL ( instruction qui permet de stocker dans un array le resultat d'une requête .. ) ??
Qu'as tu fais du FETCHALL ( instruction qui permet de stocker dans un array le resultat d'une requête .. ) ??
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
14 juil. 2015 à 01:57
14 juil. 2015 à 01:57
<?php //la function qui va recuperer les conversations function recup_conversation() { global $bdd; // déclaration globale de BDD $pseudo_dest = isset($_SESSION['pseudo'])?$_SESSION['pseudo'] : NULL; $sql = "SELECT conversations.id, conversations.sujet, utilisateurs.pseudo, utilisateurs.avatar, conversations_messages.date_message FROM conversations LEFT JOIN conversations_messages ON conversations.id = conversations_messages.id INNER JOIN conversations_membres ON conversations.id = conversations_membres.id INNER JOIN utilisateurs ON utilisateurs.pseudo = conversations_messages.pseudo_exp WHERE pseudo_dest = :pseudo_dest GROUP BY conversations.id ORDER BY conversations_messages.date_message DESC"; $params = array(':pseudo_dest' =>$pseudo_dest); try{ $req = $bdd->prepare($sql); $req->execute($params); $resultat = $req->fetchall(); }catch(Exception $e) { echo "<br>".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } return $resultat; ?>
comme ceci ?
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
14 juil. 2015 à 01:59
14 juil. 2015 à 01:59
Ça me paraît pas trop mal. ..
tu as testé ?
tu as testé ?
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
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
14 juil. 2015 à 02:01
14 juil. 2015 à 02:01
oui j'ai cette erreur : Notice: Undefined variable: resultat in C:\wamp\www\rs\functions\conversations.func.php on line 36
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 02:11
14 juil. 2015 à 02:11
Ton accolades de fin est mal placée
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 16:44
14 juil. 2015 à 16:44
Tu peux nous fournir un DUMP (structure + données ) de tes tables ?
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 16:58
14 juil. 2015 à 16:58
http://www.cjoint.com/c/EGoo6N8UyEH
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 18:08
14 juil. 2015 à 18:08
Tu avais une erreur au niveau des ID dans ta requêtes ......
Les jointures se font entre le champ ID de la table CONVERSATIONS .. et les champs ID_CONVERSATION de tes autres tables !!
Essayes ça :
Les jointures se font entre le champ ID de la table CONVERSATIONS .. et les champs ID_CONVERSATION de tes autres tables !!
Essayes ça :
SELECT C.id ,C.sujet ,U.pseudo ,U.avatar ,CM.* FROM conversations_messages CM LEFT JOIN conversations C ON C.id=CM.id_conversation LEFT JOIN conversations_membres M ON C.id = M.id_conversation LEFT JOIN utilisateurs U ON U.pseudo = CM.pseudo_exp WHERE M.pseudo_dest = 'jean' ORDER BY CM.date_message DESC
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 18:33
14 juil. 2015 à 18:33
ça marche !! :)
tout est reglé merci (sauf le sujet de ce topic haha :p)
on continue ici ou je change de topic ?
tout est reglé merci (sauf le sujet de ce topic haha :p)
on continue ici ou je change de topic ?
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 18:35
14 juil. 2015 à 18:35
Continuons ici ...
Mais allons y par étape !
Est-ce que ton badge apparait ?
Si non... quel est le bout de code qui est censé l'afficher ?
Quelle fonction est appelée et quelle en est son code ?
Mais allons y par étape !
Est-ce que ton badge apparait ?
Si non... quel est le bout de code qui est censé l'afficher ?
Quelle fonction est appelée et quelle en est son code ?
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 18:55
14 juil. 2015 à 18:55
Je vous remercie pour votre patience infinie
Badge invitations :
Oui il apparait, mais ne disparait pas lorsque j'accepte l'invitation
appel de la function :
Badge invitations :
Oui il apparait, mais ne disparait pas lorsque j'accepte l'invitation
/* //la function qui va nous permettre d'afficher l'info-bulle des invitations */ function afficher_ibi_invitations(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; if($pseudo_session){ $sql = "SELECT COUNT(id_invitation) as NB FROM amis WHERE (date_vue = '0000-00-00 00:00:00' OR date_confirmation < date_vue ) AND pseudo_dest= :pseudo_session "; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' => $pseudo_session); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; } /* //la function qui va nous permettre de mettre à jour la date_vue dans la bdd pour pouvoir cacher l'info-bulle */ function update_date_vue(){ global $bdd; //récupération des variables PROPREMENT ! $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; if( $pseudo_session){ $sql = "UPDATE amis SET date_vue=NOW() WHERE pseudo_dest = :session_pseudo"; // je place les params dans une variable avant de l'utiliser : $params = array(':session_pseudo' => $pseudo_session); try{ $query = $bdd->prepare($sql); $query ->execute($params); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } }
appel de la function :
<?php require_once('functions/membre.func.php'); include_once('body/header.php'); include_once('body/menu.php'); ?> <h3>Vos invitations</h3> <?php $invitations = recup_invitations(); $invitations_acceptees =invitation_acceptee(); if(count($invitations)>0){ foreach($invitations as $R) { $invit_exp = $R['pseudo_exp']; $avatar = $R['avatar']; $active = $R['active']; if($active == 0){ echo "<img src='avatar/$avatar' height='100' width='100' alt='avatar'></img>"; echo "<div class='error'>"; echo " $invit_exp a voulu vous ajouter comme ami(e)<br />"; echo " <a href='index.php?page=accepter&pseudo=$invit_exp'>Accepter</a>|<a href='index.php?page=refuser&pseudo=$invit_exp'> Refuser</a>"; echo "</div>"; }else { echo" <div class='success'>Vous êtes désormais ami(e) avec $invit_exp </div>"; }//fin du IF active } // fin du FOREACH }else if(invitation_acceptee() == true){ foreach($invitations_acceptees as $invitation_acceptee) { update_date_vue(); ?> <div class='success'><?php echo $invitation_acceptee['pseudo_dest']; ?> a accepté votre invitation</div> <?php } } else { echo "<div class='error'>Vous n'avez pas d'invitations</div>"; }//fin du if(count
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
14 juil. 2015 à 19:15
14 juil. 2015 à 19:15
C'est l'info bulle qui est censée afficher quoi au juste ??
Les nouveaux messages ?
Les nouveaux messages ?
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
14 juil. 2015 à 19:16
14 juil. 2015 à 19:16
Ah non.. on est toujours sur les INVITATIONS ?
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
Modifié par jordane45 le 14/07/2015 à 19:22
Modifié par jordane45 le 14/07/2015 à 19:22
Tu as fais une inversion dans ta requête
c'est date_confirmation >= date_vue et non date_confirmation < date_vue
Cordialement,
Jordane
c'est date_confirmation >= date_vue et non date_confirmation < date_vue
SELECT * FROM amis WHERE (date_vue = '0000-00-00 00:00:00' OR date_confirmation >= date_vue ) AND pseudo_dest= 'xzak47'
Cordialement,
Jordane
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 14/07/2015 à 19:32
Modifié par Zakarya93 le 14/07/2015 à 19:32
j'ai : MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.0000 sec)
L'info bulle reste affichée malgré que j'ai accepté la demande et vu que je suis desormais amis avec la personne
L'info bulle reste affichée malgré que j'ai accepté la demande et vu que je suis desormais amis avec la personne
jordane45
Messages postés
38321
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 décembre 2024
4 707
>
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
14 juil. 2015 à 19:40
14 juil. 2015 à 19:40
Je m'y perd un peu là ....
Ta question INITIALE ... c'est bien par raport aux info-bulles messages ?????
Ensuite tu me parles des invitations .....
Donc si c'est sur les INVIATIONS que tu as un PB ... c'est une NOUVELLE QUESTION.
(ta question initiale etant au sujet de : Problème affichage info bulle messages )
Ta question INITIALE ... c'est bien par raport aux info-bulles messages ?????
Ensuite tu me parles des invitations .....
Donc si c'est sur les INVIATIONS que tu as un PB ... c'est une NOUVELLE QUESTION.
(ta question initiale etant au sujet de : Problème affichage info bulle messages )
Zakarya93
Messages postés
984
Date d'inscription
lundi 27 avril 2015
Statut
Membre
Dernière intervention
18 décembre 2020
10
14 juil. 2015 à 19:42
14 juil. 2015 à 19:42
oops pardon, je confonds, retournons sur les messages pardon
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 14/07/2015 à 19:48
Modifié par Zakarya93 le 14/07/2015 à 19:48
Pour les messages :
ou la fonction est appelée :
css :
/** *la function qui va nous permettre d'afficher l'info-bulle des messages */ function afficher_ibi_messages(){ global $bdd; $result=0; //Variables $pseudo_session = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:NULL; if($pseudo_session){ $sql = "SELECT COUNT(id_conversation) as NB FROM conversations_messages WHERE (date_vue = '0000-00-00 00:00:00' OR date_confirmation < date_vue ) AND pseudo_dest= :pseudo_session "; // je place les params dans une variable avant de l'utiliser : $params = array(':pseudo_session' => $pseudo_session); try{ $query = $bdd->prepare($sql); $query ->execute($params); $req= $query->fetchall(); $result= count($req)>0 ? $req[0]['NB']:0; }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } // Fin du if($pseudo_session) // le return return $result; }
ou la fonction est appelée :
<?php // Fichier menu.php $nombre_membre = nombre_membre(); $nb_membre = ($nombre_membre > 1) ? $nombre_membre ." membres" : $nombre_membre ." membre"; ?> <div class='menu'> <ul> <li><a href="index.php?page=membre">Accueil</a></li> <li><a href="index.php?page=update">Changer vos informations</a></li> <li><a href="index.php?page=liste_membre">les membres</a></li> <li><a href="index.php?page=amis">Vos amis</a></li> <li> <a href="index.php?page=invitations">Invitations</a> <?php if(!function_exists('afficher_ibi_invitations')){ echo "<br> Erreur : La fonction afficher_ibi_invitations() n'existe pas !"; }else{ $ibi = afficher_ibi_invitations(); if($ibi !== '0') { //echo "<div class='ibi_invitations'> echo "<p class='ibi_invitations'>".$ibi."</p>"; // </div>"; } }?> </li> <li> <a href="index.php?page=conversations">Messages</a> <?php if(!function_exists('afficher_ibi_messages')){ echo "<br> Erreur : La fonction afficher_ibi_messages() n'existe pas !"; }else{ $ibi = afficher_ibi_messages(); if($ibi != '0') { //echo "<div class='ibi_messages'>".$ibi."</div>"; echo $ibi; } } ?> </li> <li class="nbr"><?php echo $nb_membre;?></li> </ul> </div>
css :
.ibi_messages { margin: auto; background-color: #FF0000; border: 1px solid #000; color: #FFF; }
1 juil. 2015 à 19:42
pour le update_date_vue :
1 juil. 2015 à 22:04
Es tu sûr que c'est la table amis ???
1 juil. 2015 à 22:44
1 juil. 2015 à 22:45
1 juil. 2015 à 23:12
Merci d'être plus précis.