如何将 html 风格化表与 php 和 sql 连接起来

Posted

技术标签:

【中文标题】如何将 html 风格化表与 php 和 sql 连接起来【英文标题】:How to concatenate html stylized table with php and sql 【发布时间】:2019-01-06 23:37:39 【问题描述】:

所以,我有这段代码可以返回一个简单的表,其中包含正确的 db 值:

<?php
    echo "<table border='1'>
          <tr>
            <th>Código</th>
            <th>Nome</th>
            <th>Indicou</th>
          </tr>";

    while($coluna_bd_tabela = mysqli_fetch_array($sql_indicador_resul))
        echo "<tr>";
        echo "<td>" . $coluna_bd_tabela['usu_codigo'] . "</td>";
        echo "<td>" . $coluna_bd_tabela['usu_nome'] . "</td>";
        echo "<td>" . $coluna_bd_tabela['usu_indicador_codigo'] . "</td>";
        echo "</tr>";
    

    echo "</table>";
?>

这是一个程式化的表格,没有查询工作:

<table class="table table-striped projects">
  <thead>
    <tr>
      <th style="width: 1%">#</th>
      <th style="width: 20%">Nome</th>
      <th>Membros Recentes</th>
      <th>Project Progress</th>
      <th>Status</th>
      <th style="width: 20%">#Edit</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>echo $coluna_bd_tabela['usu_codigo']</td>
      <td>
        <a> echo $coluna_bd_tabela['usu_nome']</a>
        <br />
        <small>echo $coluna_bd_tabela['usu_indicou']</small>
      </td>
      <td>
        <ul class="list-inline">
          <li>
            <img src="images/user.png" class="avatar" >
          </li>
          <li>
            <img src="images/user.png" class="avatar" >
          </li>
          <li>
            <img src="images/user.png" class="avatar" >
          </li>
          <li>
            <img src="images/user.png" class="avatar" >
          </li>
        </ul>
      </td>
      <td class="project_progress">
        <div class="progress progress_sm">
          <div class="progress-bar bg-green" role="progressbar" data-transitiongoal="57"></div>
        </div>
        <small>57% Complete</small>
      </td>
      <td>
        <button type="button" class="btn btn-success btn-xs">Success</button>
      </td>
      <td>
        <a href="#" class="btn btn-primary btn-xs"><i class="fa fa-folder"></i> View </a>
        <a href="#" class="btn btn-info btn-xs"><i class="fa fa-pencil"></i> Edit </a>
        <a href="#" class="btn btn-danger btn-xs"><i class="fa fa-trash-o"></i> Delete </a>
      </td>
    </tr>
  </tbody>

我想显示带有查询值的程式化表格,但这正在摧毁我。数据库连接很好,这些是包含连接上的查询,它们也可以正常工作,如简单表所示:

$sql_indicador = "SELECT * FROM esc_usuarios WHERE usu_indicador_codigo = '" . $_SESSION['codigo'] . "'";
$sql_indicador_resul = mysqli_query($conexao, $sql_indicador);

【问题讨论】:

^ 那也是。我实际上很困惑您所说的实际上是按您的喜好工作,而哪个不起作用。您可能只需要那些打开/关闭 php 标记...然后用 while 包裹在您的 tbody 中。 如果我错了,请忽略我,但不能使用某些浏览器插件更改 $_SESSION 变量吗?在这种情况下,我建议您转义您在 MySQL 查询中使用的会话变量。 是的,我知道,但它只会显示许多用户中的一个,我想生成数据库中存在的尽可能多的用户 【参考方案1】:

提供完整的解决方案:

<table class="table table-striped projects">
    <thead>
        <tr>
            <th style="width: 1%">#</th>
            <th style="width: 20%">Nome</th>
            <th>Membros Recentes</th>
            <th>Project Progress</th>
            <th>Status</th>
            <th style="width: 20%">#Edit</th>
        </tr>
    </thead>

    <?php while($coluna_bd_tabela = mysqli_fetch_array($sql_indicador_resul)) ?>
            <tbody>
                <tr>
                    <td><?php echo $coluna_bd_tabela['usu_codigo']; ?></td>
                    <td>
                        <a><?php echo $coluna_bd_tabela['usu_nome']; ?></a>
                        <br />
                        <small><?php echo $coluna_bd_tabela['usu_indicou']; ?></small>
                    </td>
                    <td>
                        <ul class="list-inline">
                            <li>
                                <img src="images/user.png" class="avatar" >
                            </li>
                            <li>
                                <img src="images/user.png" class="avatar" >
                            </li>
                            <li>
                                <img src="images/user.png" class="avatar" >
                            </li>
                            <li>
                                <img src="images/user.png" class="avatar" >
                            </li>
                        </ul>
                    </td>
                    <td class="project_progress">
                        <div class="progress progress_sm">
                            <div class="progress-bar bg-green" role="progressbar" data-transitiongoal="57"></div>
                        </div>
                        <small>57% Complete</small>
                    </td>
                    <td>
                        <button type="button" class="btn btn-success btn-xs">Success</button>
                    </td>
                    <td>
                        <a href="#" class="btn btn-primary btn-xs"><i class="fa fa-folder"></i> View </a>
                        <a href="#" class="btn btn-info btn-xs"><i class="fa fa-pencil"></i> Edit </a>
                        <a href="#" class="btn btn-danger btn-xs"><i class="fa fa-trash-o"></i> Delete </a>
                    </td>
                </tr>
            </tbody>
    <?php  ?>
</table>

您忘记在 echo 语句周围使用 &lt;?php?&gt; 开始和结束标记。此外,您错过了每个语句末尾的;。我还将表格的开头和结尾从 PHP 的 echo 中移出,因为我相信这样看起来更清晰。

【讨论】:

已进行编辑。就个人而言,我建议也将&lt;tbody&gt; 移出它。如果它始终只是数据库中的一行,我建议完全摆脱 whileloop 并简单地使用$coluna_bd_tabela = mysqli_fetch_array($sql_indicador_result); 您可能会争辩说&lt;tbody&gt; 应该在while 之外......但在html 规范中,在单个&lt;table&gt; 中包含多个&lt;tbody&gt; 是完全可以的。所以不管怎样都行。甚至可以添加一个独特的 id="block_x" 到那些更容易 javascript 操作。 感谢您的建议,我删除了 @confetti 完成了这项工作,我做了一些更改,并且效果很好,太棒了!

以上是关于如何将 html 风格化表与 php 和 sql 连接起来的主要内容,如果未能解决你的问题,请参考以下文章

sql如何将一个表与另外一张表相关联

如何将两个表与 SQL Server 中第二个表中引用同一列的两列连接起来

你如何在 php 脚本中嵌入你的 sql 查询(编码风格)?

如何将文件表与SQL Server中的现有表链接

如何在PHP中将垂直表与水平视图对齐

sql数据库中如何做到表与表之间字段的同步更新删除?