PHP MySQL Smarty ADOdb


以下の場合どうすればいいのでしょうか?

hogeというテーブルに classname というカラムがります。ここには単語が入力されています。また time というカラムもあり数字が入力されています。

行いたいことは time に入力されている値が 1030 のレコードをすべて取得し、classnameに入力されている値を表示したいです。そうなると

while($row = $res->fetchnextObject())
{
$array[] = ("class"=>$row->CLASSNAME);
}
$sma->assign("timeTable", $array);

になるますが、こうなるとclassnameに入っている単語が重複してもかまわず表示してしまうので、重複している場合、1回のみarray[]に入力させたのですが、方法がわかりません。

ソースコードとともにお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2007/01/24 15:29:48
  • 終了:2007/01/25 22:43:53

回答(2件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912007/01/24 16:57:48

ポイント35pt

SQL 文では重複を省くためにDISTINCT句があります。

SELECT DISTINCT classname FROM hoge WHERE time = '1030'

このような感じでどうでしょうか。

id:esecua

ん~SQLでやるほうが良いと思うのですが、わけありでできません。PHPで行う方法はありませんかね?

2007/01/25 03:40:36
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/01/25 11:40:37

ポイント35pt

それでは下記のようでどうでしょうか。

while($row = $res->fetchnextObject())
{
  $classVal = ("class"=>$row->CLASSNAME);

    // 既に配列に有るかを確認し、なければ追加
    if ( in_array( $classArray, $classVal ) == FALSE ) {
        $classArray[] = $classVal;
    }
}
$sma->assign("timeTable", $classArray);

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません