编辑 - 解决方案::前而
我做了这个代码来显示比赛的记分牌第一位置移动到$sub = '';
。
第一次:获取所有类别。
第二次:从类别中获取所有子类别。
第三次:从子类别获取所有记录。
问题是:
如果通过DESC的第一个循环顺序,它只打印第一个结果,并且在此类别中执行
。
如果我更改为ASC,则不会打印任何内容。
注意:并非每个子类别都有记录。
虽然内内,而同时
function SelectAllRecords() {
global $db;
try{
$query = $db->query("SELECT id, name FROM category ORDER BY name DESC");
while($category = $query->fetch(PDO::FETCH_ASSOC)) {
$categoryid = $category['id'];
$sub = '';
$querysub = $db->query("SELECT id, id_category, name FROM category_sub WHERE id_category=".$categoryid);
while($subcategory = $querysub->fetch(PDO::FETCH_ASSOC)) {
if(!is_numeric($subcategory['id'])){
continue;
}else{
$subcategoryname = $subcategory['name'];
$sub .='<h2>'.$category['name'].'</h2>
<div class="widget-box">
<div class="widget-title"> <span class="icon"><i class="icon-th"></i></span>
<h5>'.$subcategory['name'].'</h5>
</div>
<div class="widget-content nopadding">
<table class="table table-bordered data-table" id="tabledata">
<thead>
<tr>
<th class="columnadjust">Código</th>
<th>Competidor</th>
<th class="columnadjust">Ações</th>
</tr>
</thead>
<tbody id="tablecontent">
';
$record = $db->query("SELECT records.id as id, competitor.name as competitor, category.name as category, category_sub.name as subcategory, records.amplifier as amplifier, records.speaker as speaker, records.battery as battery, records.decibels as decibels, records.car as car FROM records LEFT JOIN competitor ON competitor.id = records.id_competitor LEFT JOIN category ON records.id_category = category.id LEFT JOIN category_sub ON records.id_subcategory = category_sub.id WHERE category_sub.name = '".$subcategoryname."' ORDER BY points ASC");
while($records = $record->fetch(PDO::FETCH_ASSOC)) {
if(!is_numeric($records['id'])){
$sub .= '<tr class="gradeX"></tr>';
}else{
$sub .= '
<tr class="gradeX">
<td class="columnadjust">'.$records['id'].'</td>
<td>'.$records['competitor'].'</td>
<td class="columnadjust">
<a data-id="'.$records['id'].'" title="Editar" class="itemedit btn btn-warning btn-mini">Editar</a>
</td>
</tr>';
}
}
$sub .= '</tbody></table></div></div>';
}
}
}
$result = $sub;
echo $result;
return true;
} catch (PDOException $pe) {
return false;
}
}
*首先是产生一切,然后再打印第二?* - 打印什么,打印什么?你能举一个例子吗? – Aydin4ik
对不起,我编辑了这个问题,这是错误的。真的很抱歉 –
所有我可以从这里得到的是,你没有调用你的'SelectAllRecords()'方法;至少从你张贴的东西。 –