ユーザーがロゴを評価できるようにしたい。クエリは、このユーザーがまだ評価していない次のロゴを選択する必要があります。我々はロゴを選択review.phpで複雑な結合によるSQLクエリ
:
<?php
$dbconnect = mysqli_connect("localhost", "***", "***", "***");
if (!isset($_SESSION)) {
session_start();
}
$thisuser = $_SESSION['uid']
$Recordsetlogos = mysqli_query($dbconnect, "SELECT * FROM tbllogos WHERE status = 'live' LIMIT 1"); //query
$row_Recordsetlogos = mysqli_fetch_assoc($Recordsetlogos);
?>
これまでのところは良いです。
ユーザーは、ロゴを見て、評価を選択してフォームを送信します。
我々は、ユーザが記入したフォームからデータを収集し、次のページで、我々は、データベース内の別のテーブルにレコードを挿入:
<?php
$dbconnect = mysqli_connect("localhost", "***", "***", "***");
$did = $_POST['did']; // user ID
$lid = $_POST['lid']; // logo ID
$review = $_POST['review']; // rating
$desrank = $_POST['desrank']; // user's rank
$updateSQL = mysqli_query($dbconnect, "INSERT INTO tblreviews (did, lid, vote, desrank) VALUES ('$did', '$lid', '$review', '$desrank')");
mysqli_close($dbconnect);
header("Location: review.php"); // send user back
exit;
ユーザーがバックreview.phpに到着し、評価します次のロゴ。
review.phpが読み込まれると、ユーザーが評価したのと同じロゴが表示されます。
これはおそらく単純な結合であることを認識していますが、私はその周りに頭を浮かべることはできません。ここで
は、それは...英語で、あなたの助けのための
Select from tbllogos
where status = 'live'
AND
logo and $thisuser do not appear as a pair in tblreviews.
おかげで何をすべきかです!一瞬のために取っているのまま「次のページで、我々は、ユーザが記入したフォームからデータを収集し、彼は私達のデータベースにSQLインジェクション攻撃を実行できるようにする」
魅力的な作品です。どうもありがとうございました。それは私にそれを理解する日の残りの部分を取っていただろう。 – blogo
はい、tbllogos.idが主キーです。 – blogo
ORDER BYのないLIMITはかなり意味がないことに注意してください – Strawberry