我查看了許多類似的解決方案,但無法找到滿足我需求的解決方案。Mysql通過行循環檢查行,直到找到一個數爲零
我想我可以限制用戶在24小時內創建每個URL超過兩個SHORTURL
人濫用這一點,並創造10+的URL和堵塞我的數據庫。所以我想他們限制在2%url和離開的消息,如果他們已經超過了
現在我有這個檢查,看看他們有多少每個URL進行
$sql = "SELECT * FROM ShortUrls WHERE user_id='$user' AND vidID='$urlMe' AND time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))";
$result = $conn->query($sql);
echo "user created this many urls: " .$result->num_rows;
if ($result->num_rows > 2) {
// keep checking till find one less that 2
}
環通數據庫的網址,並檢查他們是否在24小時內使用了相同的網址兩次以上。如果他們在24小時內沒有使用超過兩次的網址,他們可以使用該網址創建一個新的縮短網址。
編輯解決方案,我用:
$sql2 = "SELECT tube.vidID FROM tube LEFT JOIN (SELECT COUNT(*) c, vidID FROM ShortUrls WHERE user_id='$user' AND time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY vidID) urls ON urls.vidID = tube.vidID WHERE urls.c < 2 LIMIT 1;";
$result = $conn->query($sql2);
if ($row = $result->fetch_assoc()) {
echo "You can add a URL to this video: " . htmlspecialchars($row['vidID']);
} else {
echo "All videos used up!";
}
希望這可以給別人你想看到哪些vidID
S按同樣在過去24小時中創建了不到兩排
循環瀏覽完整的網址列表? – Dave
希望我的編輯更好地解釋 –