mpro-gram の回答履歴
- MySQLで連番をつけて抽出したい
以下のようなテーブル(test)があるとします。 id type age --+----+----- 1 A 15 2 B 21 3 C 32 4 A 18 5 A 16 6 D 34 7 A 55 8 C 22 このテーブルを「SELECT * FROM test where type = 'A' order by id」で抽出すると、 id type age --+-----+--- 1 A 15 ---(1) 4 A 18 ---(2) 5 A 16 ---(3) 7 A 55 ---(4) となると思いますが、phpからは「typeAで4番目に登録したもの」としてとしてクエリが 送られてくるので、id7のデータを4として抽出したいのです。 (search.php?type=A&no=4 という感じです) スマートに1文でいけますでしょうか? MySQLのバージョンは4.0.27です。 お詳しい方、どうぞ宜しくお願い致します。
- MySQLでの128次元ベクトルの距離計算高速化
MySQLで128次元ベクトルの距離計算をしたいと考えています。 ※ 距離と書いていますが、見つけたいのは最も近くにあるデータなので厳密な距離である必要はありません。 ただし、登録されているデータ量やクエリの工夫のなさにより速度が出ない(タイムアウトするレベル)状態です。 そこで、高速化する方法についてご享受ください。 【環境】 OS:CentOS mysql:mysql Ver 14.14 Distrib 5.1.58, for redhat-linux-gnu (x86_64) using readline 5.1 DBに登録されているデータ件数:150万件 総データサイズ:1.6GByte(1レコードあたり1k程度と思われます) カラム数:130 id1,id2,pt1,pt2,…,pt128 int(11),int(11),float,float…,float 近似値計算はfloat部分で行います クエリ: select id1, MIN(POWER(pt1-dat1,2) + POWER(pt2-dat2,2) + … POWER(pt128-dat128,2) ) as 'nearest' from testDB group by id1 order by nearest limit 1 ※dat1は実数です 実行時はCPU使用率が100%であるため、計算量がボトルネックになっているのかなと思っています。 これをなんとか高速化する方法はないでしょうか。 SQLのチューニングや設定の見直し、はたまた次元数を減らす方法等なんでも構いません。 不明、不足な点についてはご指摘いただければ追記させて頂きます。 以上です、よろしくお願い致します。
- cakephp動的アソシエーションについて
お世話になっております。 cakephpでアソシエーションをコントローラ側で設定しようとしたところ $this->Model->bindModel(array(‘hasOne’=>array(‘Model_3′))); このような形にされてるのが多いのですが $this->Model->hasMany = array('Model' ); こちらのようにコントローラー側で直接変数に モデル設定してはいけないのでしょうか?
- ベストアンサー
- PHP
- sakura_question
- 回答数1
- MySQLでお薦めの参考書
MySQLでお薦めのリファレンス系の参考書を教えて下さい。 ちなみに普段の開発言語はJavaです。 宜しくお願いします。
- ベストアンサー
- MySQL
- noname#186510
- 回答数1
- cakephpでのデータ取得について質問です。
cakephpで質問です。 説明が下手で申し訳ないのですが。 findメソッドでconditionsとorderを指定して特定のIDから5件を取得するにはどうしたらいいでしょうか? アプリとの連携で現在pagenateで5件表示でページングを行っていますが、アプリ側でデータの削除を行うとズレが生じるため、現在取得されているデータの最後のID以降の5件のデータを取得したいと考えています。 何か良い方法などございましたら回答して頂ければと思います。 よろしくお願いします。
- MYSQLのストアドでの動的SQLについて
MYSQL初心者ですが、よろしくお願いします。 MYSQL(ver5.5)でストアドプロシージャを作成しようと思います。 WEBの検索画面に入力された条件に応じて、WHERE句を動的に作成したいのです。 例えば、WEBの検索画面の検索条件に、 (1)氏名 (2)住所 (3)電話番号 があり、(1)と(3)に入力された場合は、 あるテーブルの検索条件を WHERE 氏名=入力氏名 AND 電話番号=入力電話番号 のように動的にSQLを作成したいです。 (条件に応じて、静的なSQLを使い分けるやりかたはしたくない) このような動的なSQLはストアドプロシージャで作成できのでしょうか? よろしくお願いします。
- ベストアンサー
- MySQL
- susumu_0414
- 回答数3
- codeigniterでサブフォルダの扱い
codeigniterで開発をしようとしています。 まだ慣れていないのかうまくいかないことが多々あって困っています。 たとえば http://hogehoge.com/ のindex.phpを簡易的なURLで表示しようとしたときに .htaccessを RewriteEngine On RewriteBase / RewriteCond $1 !^(index\.php|images|css|js|robots\.txt) RewriteRule ^(.+)$ /index.php?/$1 [L] として、 config.phpのdefaultコントローラをwelcome.php としています。 で、問題なのが http://hogehoge.com/sub/ のindex.phpを表示させようとしたところ、 デフォルトコントローラの設定と.htaccessの設定により TOPページを表示してしまいます。 どのように対処したらいいでしょうか? 教えてください。 よろしくお願いします。
- PHPのGDライブラリについて
掲題の件について質問です。 いま、PHPのGDライブラリを用いて大量の既存のイメージファイル(JPEG)から各三種類ほどのサムネイルを作成しているのですが一点問題があります。 既存のイメージを縮小してサムネイルを作成しているのですが、この元となる画像は 解像度72dpiの画像となるのですが、GDを用いて作成されたサムネイルは96dpiの解像度として作成されるのです。 故合ってdpiは72でなければなりません。 このPHPのGDライブラリで画像のDPIの指定は出来ないでしょうか? 識者の方、よろしければご教授ください。 お願い致します。
- トリガで複数行のインサートを実行したい
mysql 5.5.16で、全体ユーザーから誕生日が来た人だけを選別する仕組みを作っています。 テーブル user (id_1 INT, user_1 TEXT,count_1 INT,nextbirthday_1 DATETIME) テーブル 20years (id_2 INT, user_2 TEXT,nextbirthday_2 DATETIME) userテーブルには1000人の19才ユーザーが配置されています。 このリストから「20才の誕生日が着たら20yearsテーブルに複写させる」ことを考えました。 まずは、EVENT でrecordにある1000人のユーザー全ての count_1 を毎日1回づつUPDATEさせます。 このアップデートをTRIGGERとして、誕生日と現在時間を見合わせ、誕生日が現在時間より古いユーザーは(誕生日が来たものは)20yearに複写させることを考えました。 その案が下記のEVENT とTRIGGERです。 ******************************** CREATE EVENT happybirthday ON SCHEDULE EVERY 1 DAY STARTS '2012-04-25 09:00:00' ENDS '2013-03-31 09:00:00' DO UPDATE record SET count_1 = count_1 + 1; ******************************** DELIMITER // CREATE TRIGGER 20_trigger AFTER UPDATE ON record FOR EACH ROW BEGIN IF(SELECT NEW.nextbitthday_1 <= NOW()) THEN INSERT INTO 20years SET id_2=NEW.id_1,user_2=NEW.user_1,nextbirthday_2=NEW.nextbirthday_1 ON DUPLICATE KEY UPDATE id_2=NEW.id_1; END IF; END; // DELIMITER ; ******************************** FOR EACH ROW BEGIN で全てのユーザーの誕生日を見に行き、誕生日に4人が該当すれば4人が20yearsに複写されるはずです。 しかし実際には、該当する一番上の一人だけしか複写させることが出来ませんでした。 (本日誕生日のユーザーが4人いて、4/16以前が誕生日の人が10人いた場合、それら合計14人のうち、userテーブル上で一番上に位置するユーザーだけが複写される) このトリガの書き方では、FOR EACH ROW BEGINと設定しているにも関わらず、全てのユーザーに対してトリガ作業を行わず、上から一人目を抽出した時点で作業を終了しているようです。 アドバイスを頂けましたら幸いです。 尚、ニーズは誕生日が来たユーザーだけを移動することですので、私の発案の方法に限らずもっといい方法があればアドバイスをお願いいたします。 追伸 IF節を全て外しても同様に一人しか抽出しませんでしたので、IF節が悪さをしている訳ではないようです。 よろしくお願いいたします。
- XMLの子要素追加の順番について
PHP板が見つからなかったのでここに・・・ $dom = new DOMDocument(); $dom->formatOutput = true; $dom->load("test.xml"); で読み込み $child = $parent->appendChild($dom->createElement('child')); $child->appendChild($dom->createCDATASection($_POST['post'])); このように追加を行った場合 XMLには、追加されますが上から順番に追加されていきます。 <parent> <child>追加1</child> <child>追加2</child> <child>追加3</child> <parent> 下記のように先頭に追加する場合はどのようにすればいいのでしょうか? <parent> <child>追加3</child> <child>追加2</child> <child>追加1</child> <parent> ご回答のほどよろしくお願いします。
- PHP、unpack関数でのエラー
unpack関数でバイナリデータを読み込んでる最中に以下のエラーが沢山出てくるのですが どうしてエラーになるのかがわかりません。ご教示いただけないでしょうか。 Warning: unpack() [function.unpack]: Type S: not enough input, need 2, have 0 in ソースのパス on line 149
- AN HTTPDのバーチャルホストでCGIを実行
AN HTTPDのバーチャルホストでCGIを実行する方法を教えて下さい。 htmlの設置場所 ← (1)http://html.com/■■■■■■ が参照URLアドレス cgiの設置場所 ← (2)http://cgi.com/■■■■■■ が参照URLアドレス htmlからcgiを実行する構成ですがテスト環境を構築するにはどのようにすれば宜しいでしょうか? バーチャルホストの設定とC:\WINDOWS\system32\drivers\etc\hostsファイルにプライベートIPアドレスとドメインの関連付けは完了しております。 htmlの設置場所のhtmlはきちんと表示されます。 また、cgiの設置場所に試しにhtmlを設置してみてもきちんと表示されます。 htmlからcgiの呼ぶパスが間違っているのでしょうか? <form action="http://cgi.com/test.cgi" method="post"> どうぞ宜しくお願い致します。
- SQLiteで作ったデータベースの文字コード変換
PHPとSQLiteを使ってサイトを運用している者です。 これまでECU-JPの文字コードでサイトを作ってきたのですが 諸事情によりUTF-8に変更することになりました。 そこで問題が発生したのですが、 データベースがECU-JPで作られたものなのでUTF-8に変更したサイトで 表示しようとすると文字化けが起こります。 そこでECU-JPで作られたデータベースをUTF-8に変換したいのですが どういった方法があるのでしょうか? ちなみにデータベース制作にはSQLiteManagerを使っています。 SQLiteManagerの文字コード設定はECU-JP → UTF-8に変更済みです。 宜しくお願い致します。
- ベストアンサー
- その他(データベース)
- yoshi_catfood
- 回答数1
- cakephpのACLプラグインについて
cakephp1.3にてACLプラグインをテスト導入してみようと、下記のページを参考に入れてみました。 プラグイン導入後、adminにはすべての閲覧権限を与え、memberには閲覧権限を一つも与えませんでしたが、memberのアカウントでも全ページ閲覧できてしまいます。どうしたらACLの制御ができるのかご指導いただけたら幸いです。よろしくお願い致します。 導入参考ページ 「CakePHP ACL – アクセス制御リストを攻略する」 http://hijiriworld.com/web/cakephp-acl-%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E6%94%BB%E7%95%A5%E3%81%99%E3%82%8B/
- mysqlのconfについて
バイナリログの削除についていろいろな サイトを回って確認していたのですが expire_logs_days と expire-logs-days の両方(ハイフンとアンダースコア)が各サイトでバラバラでした。 公式のmysqlのページでは http://dev.mysql.com/doc/refman/5.1-olh/ja/purge-binary-logs.html アンダースコアのようです。 どちらも試してみたのですが どちらも有効?のようです。 何か記述のルールみたいのがあるのでしょうか。 一応、公式に合わせてアンダースコアで設定しようと思いますが このままだとしっくりこないと思い質問させて頂きました。 mysqlに詳しい方、回答よろしくお願いします。
- ベストアンサー
- MySQL
- shiren1489
- 回答数1
- cakephpのトップ画面変更について
/web.com/public_html/が公開ディレクトリとします。 公開ディレクトリ配下に/app/webrootのindex.phpを配置すると、http://web.comにアクセスした人がcakeのデフォルトページにアクセスしてしまいます。(添付画面のような表示) index.phpにはweb.comのトップ画面(普通にクライアントが見てほしい画面)を作りたいのですが、この場合どうしたらよいのでしょうか?? あまりindex.phpにcakeは使わず、各アプリケーション(たとえばFORM等)をcakeで作るというイメージなんでしょうか? cakeは1.3.14で、サーバはxserverを使っています。 よろしくお願いします。
- 締切済み
- PHP
- linuxkomat
- 回答数1
- cakephpのアソシエーションについて
cakephp について勉強中です。 初心者なのでぜひ教えていただきたいのですが、 ・[Profile]と[Image]というテーブルがあり、ProfileについてImagesとのアソシエーションが hasmanyなのですが、 コントローラーで $datas = $this->Profile->find("all"); $this->set("datas",$datas); とした場合、view側でProfileのデータもImageのデータも表示されるにはどうしたらよいのでしょうか。 今は <?php foreach($datas as $data):?> <?php echo $data['Profile']['id']; ?> <?php echo $data['Image']['id']; ?> <?php endforeach; ?> とやっていますが、Imageテーブルのデータが出ません。 大変基本的なことだとは思いますがご指導いただければと思います。よろしくお願いします。
- ベストアンサー
- PHP
- noname#151188
- 回答数1
- この配列のフォーマットの種類を教えてください
こんにちは。 WordPressのSNSプラグインであるBuddyPressで作ったユーザー登録画面のカスタムチェックボックス型のプロフィール情報のデータベースを見ると下記のフォーマットで格納されています。 json形式かと思ったのですが、正しいフォーマットではないようです。 この配列が何の形式かご存じの方は教えてください。 値は仮のものです。また「s:」の後に付く数字は値に紐付くIDですのでここは任意の数字が入るとお考え下さい。 a:3:{ i:0; s:7:"aiueo"; i:1; s:21:"kakikukeko"; i:2; s:11:"sasisuseso"; } 宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- John12345
- 回答数1
- CakePHP内でテーブルを作成する方法
とあるデータを挿入した時に自動的に新しいテーブルが作成されるプログラムを作りたいのですがCakePHPで実現するのはどうすれば良いでしょうか? テーブルを操作するためにはModelを作る必要があるかと思いますが、いまいち情報をさがせずにおります。 参考URLのみでもかまいませんのでよろしくお願い致します。
- Eclipseの対話式コンソール
申し訳ございません。 Eclipse 3.6を使用しています。 対話式コンソールの使い方がわかりません。 ウィンドウをクリックしても文字入力できません。 あと、目的も教えていただけませんか?
- ベストアンサー
- Java
- noname#187796
- 回答数1