人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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[]に入力させたのですが、方法がわかりません。

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

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード: Class Class hoge MySQL PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント

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

SELECT DISTINCT classname FROM hoge WHERE time = '1030'

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

◎質問者からの返答

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


2 ● Mook
●35ポイント

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

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

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


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ