Как разместить значения с помощью html-кода в PHP?

Я пытаюсь перенести значение из таблицы MySQL в PHP, я использую HTML-код, но не уверен, как отображать значения.

Как разместить значения с помощью html-кода в PHP?

Как разместить значения с помощью html-кода в PHP?

Вот мой код:

$codigoHTML= '<table width = "100%" border = "1" class = "table table-

hover">';
$consultaSucursales = "SELECT id,empresa FROM empresa";
$ejecutar = mysql_query($consultaSucursales);
while($fila = mysql_fetch_array($ejecutar))
{
    $codigoHTML.= '<td><strong><center>'.$fila['empresa'].'</center></strong></td>';
    $respuesta = datos($fila['id']);
    $codigoHTML.= $respuesta;
}

$codigoHTML.='
</tbody>
</table>';

echo $codigoHTML;

function datos($id_sucursal)
{
    $consultaCantidades = "SELECT cantidad FROM producto WHERE id_sucursal = '$id_sucursal'";
    $ejecutar2 = mysql_query($consultaCantidades);
    $codigoHTML2 = "";
    while($fila2 = mysql_fetch_array($ejecutar2))
    {
        $codigoHTML2.= '<tr>';                   
            $codigoHTML2.= '<td>'.$fila2['cantidad'].'</td>';
        $codigoHTML2.= '</tr>';    
    }
    return $codigoHTML2;
}

Идентификатор столбца в таблице product is not in table is an example

Diego Freyre 20.04.2018 20:04

Что конкретно идет не так?

showdev 20.04.2018 20:07

данные, которые я показываю, не соответствуют тому, что я хочу на картинке

Diego Freyre 20.04.2018 20:13

Я не могу выполнить ваш код, поэтому я не уверен, что не так. Что делает ваш текущий код и чем он отличается от того, что вы хотите?

showdev 20.04.2018 20:16

когда цикл завершается, под последними результатами отображается следующая "empresa", и я хочу показать ее сбоку в виде столбцов для каждой компании, как показано на изображении.

Diego Freyre 20.04.2018 20:20

Кажется, что ваш первый цикл while выводит элементы <td> непосредственно внутри <table>, без каких-либо <tr>. Также есть несоответствующий </tbody> без открывающегося <tbody>. Чтобы прояснить, предназначены ли "empressa" для заголовков таблиц с названиями компаний? И в каждой колонке "императрицы" ниже указаны различные количества "кантидад"?

showdev 20.04.2018 20:38

Я уже удалил оставшиеся теги, и да, это

Diego Freyre 20.04.2018 20:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
74
2

Ответы 2

Я предлагаю создать массив строк, который вы можете легко вывести. Я думаю о структуре примерно так:

EMPRESA
(
    [1] => empresa 1
    [2] => empresa 2
    [3] => empresa 3
)

CANTIDAD
(
    [1] => Array
        (
            [1] => 2
            [2] => 7
            [3] => 9
        )

    [2] => Array
        (
            [1] => 56
            [2] => 5
            [3] => 8
        )

    [3] => Array
        (
            [1] => 78
            [2] => 5
            [3] => 9
        )

    [4] => Array
        (
            [1] => 100
            [3] => 100
        )

    [5] => Array
        (
            [3] => 1000
        )

)

Вот как я создаю эти массивы:

<?php

$empresa=$cantidad=array();

$consultaSucursales = "SELECT e.`id`,e.`empresa`,p.`cantidad`
                       FROM `empresa` e
                       LEFT JOIN `producto` p ON (p.`id_sucursal`=e.`id`)
                       WHERE 1;";

$ejecutar = mysql_query($consultaSucursales);

$row=0;
while($fila = mysql_fetch_array($ejecutar)) {
  $row++;
  if (empty($empresa[$fila['id']])) {
    $empresa[$fila['id']]=$fila['empresa'];
  }
  $cantidad[$row][$fila['id']]=$fila['cantidad'];
}

?>

Затем выведите данные:

<table width = "100%" border = "1" class = "table table-hover">
  <thead>
    <tr>
      <th>Nom</th>
      <th><?=implode('</th><th>',$empresa);?></th>
    </tr>
  </thead>
  <tbody><?php

    foreach ($cantidad as $row_number => $this_row) {

      ?><tr>
        <td><?=$row_number?></td><?php

        foreach (array_keys($empresa) as $empresa_id) {
          ?><td><?=$this_row[$empresa_id]?:''?></td><?php
        }

      ?></tr><?php

    }

  ?></tbody>
</table>

Что дает следующий результат:

<table class = "table table-hover" width = "100%" border = "1">
  <thead>
    <tr>
      <th>Nom</th>
      <th>empresa 1</th>
      <th>empresa 2</th>
      <th>empresa 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>7</td>
      <td>9</td>
    </tr>
    <tr>
      <td>2</td>
      <td>56</td>
      <td>5</td>
      <td>8</td>
    </tr>
    <tr>
      <td>3</td>
      <td>78</td>
      <td>5</td>
      <td>9</td>
    </tr>
    <tr>
      <td>4</td>
      <td>100</td>
      <td></td>
      <td>100</td>
    </tr>
    <tr>
      <td>5</td>
      <td></td>
      <td></td>
      <td>1000</td>
    </tr>
  </tbody>
</table>

Я также сильно рекомендую использовать mysqli или PDO, как Функции mysql_* обесцениваются.

Спасибо всем, после внесения некоторых изменений я решил взять другую таблицу в качестве сводной, которая называется "producto", если я добавлю новую "empresa", она будет динамически отображаться.

результат следующий результат следующий

код следующий

 $codigoHTML= '<table width = "100%" border = "1" class = "table table-hover">';
$consultaSucursales = "SELECT id,empresa FROM empresa";
$ejecutar = mysql_query($consultaSucursales);
$codigoHTML.= '<td><strong><center>Producto</center></strong></td>';
while($fila = mysql_fetch_array($ejecutar))
{
    $codigoHTML.= '<td><strong><center>'.$fila['empresa'].'</center></strong></td>';
}

$consultaCods = "SELECT DISTINCT cod FROM producto";
$ejecutaC = mysql_query($consultaCods);
while($filac = mysql_fetch_array($ejecutaC))
{
    $cod = $filac['cod'];
    $codigoHTML.='<tr>';
    $codigoHTML.= '<td>'.$cod.'</td>';
       $consultaSucursales = "SELECT id,empresa FROM empresa";
       $ejecutar = mysql_query($consultaSucursales);
       while($fila = mysql_fetch_array($ejecutar))
       {
           $id_sucursal = $fila['id'];
           $respuesta = datos($id_sucursal,$cod);
           $codigoHTML.= $respuesta;
       }
    $codigoHTML.='</tr>';
}


$codigoHTML.='
</table>';

echo $codigoHTML;

function datos($id_sucursal,$cod)
{
    $consultaCantidades = "SELECT cantidad FROM producto WHERE id_sucursal = '$id_sucursal' AND cod = '$cod'";
    $ejecutar2 = mysql_query($consultaCantidades);
    $codigoHTML2 = "";

    while($fila2 = mysql_fetch_array($ejecutar2))
    {                              
        $codigoHTML2.= '<td>'.$fila2['cantidad'].'</td>';           
    }
    return $codigoHTML2;
}

Другие вопросы по теме