0
我进入网络,因此您看到的数据是交换机/端口信息。使用LIKE和排序的PHP修整和SQL查询
问题:
我只希望 “GE-0/0/X” 的SQL查询的一部分,我希望它是 “GE-0/0/x” 和我只是想整理以“选择不同”的“ge-0/0/x”部分(如果你关注我,只有1个端口)。
由于某些结果上有一些点,我已经发现我可以使用rtrim
来摆脱它们。在结果中还有一些破折号( - ),所以任何帮助摆脱他们,以及非常赞赏。
PHP:
// "nodes" is the number of swithes, thus the ge-[node].
$host_name = 'switch_host_name';
$nodes = 2;
for($node=0;$node<$nodes;$node++){
$ge = '%: ge-'.$node.'%';
$portquery = mysql_query("SELECT service_description FROM service WHERE host_name='$host_name' AND service_description LIKE '$ge'") or die(mysql_error());
while($portarray = mysql_fetch_array($portquery)){
$port = substr($portarray['service_description'],8,10);
echo '<div id="'.$port.'_'.$host_name.'">'.$port.'</div>';
}
echo '<br />';
}
SQL例如:
+-------------------+----------------------------------+
| host_name | service_description |
+-------------------+----------------------------------+
| switch_host_name | IF 151: ge-0/0/28.0 - Status |
| switch_host_name | IF 153: ge-0/0/29 - Status |
| switch_host_name | IF 155: ge-0/0/3 - Description |
| switch_host_name | IF 155: ge-0/0/3 - Status |
| switch_host_name | IF 155: ge-0/0/3.0 - Traffic |
| switch_host_name | IF 195: ge-0/0/5 - Description |
| switch_host_name | IF 195: ge-0/0/5 - Status |
| switch_host_name | IF 195: ge-0/0/5.0 - Traffic |
+-------------------+----------------------------------+
任何线索,链接,导游,TUTS,你可以点我是非常赞赏。 当然,一个解决方案将是伟大的!
在此先感谢。
谢谢,它真的很好!只有一件事,结果是仅仅通过ge-0/0/x中的第一个数字x来排序。例如:ge-0/0/1到ge-0/0/19出现在ge-0/0/2之前。任何解决方案? – fierflash 2012-04-07 06:04:18
不是真的,除非你进一步拆分组件。它由于'/'字符而被排序为一个字符串。因此,我建议将各个位按摩到自己专用的适合类型的字段中。 – 2012-04-07 17:14:41