请,我需要一些帮助,我是新的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