0

次の形式のデータでいっぱいのテーブルがあります

value_id value_name value_timestamp

最初の 5 列の値の名前は同じです (ID とタイムスタンプが異なります)。

同じ値を持つ最初の名前のみを表示する条件ステートメントを作成するにはどうすればよいでしょうか。つまり、5 行ではなく、1 行だけを表示したいのです。次に、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を使用することです。

次に、コードが使用された後、DROPTABLEtemptableコマンドを実行してテーブル自体を削除しました。

于 2012-04-22T03:13:12.737 に答える