我正在尝试列出体育联盟的校内活动。我目前的php foreach吐出了所有的联赛和产品。大。
现在我想只显示1项运动(课程),例如“篮球”,然后在列中列出多个联赛产品(提供)。
我不能再做一个循环了 如果$ nt ['course'] ==“篮球”因为这些会改变
不确定我的mssql查询是否需要更改,或者我是否可以使用另一个foreach循环?
查询
$sql2 = SELECT category
,course
,offering
,Semester
,spots
,registerLink from dbtable WHERE semester like "%Fall 2016%" and category like "%Leagues%" ORDER BY course
$rs= mssql_query ($sql2, $con)
or die("Error!");
$result = array();
if (mssql_num_rows($rs)) {
while ($row = mssql_fetch_assoc($rs)) {
$result[] = $row;
}
}
return $result;
exit();
我的foreach循环视图:
<?php
foreach ($data as $nt) {
echo "<div class='col-md-2'>";
echo "<h2><a href='#'>".$nt['course']."</a></h2>";
echo "<h3>".$nt['offering']."</h3>";
echo "<h4>".$nt['Semester']."</h4>";
echo "<p>".$nt['spots']."</p>";
echo "<button>".$nt['registerLink']."</button>";
echo "</div>";
}
所以只是为了澄清: category =“Leagues”在我的查询中 球场=篮球和国旗足球等
答案 0 :(得分:1)
这很简单: -
而不是
$result[] = $row;
做
$result[ $row['course']][] = $row;
答案 1 :(得分:0)
简单的解决方案:
$result = array();
if (mssql_num_rows($rs)) {
while ($row = mssql_fetch_assoc($rs)) {
if(!in_array($row["course"], $result))
{
array_push($result, $row["course"]);
}
array_push($result[$row["course"]], $row);
}
}
return $result;
在视图中循环:
foreach($data as $key => $value)
{
echo "<h1>".$key."</h1>";
foreach($value as $nt)
{
echo "<div class='col-md-2'>";
echo "<h3>".$nt['offering']."</h3>";
echo "<h4>".$nt['Semester']."</h4>";
echo "<p>".$nt['spots']."</p>";
echo "<button>".$nt['registerLink']."</button>";
echo "</div>";
}
}