0

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

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。

4

2 回答 2

1

将您的 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
}

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

于 2012-04-22T03:06:13.007 回答
0

不知道这会有多大帮助,但我过去所做的是创建一个临时 mysql 表,其格式与上一个包含数据的表完全相同,然后使用 SELECT *FROM temptable WHERE condition = preferredCondition

然后在使用代码后运行 DROP TABLE temptable 命令删除表本身。

于 2012-04-22T03:13:12.737 回答