在表格中显示XML内容+使用php轻松搜索

时间:2013-09-30 09:57:19

标签: php html mysql xml

首先,我要为我糟糕的英语道歉。

我不是php / html / xml中的专业人士。

我有xml文件“bans.xml”与用户(示例有1个用户):

`
<ban>
<datetime>30/09/2013 08:20:33 GMT Standard Time</datetime>
<nick>Player 1</nick>
<method>Key</method>
<period>Perm</period>
<address>IP ADRESS</address>
<profileid>PROFILE ID</profileid>
<cdkeyhash>871358843</cdkeyhash>
<by>21 from IP name='Im Admin 1'</by>
<reason>Reason 1</reason>
<whenBanned>0001-01-01T00:00:00</whenBanned>
</ban>
`

我想在html或php上显示这个。如果有人喜欢它可以通过mysql base。

我在简单的表格中需要这个,可以按尼克搜索。

显示:

nick / by(如果可能只有name ='nick')/ datetime(如果可能,没有这个“GMT标准时间”)/原因

如果可以自动按默认列表中的“日期”(新的 - >旧)排序?

示例:

`
Search:
[write here your nickname] [[Button Search]] 
_______________________________________
# | NICKNAME | Admin | Date | Reason |
________________________________________
1.| Player x | Im Admin 1 | 30/09/2013 08:21:56 |  Reason 1
2.| Player y | Im Admin 2 | 30/09/2013 08:20:30 |  Test

`

如果有人写昵称并且他在列表中,则只显示他的数据。 如果他不在名单上,则表示“你没有被禁止”这样的事情。

非常感谢帮助的人:) 最好的Regrads。

2 个答案:

答案 0 :(得分:0)

仅指导您拥有自己的想法; - )不要在生产服务器上使用 - 仅指南

  1. 阅读xml
  2. 解析xml
  3. 将xml输出到html表
  4. 应用jquery datatables
  5. HINT * 让你自己的功能提取日期时间,清理代码,这很脏!想想是否存在XML文件并使用PHP上的文件

    <强>样本

    http://www.cdn.houba.info/xml/

    示例代码

    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
        <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables_themeroller.css">
        <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
        <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
      </head>
      </body>
    
      <table id="example">
    
        <thead>
          <tr>        
            <th>Nick</th>
            <th>Admin</th>
            <th>Date / Time</th>
            <th>Reason</th>
          </tr>
        </thead>
    
        <tbody>
    
      <?php
    
      // XXXXXXX - local source, 
      // ex.. 'ban.xml' 
    
      $url = ('XXXXXXX');
      $xml = simplexml_load_file( urlencode($url), null, true);
    
    
      ?>
    
      <?php foreach ( $xml->ban as $b ) :?>
          <tr>        
            <td><?php echo $b->nick; ?></td>
            <td><?php echo $b->by; ?></td>
            <!-- THIS IS DIRTY, JUST FOR EXAMPLE -->
            <td><?php echo mb_substr( $b->datetime, 0, 19 ); ?></td>
            <td><?php echo $b->reason; ?></td>
          </tr>
      <?php endforeach; ?>
    
       </tbody>
      </table>
    
    <script type="text/javascript" charset="utf-8">
      $(document).ready(function() {
          $('#example').dataTable( {
              "sScrollY": 200,
              "bJQueryUI": true,
              "sPaginationType": "full_numbers"
          } );
      } );
    </script> 
    
    
    </body>
    </html> 
    

答案 1 :(得分:0)

感谢大家快速收获。我不是那种不做任何事情的人,在任何地方写“帮助”并等待有人为他做所有工作。

我忘了问题得到我的代码我做什么(不是我的工作 - 谷歌一切找到答案和红色一些tutroials)。

'
<?php
$xml = simplexml_load_file("ban.xml");
?>
<?php 
/* pobieramy datę ostatniej modyfikacji pliku ban.xml */ 
$ostatnio_mod = filemtime("ban.xml"); 
/* Wyświetlamy wynik */ 
print("Generated: "); 
print(date("j-m-y h:i:s", $ostatnio_mod));
?>
<table>
<thead>
<tr>
<th>Nickname</th>
<th>Admin</th>
<th>Date</th>
<th>Reason</th>
</tr>

<?php foreach ($xml->ban as $ban) :?>
<tr>
<td><?php echo $ban->nick; ?></td>
<td><?php echo $ban->by; ?></td>
<td><?php echo $ban->datetime; ?></td>
<td><?php echo $ban->reason; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<br>
<br>
<?php
echo "TOP Admins";
echo "<br>";
$getText = file_get_contents("ban.xml", true);
$Test = substr_count($getText ,"Test");

$Im_Admin = substr_count($getText ,"Im Admin");
$All_Admins = substr_count($getText ,"Im Admin","Test");
$getAdmins = $Test - $Im_Admin ;
echo "Test =". $getAdmins;

echo "<br>";
echo "Im_Admin =". $Im_Admin ;
echo "<br>";
echo "All Admins BANs:". $All_Admins ;
?> 
'

但如果你看不到我能做的一切。我有“搜索”的片段 - 它是最糟糕的:/我不知道如何:1)在管理员中删除 - 21从62.247.128.108名称='测试'并且仅显示“测试”2)在日期 - 剪切“GMT标准时间”

但是我看到Honza.M做的就是我尝试做的事情。我尝试使用你的代码,因为html对我来说是最好的选择,但php仍然可以。

如果有人可以(或你Honza)升级你的代码,那将很酷。我还尝试了另外一件事来做你的代码的移动版本。类似的东西:

'
[Search]
Nickname 1
Nickname 2
Nickname 3
'

当有人在[搜索]中写下他的昵称并告诉他时,他可以按下他的昵称并获得完整的信息页面:

'
You Are Banned
Your Nickname: Nickname 1
Banned by Admin: Test
Date of ban: 1/01/2013 8:08:00

Reason: Cheating
'

好的,我看到很多事情,所以我回去工作:),如果有人有任何建议或可以帮助请写:)这将是非常有帮助的。

非常感谢Honza.M和所有人。