我想讓用戶對徽標進行評分。該查詢應選擇該用戶尚未評分的下一個徽標。複雜連接的SQL查詢
在review.php我們選擇一個標誌:
<?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.
感謝您的幫助!
工程就像一個魅力。非常感謝你。如果能夠解決這個問題,我會在今天剩下的時間裏解決這個問題。 – blogo
是的,tbllogos.id作爲主鍵。 – blogo
請注意,沒有ORDER BY的LIMIT是相當無意義的 – Strawberry