![](/img/trans.png)
[英]How to run a PHP script in every 5-10 minutes without cron, perl etc?
[英]How to choose number 5-10 in DESC MySQL
所以我想做2個while循環,因為我有2個表。 在第一個表格中,我想擁有前5個ID
`$sql = "SELECT * FROM link WHERE `userid`= $uid ORDER by clicks DESC LIMIT 5";`
不要介意語句中的變量是不安全的,因此稍后我將使用准備好的語句。 但是,仍然應該在第一個ID給出前5個ID,而在第二個ID給出5-10 ID。 第二個$ sql應該是什么樣子?
您需要像這樣使用OFFSET:
SELECT * FROM link WHERE `userid`= $uid ORDER by clicks DESC LIMIT 5 OFFSET 5
第二個SQL看起來像這樣:
<?php
...
$sql2 = "SELECT * FROM link WHERE userid = :uid ORDER by clicks DESC LIMIT 5 OFFSET 5";
$stmt = $pdo->prepare(sql2);
$stmt->execute(['uid ' => $uid]);
...
?>
試試這個。
$sql = "SELECT * FROM link WHERE `userid`= '$uid' ORDER by clicks DESC LIMIT 5, 5";
這將從記錄編號6開始給出5條記錄(記錄編號5將不會出現在結果中)
只需對1個查詢使用2個循環。 不需要其他查詢。
例如在for
循環中:
<?php
$results = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n");
for($i=0; $i<5; $i++) {
echo $results[$i];
}
echo " / ";
for ($i=5; $i<10; $i++) {
echo $results[$i];
}
// yields: abcde / fghij
?>
或while
循環中的相同樣本:
<?php
$results = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n");
$i = 0;
while($i < 5) {
echo $results[$i];
$i++;
}
echo " / ";
while($i < 10) {
echo $results[$i];
$i++;
}
// yields: abcde / fghij
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.