Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表数据未排列_Php_Html_Mysql_Html Table_Pivot - Fatal编程技术网

Php 表数据未排列

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对同一行运行多个查询,以便在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循环中访问它们。这将是在同一行中输出两列的最干净的方法。我将数据放在一个表中。这意味着它包含错误,即使根据语言的语法是正确的——因此不解析代码,因此您得到的错误与代码的语法无关。如果您无法在此处粘贴带有语法错误的代码,该站点将变得非常无用:-