複数のテーブルからデータを取得して、通知フィードを作成しようとしています。複数のテーブルからデータを選択するPHP/Mysql
私は3つのテーブルがあります。私は、通知を確認するために、アイコンをクリックして、私はそうでは、ドロップダウンリストとしてだけ新しいものを表示したい場合はユーザー、user_notificationとuser_comments
をuser_notificationテーブル私が持っている行"状態"、"新しい" することができid_fromとid_ownerまたは"old"、そのように私は何を取り出すべきかを知っていますが、私はそれらの通知から誰かの情報を得る必要があるときに自分の問題が発生しています。など
これは私が取得しようとしていますHTMLです:
while ($row_notification = $result_load_notifications->fetch_assoc()) {
echo '<li class="dropdown-item">
<img src="'.$row_notification["avatar"].'" class="avatar-feed" alt="'.$row_notification["name"].'" /><p><strong>'.$row_notification["name"].'</strong> new <a href="https://sample.com/user/'.$_SESSION['alias'].'/#comment-'.$row_notification["id_comment"].'">comment</a> notification.<br>
<time class="date-post" datetime="'.$row_notification["date"].'"></time></p>
</li>';
echo '<li class="dropdown-divider"></li>';
}
をそして、これは私が仕事ができると思ったがなかったPHP /のMysqliです:PHPで
SELECT
*
FROM
user_notification n,
users u,
user_comments c
WHERE
n.status='new'
AND
n.id_owner=$session_id
AND
u.id_user=n.id_from
AND
c.id_owner=n.id_owner
:
$load_notifications = mysqli_query($conn, "SELECT * user_notification n, users u, user_comments c WHERE n.status='new' AND n.id_owner=$session_id AND u.id_user=n.id_from AND c.id_owner=n.id_owner");
このコードは機能しません。間違っていますか? (私は専門家ではない)私はテーブル間の関係がないのですか?
どのようなヒントもありがとうございます。 ありがとうございました。
'SELECT * FROM user_notification n、.... ' –
あなたのSQLは無効です。あなたは' FROM'節を指定していません。また、あなたのコードはSQLインジェクションに対して脆弱です:** SQLを生成するために文字列連結または文字列補間を使用しないでください!** *常にパラメータ化されたクエリを使用してください。* – Dai
それはどうですか?あなたはSQLインジェクションのために広く開いています。 mysqliを使用しているので、[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と[bind_param](http://php.net/ manual/en/mysqli-stmt.bind-param.php)。 – aynber