• ベストアンサー

whereについて

お世話になります。 DB抽出はある程度まで出来たのですが、最後の部分で引っかかります。 d_koukokuテーブル にある k_name の中から「音楽」と言うものだけを取りたいのですが検索がうまく出来ていないようです。 以下になります。 <? ////////////////////音楽取得//////////////////// $rs=$DB->query("SELECT k_name,link_url_i,k_name_display,id,cate FROM ".$k_koukoku_table." where k_name='音楽'"); ?> となります。 表示結果セットは以下になります。(こちらは多分関係ないと思いますが一応載せて見ます。) <?php $smarty->assign("k_name",$k_name);?> <?php $smarty->assign("link_url_i",$link_url_i);?> <?php $smarty->assign("k_name_display",$k_name_display);?> <?php $smarty->assign("id",$id);?> <?php $smarty->assign("cate",$cate);?> <?php while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){ ?> <TABLE> <tr bgcolor=""> <td><font size="1" COLOR=""><a href="cate_page_out.php?k_outnum=<?php print_r($row["id"]= mb_convert_encoding($row["id"],"SJIS","EUC-JP")); ?>" utn><?php print_r($row["k_name_display"]= mb_convert_encoding($row["k_name_display"],"SJIS","EUC-JP")); ?></a></td> </tr> </TABLE> <?php } ?> where句を使用しないと普通に全部出ます。 上記のようにwhere「音楽」とするとエラーは起こらず結果が表示されません。 後一歩ですよね? お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ESE_SE
  • ベストアンサー率34% (157/458)
回答No.1

まさかk_nameに保存されているデータが'音楽データ' '音楽 'なんてのになってませんよね? イコールで結ぶと完全一致条件になるので上記データは出て来ません。 部分一致にするのなら WHERE k_name LIKE '%音楽%' としましょう。

koloru
質問者

お礼

ちなみに完全一致でいいんです。

koloru
質問者

補足

有り難う御座います。 音楽とかじゃないです。 普通のテキストデーダになります。 WHERE k_name LIKE '%音楽%' 試してみましたが出ませんでした。 表示結果が間違ってるんですかね。。。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

<? ////////////////////音楽取得//////////////////// $rs=$DB->query("SELECT k_name,link_url_i,k_name_display,id,cate FROM ".$k_koukoku_table. " where k_name='音楽'"); ?> とするとどうなりますか?

koloru
質問者

お礼

ご回答有り難う御座います。 試してみましたがやはり白紙でした。。。 文字コードの可能性もあるとアドバイスを受けましたのでおそらくコード指定がないので読み込めていないとも思います。 エラーもないので文字コードが重要なんですかね。 有り難う御座いました!

koloru
質問者

補足

ちなみに現在の文字コードはこちらです。 CONVERT( _utf8 '音楽' USING ujis ) EUCに変更する必要性はございますかね・・・ 有り難うございました。

関連するQ&A