我有一个像这样的表结构:
sender| receiver| message|date|time
----------------------------------
如何选择在同一日期撰写的所有邮件,它们显示在顶部,就像Facebook聊天一样?
我尝试过这样的事情:
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db ("chat",$con);
$query=" select * from chat where sender='$send'
and receiver='$rec' order by date";
$result=mysql_query($query);
while($r2=mysql_fetch_array($result))
echo "<div>{$r2['date']}</div>";
{
echo"<div>{$r2['message']}</div>";
}
?>
答案 0 :(得分:1)
您尝试直接从PHP运行SQL查询,而您无法做到 - 您需要先连接到数据库。然后,您需要将$send
和$rec
变量传递到您的数据库,最好通过prepared statements来阻止SQL injection。
这取决于您是否正在使用 MySQLi 或 PDO 来确切了解您应如何做到这一点,但我&# 39;假设您没有使用mysql_
构造函数,因为它是deprecated as of PHP 5.5,而且是removed in PHP 7。
因此,这里有一个如何通过MySQLi准备好语句来做到这一点的例子:
<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$stmt = $mysqli->prepare(
"SELECT * FROM tablename WHERE sender = ? && receiver = ?");
$stmt->bind_param("ss", $send, $rec);
// "ss' is a format string, each "s" means string
// Each variable gets passed to the question marks, in order
$stmt->execute();
$stmt->bind_result($result);
然后,您将结果存储在$result
中,并可以从那里自由操作。
希望这有帮助! :)