第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

PHP/MySQL - 需要幫助獲取用戶的適用事件列表

PHP/MySQL - 需要幫助獲取用戶的適用事件列表

PHP
天涯盡頭無女友 2022-01-24 09:39:58
我需要一些幫助 - 我有兩張桌子:events (eventID, event_name, event_description) - 用于存儲(chǔ)有關(guān)不同事件的信息events_applied (eventID, userID, date_applied) - 用于跟蹤哪些用戶應(yīng)用了哪些事件當(dāng)用戶登錄到應(yīng)用程序時(shí),他應(yīng)該只看到可供他申請(qǐng)的事件,或者更準(zhǔn)確地說,這將是他尚未申請(qǐng)的事件。應(yīng)隱藏應(yīng)用的事件。所有內(nèi)容都應(yīng)打印在帶有應(yīng)用程序鏈接的表格中。目前,我的代碼如下所示:$sql = "SELECT * FROM events";if($stmt = $mysqli->prepare($sql)) {     $stmt->execute();     $stmt->store_result();     $num_of_rows = $stmt->num_rows;     $stmt->bind_result($eventID, $event_name, $event_description);    echo '<table>             <thead>             <tr>             <th>Event #</th>             <th>Event name</th>             <th>Event description</th>             <th>Apply</th>             </tr>             </thead>             <tbody>';     while ($stmt->fetch()) {         echo '<tr>         <td>'.$eventID.'</td>         <td>'.$event_name.'</td>         <td>'.$event_description).'</td>         <td><a href="event_apply.php?eventID='.$eventID.'&userID='.$userID.'">Apply</a></td>        </tr>';     } }問題是這將打印出所有事件,但我需要?jiǎng)h除每個(gè)用戶的“已經(jīng)應(yīng)用到”事件,或者(更好) - 打印出應(yīng)用的事件而不是打印“應(yīng)用鏈接”,我會(huì)打印出“對(duì)不起,你已經(jīng)申請(qǐng)了這個(gè)活動(dòng)。我怎樣才能做到這一點(diǎn)?我在想,也許在 while 循環(huán)中我可以這樣做,$sql = "SELECT DISTINCT eventID FROM events_applied WHERE userID = ?";但看起來有點(diǎn)亂:/編輯/新信息 我已經(jīng)用“max_people”參數(shù)擴(kuò)展了“事件”表 - 所以我可以限制注冊(cè)每個(gè)事件的人數(shù)。我將如何修改代碼以不顯示已滿的事件?這是目前有效的答案:SELECT e.*FROM events eLEFT JOIN events_applied ea    ON ea.eventID = eID.eventID AND ea.userID = :userIDWHERE ea.eventID IS NULL我嘗試添加另一個(gè)這樣的 WHERE: AND (SELECT COUNT (userID) FROM events_applied WHERE eventID = :eventID問題是我不知道如何將 eventID 作為變量獲取 - 我正在使用 while 循環(huán)打印出所有事件,但在此之前我需要這個(gè)變量,對(duì)嗎?
查看完整描述

1 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

這看起來像是反模式的一個(gè)很好的用例LEFT JOIN:


SELECT e.*

FROM events e

LEFT JOIN events_applied ea

    ON ea.eventID = euserID.eventID AND ea.userID = :userID

WHERE ea.eventID IS NULL

:userID當(dāng)前連接用戶的 id 在哪里。


此查詢選擇所有事件并執(zhí)行 aLEFT JOIN以連接到當(dāng)前用戶申請(qǐng)的事件。然后,該WHERE子句消除匹配的事件。結(jié)果,您確實(shí)獲得了當(dāng)前用戶尚未申請(qǐng)的所有事件。


查看完整回答
反對(duì) 回復(fù) 2022-01-24
  • 1 回答
  • 0 關(guān)注
  • 157 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)