PHP5 MySQL5の配列処理に関しての質問です。


$sql = mysql_query("SELECT * FROM doc");
while($ro =mysql_fetch_assoc($sql)) {
$data[] = Array(
'author' => $ro['author'] ,
'title' => $ro['title']
);
}

以上のスクリプトでdata配列に格納していきます。


問題は
'title' => $ro['title']
です。

$ro['title']が空だった場合はそのまま空のデータを入れるのではなく、「none」といったテキストデータを格納したいのです。

現状は出力時に空かどうかを判別して、空だったら「none」を出力しています。ちょっとスマートじゃないので格納時に処理したいです。

みなさんよろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/05/04 01:29:16
  • 終了:2007/05/04 02:59:34

ベストアンサー

id:kurukuru-neko No.2

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/05/04 01:48:46

ポイント80pt

>$sql = mysql_query("SELECT * FROM doc");

$sql = mysql_query("SELECT author,ifnull(title,'none') as title FROM doc");

または(未確認)

$sql = mysql_query("SELECT author,if((title is null) or (length(title)<1) ,title,'none') as title FROM doc");


http://dev.mysql.com/doc/refman/4.1/ja/control-flow-functions.ht...

id:tokyosmash

最初のSQLで出来ました!

ありがとうございます。

これでスクリプトも少なくなってスマートになりました。

2007/05/04 02:58:57

その他の回答(1件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/05/04 01:44:34

ポイント20pt
$data[] = Array(
  'author' => $ro['author'] ,
  'title' => $ro['title'] ? $ro['title'] : 'none'
) ;

こんな感じでは?

id:tokyosmash

三項演算子ですよね。

色々と試してみましたが出来ませんでした・・。

2007/05/04 02:58:14
id:kurukuru-neko No.2

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/05/04 01:48:46ここでベストアンサー

ポイント80pt

>$sql = mysql_query("SELECT * FROM doc");

$sql = mysql_query("SELECT author,ifnull(title,'none') as title FROM doc");

または(未確認)

$sql = mysql_query("SELECT author,if((title is null) or (length(title)<1) ,title,'none') as title FROM doc");


http://dev.mysql.com/doc/refman/4.1/ja/control-flow-functions.ht...

id:tokyosmash

最初のSQLで出来ました!

ありがとうございます。

これでスクリプトも少なくなってスマートになりました。

2007/05/04 02:58:57
  • id:kurukuru-neko

    条件が逆でした。
    $sql = mysql_query("SELECT author,if((title is null) or (length(title)<1) ,'none',title) as title FROM doc");
  • id:tokyosmash
    いつもありがとうございます。
    深夜にこれだけ早く解決すると非常に助かります。
    これからもよろしくお願いします!

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

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

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

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