Bonjour, je code actuellement un réseau social dans lequel il y a des discussions privés qui sont stockées dans des tables dédiés à chaque discussions, et je veux faire en sorte que si le msg est envoyé dans la même minute par la même personnes, alors on assemble sont msg avec celui d'avant en y ajoutant un saut de lignes, mais cela ne marche pas, voici le code :

// Vérification s'il ne faut pas assembler certains msg -- PAS FINI
$reqLastMsg = $bdd_talk->query('SELECT id, message, id_sender, date_sending FROM '.$table.' ORDER BY id DESC');
$donnees = $reqLastMsg->fetch();
$idLastMsg = $donnees['id'];
$lastMsg = $donnees['message'];
$lastDateSending = substr($donnees['date_sending'], 0, -3);
$lastIdSender = $donnees['id_sender'];
if ($lastIdSender == $_SESSION['id'] AND $lastDateSending == substr($now, 0, -3))
{
    // Regroupement de deux messages s'ils sont envoyés la même minute
    $completeMsg = $lastMsg . '/n' . $msg;
    $reqUpdateMsg = $bdd->prepare('UPDATE '.$table.' SET message = ? WHERE id = ?');
    $reqUpdateMsg->execute([$completeMsg, $idLastMsg]);
}
else
{
    // Insertion du message dans la table
    $req_insert_msg = $bdd_talk->prepare('INSERT INTO '.$table.'(id_sender, id_receiver, message, date_sending) VALUES(?, ?, ?, ?)');
    $req_insert_msg->execute([$_SESSION['id'], $id_receiver, $msg, $now]);
}

Quand le msg est envoyé la même minute, cela passe bien dans le if, mais cela n'actualise rien du tout, et je ne vois pas pk .... Quelqu'un peut m'aider plz ?

2 réponses


Huggy
Réponse acceptée

Pourquoi il y a 2 connexions $bdd et $bdd_talk ?

Bryanoxx
Auteur

Ah oui, c'est ça le problème, en fait j'ai une base de données avec les infos de mon site et des membres, et une consacrée aux tables de discussions, j'aurai donc dû mettre $bdd_talk et non $bdd, merci d'avoir repéré ça ! :-)