[英]How to setup phpmyadmin and SQL for messaging via REST-api?
在我的數據庫中,有一個名為“ Chat”的表。 我打算在這里存儲應用程序中用戶之間發送的每條消息。 首先,我必須將它們存儲在列表中(只需簡單地執行SELECT * FROM ColumnText WHERE OneID = '$OneID'
並從與之有消息的其他用戶那里收集所有ID),但是現在我很難完成最后一部分是在我單擊一行后查看這兩個用戶之間的消息。
我的計划是通過如下所示的呼叫收集信息:
http://myURL.com/Chat.php?UserOneID=1548&UserTwoID=1724
其中一個用戶的ID為1548
,另一用戶的ID為1724
。
我看到的第一個問題是,我將知道誰發送了該消息。 然后我做了,可能會起作用的是改為執行以下操作:
將ID重命名為更清晰的名稱(例如第一個SenderID
和RecieverID
而不是在數據看起來像這樣的位置:
SenderID = 1548
RecieverID = 1724
和
SenderID = 1724
RecieverID = 1548
我為此編寫了代碼,如下所示:我使用UNION
嘗試收集兩個ID的數據,而不僅僅是一個ID,調用看起來像這樣:
http://myURL.com/Chat.php?SenderID=1548&RecieverID=1724
http://myURL.com/Chat.php?RecieverID=1548&SenderID=1724
<?php
class ConnectionInfo
{
public $conn;
public function GetConnection() {
$this->conn = mysqli_connect("serv", "user","pass", "db") or die(mysqli_error($mysql_pekare));
}
}
$connectionInfo = new ConnectionInfo();
$connectionInfo->GetConnection();
if (!$connectionInfo->conn)
{
echo 'No Connection';
}
else
{
$SenderID = $_GET['SenderID'];
$RecieverID = $_GET['RecieverID'];
$query = "(SELECT * FROM ColumnText WHERE SenderID = '$SenderID') UNION (SELECT * FROM ColumnText WHERE RecieverID = '$RecieverID')";
$stmt = mysqli_query($connectionInfo->conn, $query);
if (!$stmt)
{
echo 'Query failed';
}
else
{
$contacts = array();
while ($row = mysqli_fetch_array($stmt))
{
$contact = array("Messages" => $row['Messages']);
array_push($contacts, $contact);
}
echo json_encode(array('results' => $contacts), JSON_PRETTY_PRINT);
}
}
?>
問題在於“ UNION”似乎無法解決問題。 即使RecieverID與我發送給腳本的數據不匹配,我似乎也只能從SenderID
行中獲取所有數據。
我當前的方法是正確的方法嗎?如果是,我將如何調整我的phpscript才能使其正常工作?
您為什么不只使用OR
? 那么結果有正確的接收者和正確的發送者嗎? 並且您收到了從X到Y的所有消息以及從Y到X的所有消息
您的查詢行將如下所示:
$query = "SELECT * FROM ColumnText WHERE (SenderID = '$SenderID' AND RecieverID = '$RecieverID') OR (SenderID = '$RecieverID' AND RecieverID = '$SenderID')“;
此外,我強烈建議您使用准備好的語句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.