Php 表数据未排列
因为我是一个初学者,所以我想问一下如何使用PHP对同一行运行多个查询,以便在html表格中有多个数据。我尝试了很多次,但都没有成功,我使用MYSQL作为后端。我知道我还没有为第一行和第二列编写代码,即关于wicket keeper的第二列,但问题是我希望在wicket keeper部分的第二列中包含更全面的数据。运行此代码时,它为wicket keeper提供输出,但对于all rounder列,数据在wicket keeper数据结束后开始。我知道为什么会出现这个问题,但我如何解决这个问题,请告诉我 代码如下:Php 表数据未排列,php,html,mysql,html-table,pivot,Php,Html,Mysql,Html Table,Pivot,因为我是一个初学者,所以我想问一下如何使用PHP对同一行运行多个查询,以便在html表格中有多个数据。我尝试了很多次,但都没有成功,我使用MYSQL作为后端。我知道我还没有为第一行和第二列编写代码,即关于wicket keeper的第二列,但问题是我希望在wicket keeper部分的第二列中包含更全面的数据。运行此代码时,它为wicket keeper提供输出,但对于all rounder列,数据在wicket keeper数据结束后开始。我知道为什么会出现这个问题,但我如何解决这个问题,请
<?php
$sql="select * from teams where role = 'WicketKeeper'";
$result=mysqli_query($conn,$sql) or die(mysqli_error());
while($row=mysqli_fetch_assoc($result)){
?>
<tr>
<td><?php echo $row["name"] ?></td>
<td></td>
<td></td>
<td></td>
</tr>
<?php } ?>
<?php
$sql="select * from teams where role = 'AllRounder'";
$result=mysqli_query($conn,$sql) or die(mysqli_error());
while($row=mysqli_fetch_assoc($result)){
?>
<tr>
<td></td>
<td><?php echo $row["name"] ?></td>
<td></td>
<td></td>
</tr>
<?php } ?>
下面是一个生成显示行的好方法 首先,使用此查询:
SELECT name, role FROM teams ORDER BY role DESC;
它按照您想要的顺序生成行,首先是wicketkeepers
然后,使用此php代码生成显示
<?php
$sql="SELECT name, role FROM teams ORDER BY role DESC";
$result=mysqli_query($conn,$sql) or die(mysqli_error());
while($row=mysqli_fetch_assoc($result)){
$role = $row["role"];
$name = $row["name"];
$wicketkeeper = $role == "WicketKeeper" ? $name : "";
$allrounder = $role == "AllRounder" ? $name : "";
?>
<tr>
<td><?php echo $wicketkeeper ?></td>
<td><?php echo $allrounder ?></td>
<td></td>
<td></td>
</tr>
<?php } ?>
这将呈现查询结果集中的行,并根据它们的角色将名称放置在列中
在一般情况下,此任务称为数据透视表
专业提示1在查询中尽量避免选择*。而是给出所需列的名称。这使您的代码更容易让陌生人阅读,并可能使您的查询运行得更快
Pro tip 2每当您发现自己在重复使用同一个查询,而该查询仅因where子句而不同时,请尝试使用单个查询。这可以使您的应用程序运行得更快。代码必须作为文本粘贴在此处。我试图粘贴它,但这里的意思是,它包含错误,即使根据语言使用正确的语法。我建议添加一个联接,以便您可以同时查询两个表,并在单个while循环中访问它们。这将是在同一行中输出两列的最干净的方法。我将数据放在一个表中。这意味着它包含错误,即使根据语言的语法是正确的——因此不解析代码,因此您得到的错误与代码的语法无关。如果您无法在此处粘贴带有语法错误的代码,该站点将变得非常无用:-