Bonjour tout le monde,
Voilà je développe un petit rpg version HTML et j'utilise PHP.
J'en suis à la création d'une messagerie privée sous forme de conversation dont voici le code SQL:
privateConversationMessagePrivateConversationId est lié à privateConversationId
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CREATE TABLE IF NOT EXISTS `car_private_conversation` ( `privateConversationId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `privateConversationCharacterOneId` int(5) NOT NULL, `privateConversationCharacterTwoId` int(5) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `car_private_conversation_message` ( `privateConversationMessageId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `privateConversationMessagePrivateConversationId` int(11) NOT NULL, `privateConversationMessageCharacterId` int(11) NOT NULL, `privateConversationMessageDateTime` datetime NOT NULL, `privateConversationMessage` text NOT NULL, `privateConversationMessageRead` varchar(5) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Dans une conversation le privateConversationCharacterOneId est l'id du joueur qui a lancé en premier la conversation et le privateConversationCharacterTwoId est celui qui a reçu le premier message.
Hors dans le menu de la messagerie privé je donne la possibilité au joueur de voir toutes ses conversations où d'en faire une nouvelle et là je fais un select de tous les joueurs du jeu sauf que j'aimerai isolé ceux qui ont déjà une conversation...
Voici le code actuel:
C'est du code PHP procédural et non objet je souhaites juste de l'aide sur la requête SQL pour enlever les joueurs qui ont déjà une conversation avec moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 //On fait une recherche dans la base de donnée de tous les comptes et personnages $characterQuery = $bdd->prepare("SELECT * FROM car_characters WHERE characterId != ? ORDER by characterName"); $characterQuery->execute([$characterId]); $characterRow = $characterQuery->rowCount(); //Si il y a au moins un autre joueur on affiche le menu if ($characterRow > 0) { ?> <form method="POST" action="launchConversation.php"> Liste des joueurs <select name="privateConversationCharacterId" class="form-control"> <?php //On fait une boucle sur le ou les résultats obtenu pour récupérer les informations while ($character = $characterQuery->fetch()) { $privateConversationCharacterId = stripslashes($character['characterId']); $privateConversationCharacterName = stripslashes($character['characterName']); ?> <option value="<?php echo $privateConversationCharacterId ?>"><?php echo "$privateConversationCharacterName"; ?></option> <?php } $characterQuery->closeCursor(); ?> </select> <input type="submit" name="launchConversation" class="btn btn-default form-control" value="Démarrer une conversation"> </form> <?php } else { echo "Il n'y a actuellement aucun autre joueur"; }
Merci d'avance de votre aide
Bon dimanche
Partager