Buongiorno non sono un programmatore ma autodidatta fino al 2004 riuscivo a programmare il mirc con il vincula ( ex chat msn ) ho creato un sito per gli amministratori di condominio funziona alla grande il condominino può registrarsi e se dimentica la pass può richiedere il reset della pass e nella sua area privata può scaricare i file pdf e/o doc ho aperto un dominio gratuito per fare i test nella area privata il condomino può chattare in privato sia con l'amministratore e/o con il condomino ma non riesco a eliminare la chat chiedo aiuto posto sia le tabelle e i codici
Codice PHP:
CREATE TABLE `chats` ( `chat_id` int(11) NOT NULL, `from_id` int(11) NOT NULL, `to_id` int(11) NOT NULL, `message` text NOT NULL, `opened` tinyint(1) NOT NULL DEFAULT 0, `created_at` datetime NOT NULL DEFAULT current_timestamp()) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- --------------------------------------------------------
---- Table structure for table `conversations`--
CREATE TABLE `conversations` ( `conversation_id` int(11) NOT NULL, `user_1` int(11) NOT NULL, `user_2` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-----------------------------------------------------------form<ul id="chatList" class="list-group mvh-50 overflow-auto"> <?php if (!empty($conversations)) { ?> <?php
foreach ($conversations as $conversation){ ?> <li class="list-group-item"> <p>Elimina chat</p> <form action="delchat.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="chat_id"> <input type="submit" name="del" value="Elimina chat"> </form> <a href="chat.php?user=<?=$conversation['username']?>" class="d-flex justify-content-between align-items-center p-2"> <div class="d-flex align-items-center"> <img src="uploads/<?=$conversation['p_p']?>" class="w-10 rounded-circle"> <h3 class="fs-xs m-2"> <?=$conversation['username']?><br> <?=$conversation['name']?><br> <small> <?php echo lastChat($_SESSION['user_id'], $conversation['user_id'], $conn); ?> </small> </h3> </div> <?php if (last_seen($conversation['last_seen']) == "Active") { ?> <div title="online"> <div class="online"></div> </div> <?php } ?> ---------------------------------------------------------- delchat.php <?php
session_start();
# check if the user is logged in if(isset($_POST['del'])){ # database connection file include 'app/db.conn.php';
# $id_1 = $_SESSION['user_id']; $id_2 = $_POST['id_2'];
$sql = "DELETE c, e FROM chats c LEFT JOIN conversation e ON e.conversation_id = c.chat_id LEFT JOIN (SELECT conversation_id, COUNT(*) count FROM conversations GROUP BY conversation_id) t ON t.conversation_id = chat_id WHERE e.conversation_conversation_id IS NULL OR t.count < 3;"; $stmt= $conn->prepare($sql); $stmt->execute([$chat_id, $conversation_id]);
header("Location: home.php"); exit; }
?>