請,我需要一些幫助,我是新的Smarty用戶,但我堅持了約5天,請一些有經驗的用戶幫助我。循環內(另一個)循環(不通過ID)Smarty
這裏是PHP代碼我試圖轉換的例子: 代碼:
$numone = "1";
$contest = $mysqli->prepare("SELECT `active`, `id`, `start`, `end`, `slots`, `description`, `name`, `type`, `minimum` FROM `contests` WHERE `active` = ?");
$contest->bind_param('i', $numone);
$contest->execute();
$contest->bind_result($firstloop['active'], $firstloop['id'], $firstloop['start'], $firstloop['end'], $firstloop['slots'], $firstloop['description'], $firstloop['name'], $firstloop['type'], $firstloop['minimum']);
$contest->store_result();
if ($contest->num_rows() >0){
$n=0;
while($contest->fetch()){
$n++;
if ($firstloop['active'] == "1") {
if ($firstloop['type'] == "0"){
echo "
<table>
<tr><th colspan='2'>Contest name: ".$firstloop['name']." </th></tr>
<tr><th>Contest Start: ".$firstloop['start']."</th><th> Contest End: ".$firstloop['end']." </th></tr>
<tr><td>Description :<br> ".$firstloop['description']." </td></tr>
";
$participants = $mysqli->prepare("SELECT COUNT(*), `uid` FROM `completed` WHERE `status` = ? AND `time` > ? AND `time` < ? AND `payment` >= ? GROUP BY `uid` ORDER BY count(*) DESC LIMIT ?");
$participants->bind_param('issii', $numone, $firstloop['start'], $firstloop['end'], $firstloop['minimum'], $firstloop['slots']);
$participants->execute();
$participants->bind_result($counted, $secondloop['uid']);
$participants->store_result();
echo "
<tr><th>Place</th><th>ID</th><th>Completed</th></tr>
";
while ($participants->fetch()){
echo "
<tr><td>".$n."</td><td>".$secondloop['uid']." </td><td> ".$counted."</td></tr>
";
}
echo "
</table>
";
}
}
}
}
而且不管我嘗試,我總是落在結束。悲傷 正如你所看到的,兩個循環都沒有通過ID連接。
如果有人可以幫助我,我會再睡一夜而不睡覺。謝謝
編輯:我在任何嘗試轉換成Smarty失敗,我總是得到錯誤的結果與第二個循環,所以我決定發佈循環的乾淨的例子,如果有人可以給我建議轉換成聰明的正確的方法。
編輯(已解決): 感謝dbone的建議,關於具有唯一ID的嵌套數組傳遞給第二個循環。 (檢查dbone的帖子)。 謝謝
我是唯一一個如何在這裏看不到任何聰明的代碼? – hek2mgl
@ hek2mgl - 正如我所說我沒有任何嘗試轉換成Smarty,我總是得到錯誤的結果與第二個循環,所以我決定發佈循環的乾淨的例子,如果有人可以給我建議轉換這smarty in正確的方法。 – user3246886