以上是我繪製的方案。有一個理想的情況,當content.user
分組。但通常他們沒有分組。 我的意思在這個方案是:
在第一步,我選擇
users.monetos
WHEREusers.id = content.user
在第二步,我遞減
users.monetos
每content.cpc
值(2.1,2.2)
當模擬這樣的: 選擇content.user
(9)
選擇users.monetos
凡users.id=content.users
(15)
因此,我們必須對users.monetos
爲users.id=9
15值,現在我們回到內容表 和:
- 遞減值15與8(
content.cpc
)(15- 8 = > 0 - >去到步驟2) - 減量7(來自之前的步驟導致)10(
content.cpc
)(7-10 = -3 < 0 - >更新 含量設定爲有效= '0' where content.id =(當前的id得到否定的結果))
而像這樣對每個content.user
更多擴展 - 我想選擇contet.*
行具有content.active
= 1 (n)的。有此數據,SELECT
users.monetos
其中users.id
= content.user
來自上一個查詢。 現在,通過最大(n)的步驟我通過content.cpc上時** users.monetos = 0或小於0,我想更新content
和SET的時刻值 和遞減users.monetos
值活性= '0' **
通過詞語,我要像共享users.monetos量到每個內容條目(content.cpc每個)。並且沒有更多users.monetos使當前content
條目處於非活動狀態。並且每做一個內容。用戶 我在這一刻做了什麼如下所示。我現在看起來非常糟糕,但我已經不知道該怎麼做。
$query = "select content.id, content.cpc, conent.user, content.active from content a
join users b on a.user=b.id
group by b.id where a.active='1'";
/** cycle each user **/
foreach($rows = $connector->fetchArray($query) as $row) {
$monetos = $row['monetos'];
$query = "select id, cpc from content where user={$row['id']}";
/** cycle each users content **/
foreach($contents = $connector->fetchArray($query) as $content) {
echo $monetos;
$monetos -= $content['cpc'];
if($monetos <= 0) {
$disable[] = $content['id'];
}
}
if(isset($disable)) {
$connector->query("update content set active='0' where id in(".implode(',',$disable).")");
}
}
這真的很難幫你,當你不給出任何數據的例子,或適當的表結構。當你試圖實現一些複雜的alghoritm時,我認爲最好是繪製一個模式來更容易理解你的想法。 – CrazySabbath
只給我一分鐘 –
@CrazySabbath有。我會很高興,如果你會看看它 –