2016-08-16 73 views
-2

我有一个问题,显示MySQL查询返回到HTML表。 我已经尝试了很多选项,但返回表将不会对齐,或不会进入表。 我有下面的PHP代码:PHP + MySQL,返回HTML表

<?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函数中时,查询都会在最后一个下面进行,即使没有
并且在中间对齐。

+1

我在这里没有看到HTML表格标记。告诉我们你的尝试。 –

+0

@ Fred-ii-伟大的发现!我不知道OP如何错过了... – Script47

+1

@ Script47 [*现在在列车上... *](http://www.imdb.com/title/tt0117951/) –

回答

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

非常感谢,这是迄今为止最好的。尽管如此,它给我在上面一些数量:0 \t \t IP 1 \t \t主机名2 \t \t端口3 \t \t UA 4 \t \t文献5 \t \t URL 6 \t DTIME。我能做些什么来去除这些数字?并为所有“列”和边框设置宽度?不过,非常感谢! – unkn0wnx

+0

下载Bootstrap Css并将class ='table'添加到表中,然后它看起来不错:) – JustOnUnderMillions

+0

按照您的说法,它确实看起来更好。非常感谢。不过,你能帮我把这些数字拿出来吗? 0个IP,1个主机名,2个端口。所以我只能有文字。另外,我可以设置每个“th”宽度吗? IP的非常大,主机名很小,即使主机名中有更多文本。 – unkn0wnx