【问题标题】:PHP + MySQL, return in HTML TABLE [duplicate]PHP + MySQL,返回 HTML TABLE [重复]
【发布时间】:2016-12-22 22:56:44
【问题描述】:

我在将 MySQL 查询的返回结果显示到 HTML 表中时遇到问题。 我尝试了很多选项,但返回表不会对齐,或者不会进入表中。 我有以下 PHP 代码:

   <?php
   require_once('modules/config.php');
   $cerereSQL = 'SELECT * FROM `allowed`'; 
   $rezultat = mysqli_query($conexiune, $cerereSQL);
   while($rand = mysqli_fetch_array($rezultat))

   {
   echo "IP: " . $rand["ip"]. "<br>
   Hostname: " . $rand["host"]. "<br> 
   Port: " . $rand["port"]. "<br>
   UserAgent: " . $rand["ua"]. "<br>
   Referrer: " . $rand["ref"]. "<br>
   URL: " . $rand["url"]. "<br>
   Date/Time: " . $rand["dtime"]. "<br><br>";

   }   

   ?>

如何将查询返回到漂亮的 HTML 表中?每次我尝试添加到 PHP Echo 函数时,查询只会在最后一个下方,即使没有
并在中间对齐。

【问题讨论】:

  • 我在这里看不到 HTML 表格标记。向我们展示您的尝试。
  • @Fred-ii- 很棒的发现!我不知道 OP 是怎么错过的……

标签: php html mysql html-table


【解决方案1】:

稍微修改一下你的 SQL,只获取你需要的字段,比如:

SELECT ip as IP, host as Hostname,port as Port ...  FROM

那就做吧

while($rand = mysqli_fetch_array($rezultat)){
    $resultset[]=$rand;
}
$html = "<table><tr><th>".implode('</th><th>',array_keys($resultset[0])).'</th></tr>';
foreach($resultset as $set){
    $html .= "<tr><td>".implode('</td><td>',$set).'</td></tr>';
}
print $html.'</table>';

...

【讨论】:

  • 非常感谢,这是迄今为止最好的。尽管如此,它还是给了我一些数字:0 IP 1 HostName 2 Port 3 UA 4 Ref 5 URL 6 Dtime。我该怎么做才能去掉这些数字?并为所有“列”和边框设置宽度?不过,还是非常感谢!
  • 下载 Bootstrap Css 并将 class='table' 添加到表格中,然后看起来不错:)
  • 照你说的做了,确实更好看。非常感谢。不过,你能帮我把这些数字弄出来吗? 0 IP,1 主机名,2 端口。所以我只能有文字。另外,我可以设置每个“th”宽度吗? IP 的 很大,而主机名很小,即使主机名中有更多文本。
  • 另外,我认为它执行了 2 次查询,结果两次发布到 HTML 表中,例如:ip ip, hostname hostname, port port。
  • 0 ip 来自mysqli_fetch_array($rezultat)) 使用mysqli_fetch_assoc($rezultat)),它也会解决这个问题:query 2 times,因为使用_array,您可以获得两次数据索引和关联,例如[0=&gt;'ipaddrs','ip'=&gt;'ipaddrs']跨度>
猜你喜欢
相关资源
最近更新 更多
热门标签