Данные таблицы не расположены - PullRequest
0 голосов
/ 02 июня 2019

, поскольку я новичок, поэтому я хочу спросить, как я могу выполнить несколько запросов, используя PHP для одной строки, чтобы иметь несколько данных в таблице в формате HTML. Я попытался много попыток, но ничего не получилось, я использую MYSQL в качестве бэкэнда. Я знаю, что я не написал код для первой строки и второго столбца, то есть для второго <td> на держателе калитки, но дело в том, что я хочу, чтобы все данные округлителя поступали во второй <td> раздел держателя калитки. при запуске этого кода он обеспечивает выходной штраф для хранителя калитки, но для всех столбцов округлителя данные начинаются после окончания данных хранителя калитки. Я знаю, почему возникла эта проблема, но как я могу решить эту проблему, скажите ??

КОД ЗДЕСЬ:

<?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 } ?>

click here to see output

1 Ответ

1 голос
/ 02 июня 2019

Вот хороший способ сгенерировать строки показанного вами дисплея.

Сначала используйте этот запрос:

      SELECT name, role FROM teams ORDER BY role DESC;

Он генерирует строки в том порядке, в котором вы хотите, сначала для калитсменов.

Затем используйте этот 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 } ?>

Это отображает строки в наборе результатов из вашего запроса, помещая имена в столбцы в соответствии с их ролями.

В общем случае эта задача называется поворотом таблицы.

Pro tip 1 Старайтесь избегать SELECT * в запросах. Вместо этого дайте названия столбцов, которые вам нужны. Это облегчит чтение чужого кода и может ускорить выполнение ваших запросов.

Pro tip 2 Каждый раз, когда вы ловите себя на повторном использовании одного и того же запроса, когда он варьируется только предложением WHERE, попробуйте использовать один запрос. Это может ускорить работу вашего приложения.

...