php - 使用PHP显示来自mysql查询的奇数和偶数行数据
问题描述
我使用 mysql 查询从两队之间的比赛中获取以下数据:
| name |score|
---------------
|John | 7 |
|Danny | 0 |
|John | 7 |
|Peter | 5 |
然后我使用一些 PHP 代码(见下文)来显示数据,如下所示:
|Player 1|Score 1|Player 2|Score 2|
-----------------------------------
|John | 7 |Danny | 0 |
|John | 7 |Peter | 5 |
但我想要:
|Player 1| Score |Player 2|
-----------------------------
|John | 7 - 0 |Danny |
|John | 7 - 5 |Peter |
我用来与 PHP 并排显示来自 sql 的两行的代码(从这里得到启发)是:
// output data of each row
$i = 0;
while($row = $result->fetch_assoc()){
// Odd row opens
if (++$i % 2 != 0) echo "<tr>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['score']."</td>";
// Even row closes
if ($i % 2 == 0) echo "</tr>";
}
我现在挣扎了很多天,但似乎找不到正确的方法。如果它可能有帮助,我可以提供实际的 sql 查询和完整的表结构作为图像。
非常感谢任何帮助。谢谢!
解决方案
您可以先将这些数据拆分为 2 个单独的数组。
// output data of each row
$list1 = [];
$list2 = [];
while($row = $result->fetch_assoc()){
array_push($list1, [
'name' => $row['name'],
'score' => $row['score']
]);
// Get next row
$row = $result->fetch_assoc();
array_push($list2, [
'name' => $row['name'],
'score' => $row['score']
]);
}
然后您可以正确打印它们:
foreach($list1 as $i => $player) {
echo "<td>".$player['name']."</td>";
echo "<td>".$player['score']." - ".$list2[$i]['score']."</td>";
echo "<td>".$list2[$i]['name']."</td>";
}
推荐阅读
- sql - 为特定组应用条件:SQL
- gradle - Liquibase gradle 插件 -> 多个变更日志文件
- clickhouse - “DB::Exception: RangeReader read 7523 rows, but 7550 expected”异常在clickhouse中是什么意思?
- php - PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: 绑定变量数不匹配
- javascript - 展开时保持滚动位置
- 物品
- firebase - 如何通过引用在 Firestore 中搜索文档
- python - Python INFO 日志转到 supervisord 的 stderr_logfile
- firebase - Firebase Realtime DB:按键的值数量对查询结果进行排序
- time-complexity - 为什么下面代码片段的时间复杂度是 O(n) 而空间复杂度是 O(1)
- regex - 删除多行字符串Scala中的特殊字符