过滤不相同的重复字符串

时间:2014-07-24 19:40:59

标签: php html sql

<body style="color:#000000; font-family: Arial, Helvetica, sans-serif; background-color: #FFCC99; ">
<?php
// Create connection
$con=mysqli_connect("X","X","X","X");
$temp='x';

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT value FROM list ORDER BY id DESC");
while($row = mysqli_fetch_array($result)) {
    if($row['value'] !== $temp)
    {
        echo $row['value'] . "<br>";
        $temp=$row['value'];
    }
}

mysqli_close($con);
?>
<body>

这是输出。

[24.07.2014](22:19:11): NAVI BESS cu ip 93.78.10.222:27005 trimis catre 89.33.242.116:27015
[24.07.2014](22:18:45): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.100:27015
[24.07.2014](22:18:44): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.103:27015
[24.07.2014](22:18:34): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.116:27015
[24.07.2014](22:18:22): czar cu ip 62.72.184.155:27005 trimis catre 89.33.242.100:27015
[24.07.2014](22:17:58): AdeLyn*FcRmA cu ip 109.97.251.181:27005 trimis catre 89.33.242.103:27015
[24.07.2014](22:17:43): AdeLyn*FcRmA cu ip 109.97.251.181:27005 trimis catre 89.33.242.116:27015
[24.07.2014](22:16:59): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.100:27015
[24.07.2014](22:16:04): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.103:27015
[24.07.2014](22:15:56): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.116:27015
[24.07.2014](22:15:44): |TGBR| C4RTM4M cu ip 201.83.208.254:27005 trimis catre 89.33.242.100:27015
[24.07.2014](22:11:48): petike888 cu ip 62.77.206.205:52014 trimis catre 89.33.242.103:27015

由于时间的不同,我的粗略方法显然不起作用。现在改变sql结构已经太晚了,所以有什么方法可以检查字符串并忽略日期吗?

我有非常基本的PHP知识来自一般编码知识,我想我可以比较从最后一个开始的字符串的每个单元格并跳过最后一个,但是从哪里开始if语句?数据的最大长度是200?是否有某种函数来获取字符串的当前长度?这会导致数万行的大量加载时间和使用情况吗?

编辑::同样,我不想获得完全独特的字符串,我真的很喜欢,如果我每天可以显示一行,那么还要分析日期

为时间,日期和字符串添加单独的行将是最后的手段

1 个答案:

答案 0 :(得分:0)

为什么更改sql查询为时已晚?

如果时间戳是标准长度(如同它的那样),那就做一个子串。

在SQL级别执行此操作允许您执行不同的操作,这通常是RDBMS的更便宜的操作。

 Select Distinct Substring(value, 25) As value
 FROM   list 
 ORDER BY id DESC