aoi2008 の回答履歴
- LIKE %検索単語%
perlのDBIを用いてMYSQLのLIKE %検索単語%を使って掲示板の記事の全文検索を作りました。日本語の検索に関しては意図した記事を拾ってきてくれるのですが、英字の検索単語に関して、その英字だけを含んだ以外の記事も余計に拾ってきてきます。 現在の症状 【僕らは】 【意味】 【宝山】 といった単語が入った記事が検索単語をLIKE %a% として検索をかけると 【a】の検索結果として返ってきます。上記の記事内にはもちろん【a】という単語は含まれていません。 【僕らは】【意味】【宝山】といった単語はあくまでもこういった単語が検索結果として返ってきたというだけで参考までに用意した単語です。他にもあると思われます。原因がまったくわからないので、なぜこういった単語が【a】と検索をかけて引っかかってくるか全くわかりません。 掲示板の記事は以下にいれています テーブル名 post カラム名 log select * from post where log like '%a%'; 使用中の環境(PERL,MYSQLなど)の文字コードはすべてutf8で統一。 文字コードも統一しているし、日本語では意図したとおり動いてくれるので原因がまったくわかりません。お知恵をお貸しください。
- LIKE %検索単語%
perlのDBIを用いてMYSQLのLIKE %検索単語%を使って掲示板の記事の全文検索を作りました。日本語の検索に関しては意図した記事を拾ってきてくれるのですが、英字の検索単語に関して、その英字だけを含んだ以外の記事も余計に拾ってきてきます。 現在の症状 【僕らは】 【意味】 【宝山】 といった単語が入った記事が検索単語をLIKE %a% として検索をかけると 【a】の検索結果として返ってきます。上記の記事内にはもちろん【a】という単語は含まれていません。 【僕らは】【意味】【宝山】といった単語はあくまでもこういった単語が検索結果として返ってきたというだけで参考までに用意した単語です。他にもあると思われます。原因がまったくわからないので、なぜこういった単語が【a】と検索をかけて引っかかってくるか全くわかりません。 掲示板の記事は以下にいれています テーブル名 post カラム名 log select * from post where log like '%a%'; 使用中の環境(PERL,MYSQLなど)の文字コードはすべてutf8で統一。 文字コードも統一しているし、日本語では意図したとおり動いてくれるので原因がまったくわかりません。お知恵をお貸しください。
- 初心者ですがupdateがうまくいかずに困っています
PHPとMysqlで顧客管理ソフトを作っていますが、updateが「会社登録内容の更新を完了しました。」と出るのですが、見てみると変更されていません。どなたか原因を教えて頂けないでしょうか。 require_once("config.php"); //MySQLに接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQLに接続できませんでした!"); } mysql_query("set names sjis"); //データベースを選択・ $selectdb = mysql_select_db($DBNAME,$con); //idに一致するレコード数を取得します。 $sql = "select count(*) as cnt from kaisya where id = $id "; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); $reccnt = $col["cnt"]; mysql_free_result($rst); if ($reccnt > 0){ $sql ="update kaisya set syamei = '" . $syamei ."', yomi = '" . $yomi ."', gyousyu = '" . $gyousyu ."', zip = '" . $zip ."', fuken = '" . $fuken ."', sityou = '" . $sityou ."', tatemono = '" . $tatemono ."', tel = '" . $tel ."', fax = '" . $fax ."', tantou = '" . $tantou ."', yomi1 = '" . $yomi1 ."', yakusyoku = '" . $yakusyoku ."', keitai = '" . $keitai ."', mail = '" . $mail ."', tantou1 = '" . $tantou1 ."', memo = '" . $memo . "' where id = ' $id '" ; $rst = mysql_query($sql, $con); if ($rst) { //成功したとき $body = "<B>会社登録内容の更新を完了しました。</B>"; } else { //失敗したとき $body = mysql_error(); } print "$body<BR><BR><BR><A href='kensaku.php'>検索一覧へ戻る</A>"; } else { //一致するレコードがないとき // $body =mysql_error(); print "<B>間違っています!</B><BR><BR><INPUT type='button' value=' 戻る ' onClick='history.back()'>"; } //MySQLとの接続を閉じます $con = mysql_close($con);
- 初心者ですがupdateがうまくいかずに困っています
PHPとMysqlで顧客管理ソフトを作っていますが、updateが「会社登録内容の更新を完了しました。」と出るのですが、見てみると変更されていません。どなたか原因を教えて頂けないでしょうか。 require_once("config.php"); //MySQLに接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQLに接続できませんでした!"); } mysql_query("set names sjis"); //データベースを選択・ $selectdb = mysql_select_db($DBNAME,$con); //idに一致するレコード数を取得します。 $sql = "select count(*) as cnt from kaisya where id = $id "; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); $reccnt = $col["cnt"]; mysql_free_result($rst); if ($reccnt > 0){ $sql ="update kaisya set syamei = '" . $syamei ."', yomi = '" . $yomi ."', gyousyu = '" . $gyousyu ."', zip = '" . $zip ."', fuken = '" . $fuken ."', sityou = '" . $sityou ."', tatemono = '" . $tatemono ."', tel = '" . $tel ."', fax = '" . $fax ."', tantou = '" . $tantou ."', yomi1 = '" . $yomi1 ."', yakusyoku = '" . $yakusyoku ."', keitai = '" . $keitai ."', mail = '" . $mail ."', tantou1 = '" . $tantou1 ."', memo = '" . $memo . "' where id = ' $id '" ; $rst = mysql_query($sql, $con); if ($rst) { //成功したとき $body = "<B>会社登録内容の更新を完了しました。</B>"; } else { //失敗したとき $body = mysql_error(); } print "$body<BR><BR><BR><A href='kensaku.php'>検索一覧へ戻る</A>"; } else { //一致するレコードがないとき // $body =mysql_error(); print "<B>間違っています!</B><BR><BR><INPUT type='button' value=' 戻る ' onClick='history.back()'>"; } //MySQLとの接続を閉じます $con = mysql_close($con);
- 3つの関連するテーブルから必要な情報を取り出す
現在、データベースで小規模の検索システムを製作しているのですが、詰まってしまったところがあるので、質問をさせて頂きたいです。 まず、最初に取り出したいテーブルの構成を書きたいと思います。 "Tag" "Works" "EquipTag" の三つのテーブルがあり、 Tag /* Tagをあらわすテーブル*/ id: primaryキー name: 名前 created_at: 作成日 Works /* 作品を表すテーブル*/ id: primary キー name: 名前 created_at: 作成日 Equip_Tag /*作品とタグの関連を保存するテーブル*/ id: primaryキー works_id: 外部キー Worksのprimaryキーに対して tag_id: 外部キー Tagのprimaryキーに対して となっています。 上記のテーブルから、 「タグの名前に '%hoge%'を持ち、かつ、作品の名前に'%hogehoge%'を含む作品一覧」を取得したいのですが、どういった方法が考えられるでしょうか? また、Worksのidが同じものは2度表示しないようにしたいと考えています。 使用しているDBは、MySQL のバージョン5です。 どうか宜しくお願いします。
- 初心者ですがupdateがうまくいかずに困っています
PHPとMysqlで顧客管理ソフトを作っていますが、updateが「会社登録内容の更新を完了しました。」と出るのですが、見てみると変更されていません。どなたか原因を教えて頂けないでしょうか。 require_once("config.php"); //MySQLに接続 if (! $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)) { exit("MySQLに接続できませんでした!"); } mysql_query("set names sjis"); //データベースを選択・ $selectdb = mysql_select_db($DBNAME,$con); //idに一致するレコード数を取得します。 $sql = "select count(*) as cnt from kaisya where id = $id "; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); $reccnt = $col["cnt"]; mysql_free_result($rst); if ($reccnt > 0){ $sql ="update kaisya set syamei = '" . $syamei ."', yomi = '" . $yomi ."', gyousyu = '" . $gyousyu ."', zip = '" . $zip ."', fuken = '" . $fuken ."', sityou = '" . $sityou ."', tatemono = '" . $tatemono ."', tel = '" . $tel ."', fax = '" . $fax ."', tantou = '" . $tantou ."', yomi1 = '" . $yomi1 ."', yakusyoku = '" . $yakusyoku ."', keitai = '" . $keitai ."', mail = '" . $mail ."', tantou1 = '" . $tantou1 ."', memo = '" . $memo . "' where id = ' $id '" ; $rst = mysql_query($sql, $con); if ($rst) { //成功したとき $body = "<B>会社登録内容の更新を完了しました。</B>"; } else { //失敗したとき $body = mysql_error(); } print "$body<BR><BR><BR><A href='kensaku.php'>検索一覧へ戻る</A>"; } else { //一致するレコードがないとき // $body =mysql_error(); print "<B>間違っています!</B><BR><BR><INPUT type='button' value=' 戻る ' onClick='history.back()'>"; } //MySQLとの接続を閉じます $con = mysql_close($con);
- ”メンバ指定”で表示させる順がわかりません
一番したにかいたプログラムなんですが、 System.out.println("**********基本的なメンバ操作***********"); の次の表示させるコードは System.out.println("+++++++++++クラスメンバをインスタンス名で操作+++++++++++"); となっているのに、実行結果が **********基本的なメンバ操作*********** インスタンスメソッド: インスタンス変数=100クラス変数=300 インスタンスメソッド: インスタンス変数=200クラス変数=300 クラスメソッド;クラス変数=300 +++++++++++クラスメンバをインスタンス名で操作+++++++++++ d1のクラス変数=400 d2のクラス変数=400 MyClsのクラス変数=400 でした。 どういう順で処理されているのでしょうか。 超初心者です。変なことをたぶん聞いていると思いますが教えてください。 class MyCls { int ins_hensu = 0; static int cls_hensu = 0; public void ins_method() { System.out.println("インスタンスメソッド: インスタンス変数=" + ins_hensu + "クラス変数=" + cls_hensu); } public static void cls_method(){ System.out.println("クラスメソッド;クラス変数=" + cls_hensu); } } public class JaCls08{ public static void main(String args[]) { MyCls d1 = new MyCls(),d2 = new MyCls(); System.out.println("**********基本的なメンバ操作***********"); d1.ins_hensu = 100; d2.ins_hensu = 200; MyCls.cls_hensu = 300; d1.ins_method(); d2.ins_method(); MyCls.cls_method(); System.out.println("+++++++++++クラスメンバをインスタンス名で操作+++++++++++"); d1.cls_hensu =400; System.out.println("d1のクラス変数=" + d1.cls_hensu); System.out.println("d2のクラス変数=" + d2.cls_hensu); System.out.println("MyClsのクラス変数=" + MyCls.cls_hensu); } }
- ベストアンサー
- Java
- somehow123
- 回答数1
- 1
- 2