PHP входящие с ответным запросом

#php #mysql #sql

#php #mysql #sql

Вопрос:

В настоящее время я разрабатываю систему личных сообщений, в текущем состоянии системы я могу отправлять и извлекать сообщения, но у меня проблемы с получением ответов на сообщение. я пытаюсь разработать систему входящих сообщений / комментариев типа youtube. у меня есть 3 связанные таблицы fk, СООБЩЕНИЯ (id, sid, rid, тема, сообщение, время отправки) sid — это идентификатор для вошедшего в систему пользователя, rid — это идентификатор для пользователя-получателя, т.Е. profile_id…. M_REPLY(id, mid, uid, reply, senttime) mid — это внешний ключ для идентификатора сообщения, uid — это идентификатор пользователя, отправившего ответ, reply — это фактическое сообщение… ниже приведен мой PHP-код, который выполняет извлечение сообщений

 // Initialize the variables
$mail ="";
// Get list of Private Messages
$sql = "SELECT users.*, messages.* 
        FROM users, messages 
        WHERE messages.rid= '$log_id' 
        AND users.id = messages.sid 
        AND rdelete = '0' 
        ORDER BY senttime DESC" or die(mysqli_error);
$query = mysqli_query($conx, $sql);
$numrows = mysqli_num_rows($query);
// Gather data about the Pm's
if ($numrows > 0){
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
        $id = $row['id'];
        $avatar = $row['avatar'];
        $subject = $row['subject'];
        $uname = $row['username'];
        $message = $row['message'];
        $senttime = $row['senttime'];
        $pro_pic = '<img src="user/'.$uname.'/'.$avatar.'" alt="'.$uname.'" align="left" width="50" height="50" style="border:#E5E5E5 thin solid; padding:2px;">';
        $mail .= '<div><a href="user_account.php?u='.$uname.'">'.$pro_pic.' '.$uname.'</a> | '.$subject.'</a></span> <div> '.$senttime.' <br /> '.$message.'<div>Replies here....</div></div></div>';
    }
} else {
    $mail = 'No messages';
}
  

затем я повторяю $ mail в своем html, чтобы отобразить это….
кроме того, я хотел бы знать, как я могу отобразить текстовое поле ответа, не отображая его снова и снова в цикле … пожалуйста, помогите

Комментарии:

1. Через несколько секунд кто-нибудь скопирует-вставит огромный комментарий о том, что функции mysql_ * и mysqli_ * устарели и небезопасны. Я гарантирую это.

2. @MightyPork Почему? Нигде нет mysql_ .

3. да. но, пожалуйста, имейте в виду, что это не окончательная работа, я буду использовать подготовленные инструкции, а также предварительно заменять и использовать htmlentities, чтобы избежать любых форм атак и взломов

4. @Fred-ii- Я знаю, но все равно — это вставляется почти во все. Все хотят пожаловаться на это 😉

5. Вместо того, чтобы иметь отдельную таблицу для ответов, почему бы просто не рассмотреть сами сообщения ответов? Вы могли бы добавить другое поле в таблицу сообщений, replyTo , и если оно имеет значение NULL , то это исходное сообщение, а если нет, то это ответ на сообщение (или реплика на ответ). Ваш первый запрос будет извлекать все записи WHERE replyTo=NULL , затем при отображении сообщения вы будете извлекать все записи, где replyTo=mid . Это позволило бы потокоподобное представление, подобное gmail. Что касается ответов на ответы, это было бы немного сложнее, но ничего, что не могло бы исправить творческое решение проблемы. 🙂