条件语句仅在与上一条记录不同时才显示信息 - PHP - MYSQL


Conditional statement only displaying information if it is different from last record - PHP - MYSQL

>我有一个表格,里面装满了以下形式的数据:

value_id value_name value_timestamp

前 5 列具有相同的值名称(具有不同的 id 和时间戳)

我将如何生成一个条件语句,该语句通过并且仅显示具有相同值的名字。即我只想显示第 1 行,而不是 5 行。然后我想显示第 6 行的名称作为它的不同

我试了一下,但没有运气——

 $sql = mysql_query("SELECT * FROM Films_Info") 
 or die(mysql_error()); 
while ($row = mysql_fetch_assoc($sql)) {
$name = $row['value_name'];  
if ("same as previous"($name)) {
    echo $name;
    }
    else 
    {
     //do nothing 
     }
}

谢谢大家

表结果 -

film_id   film_name   film_date
1         example     Thursday
2         example1    Thursday
3         example3    Thursday
4         example4    Friday

所以我想显示film_id 1 及其日期,但跳过 2 和 3 (film_id),然后显示示例 4。

将 sql 语句更改为特定语句。

$sql = mysql_query("SELECT * FROM Films_Info WHERE name='{$name}'") or die(mysql_error());

更新:经过一些聊天讨论,这是你应该做的:

while ($row = mysql_fetch_assoc($sql)) {
    $grouping = $row['film_date'];  
    $movies[$grouping][] = $row
}

这会将您的同日期电影分组到一个数组中供您操作。

不知道

这会有多大帮助,但我过去所做的是创建一个临时的mysql表,其格式与具有数据的上一个表完全相同,然后使用SELECT *FROM temptable WHERE 条件 = 首选条件

然后在使用代码后运行删除表可临时命令删除表本身。