mpro-gram の回答履歴
- MYSQLで全てのカラムから検索する。
tbというテーブルのbangというカラムに4が含まれていれば表示というのは select * from tb where (bang) like '%4%' ; という形になりますが、このtbテーブルにさらにname,tukiというカラムがあったとして カラムに関係なくレコードのどこかに4が入っていれば抽出するというSQL文が書きたいです。 select * from tb where bang like '%4%' or name like '%4%' or tuki like '%4%' ; と書くことで何とか今まではやってきたのですが、カラム数が増えてきてしまったので、ものすごく長いSQL文なってしまいました。 もう少しスマートにする方法はありませんか?
- ベストアンサー
- MySQL
- satisfied999
- 回答数2
- SQLITEでCSVインポート方法
SQLITEのデータベースにCSVをインポートしたいと思っています。 ローカルにCSVファイルを配置し、サーバーに取り込む事をしたいのですが、疑問が1点。 Access VBAを利用しようと思っています。下記のサイトを参考にしています。 http://billyboy.blog81.fc2.com/blog-entry-203.html# INSERTをかければ問題なくインサートする事ができました。ただ、1万件のデータを取り込む時は1万回Insertを発行することになります。 かなり時間がかかるため、良い方法がないでしょうか? 今後はPHPとかも勉強して、PHPからも同様の事がやりたいと思っています。 CSVをデータベースに高速に取り込む方法があったらお教えください。宜しくお願いします。
- ベストアンサー
- その他(データベース)
- mellow91
- 回答数1
- CakePHP2でのfindについての質問
CakePHP2で、findで得た結果をリストでまとめたいと思っています。 さらにその結果をアソシエーション先の大項目でまとめたいです。 言葉ではうまく伝えられないので、以下に例を示します。 例)ユーザーが好きなワインを複数登録し、 「原産国アメリカが6本」「原産国フランスが7本」 のように一覧で国ごとに数をまとめ、 さらにワインの詳細も見れるようにしたいです。 ■Userテーブル カラム:id,ユーザー名 hasMany:好きなワインテーブル ■ワインテーブル カラム:id,ワイン名,kuni_id belongsTo:国テーブル hasMany:好きなワインテーブル ■国テーブル カラム:id,国名 hasMany:ワインテーブル ■好きなワインテーブル カラム:id,user_id,wine_id belongsTo:Userテーブル、ワインテーブル 以上のようなテーブル構成、アソシエーションで、 ユーザーのマイページで、自分が好きなワインに登録した物を ・原産国フランス7本 ・原産国アメリカ6本 のように原産国でまとめ、さらにワインの詳細も見れるようにするには どのような方法を用いれば可能でしょうか? 「好きなワインテーブル」からユーザーidでfindすれば 単純に一覧は取れるのですが、それを国ごとにまとめる方法が分からず困っています。 もし分かる方いらしたら教えてください。 宜しくお願い致します。
- php、PDOでの接続とクエリの記述位置
php初心者です。 (DB:mysqlをphp(PDO)で操作) 最近PDOの勉強をし始めましたが、記述の際に (接続に関する部分)と(クエリに関する部分) の記述位置に関してのルールがはっきりしません。 上記2つを続けて記述をすれば問題なく動くのですが、例えば、 ----------------------------------------------------------------------- try{ $link = new PDO($db, $user, $pass); }catch(PDOException $e){ echo 'データーベースに接続できません。' . $e->getMessage(); } ----------------------------------------------------------------------- だけ先に記述しておき(接続しておいて)、その後htmlやphpの記述をはさみ、 必要な部分で以下のように(クエリ)の記述をした場合、動きません。 <?php $stmt = $link->query('SELECT * FROM booked order by rsvTime asc'); ?> <table border="1"> <tr> <th>予約時間</th> <th class="wdt_at">施術開始</th> <th class="wdt_at">施術終了</th> <th>予約未、済</th> </tr> <?php if (!$stmt) { $info = $link->errorInfo(); exit($info[2]); } (※ここでクエリしたものを使用) ↓ while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { print "<tr>\n"; print "<td>".htmlspecialchars($row["rsvTime"])."</td>\n"; print "<td>".htmlspecialchars($row["startTime"])."</td>\n"; print "<td>".htmlspecialchars($row["finishTime"])."</td>\n"; print "<td>".htmlspecialchars($row["kafuka"])."</td>\n"; print "</tr>\n"; } print "</table>"; ?> ■質問内容 そこで質問です。PDOの接続とクエリの記述位置やその他のルールを 詳しく教えて下さい。 よろしくお願いします。
- CakePHPでディレクトリ分けをしたい
CakePHP2.3.4、サーバーはロリポップにて開発を行っております。 やりたいことは、コントローラーのディレクトリ分けです。 以下のようなディレクトリ構造にして、 app |_Controller | |_admin | | |_LoginController.php ※メソッドはindex()のみと仮定 | | |_・・・.php | | | |_ListController.php ※メソッドはindex()のみと仮定 | |_View ※Viewも分けますが、今は省略しています。 アプリケーション「LoginCntroller.php」にアクセスする場合は http://○○.ne.jp/admin/login/index アプリケーション「ListController.php」にアクセスする場合は http://○○.ne.jp/list/index でアクセスしたいです。 自分なりに調べて、「bootstrap.php」に以下追加、 App::build(array( 'Controller' => array(ROOT.DS.APP_DIR.DS.'Controllers'.DS.'Admin'.DS,) )); 「route.php」に以下追加、 Router::connect('/admin/login', array('controller' => 'login', 'action' => 'index')); などと行ってみてはいるのですが、結果、以下のエラーになってしまいます。 Missing Controller Error: AdminController could not be found. Error: Create the class AdminController below in file: app/Controller/AdminController.php <?php class AdminController extends AppController { } Controller直下に配置したアプリケーションに関しては問題なく実行されます。 何が悪いのか見当もつかず困っております。 よろしければご教授いただけませんでしょうか。
- Windows7のMySQLの環境構築について
はじめまして、私は、本業は3DCGで趣味でWeb系のツール開発をしている者です。 localhostでうまくページを表示できなくて困っています。 作っているものがCG用の開発ツールで外部に公開するものではなく、 ローカル環境のみでの使用になります。 開発環境はwindows7 64bit PHP5.3.23 Apache2.2 MySQL5.5になります。 個人で取得しているドメインのサーバーにデータをアップして見ると正常にページが 表示されますので記述したコード自体には問題はなさそうです。 昔WindowsXPで構築したマシーンのlocalhostでも正常表示されます。 以下、Windows7のlocalhostでの挙動になりますが、 (1)phpinfoのページは正常に表示されます。 (2)PHPからのMySQLへの接続とデータの取得もうまくいきます。 (3)しかし、MySQLのデータを取得し、formのselectを用いて <option value='<?=$c[$i]?>'><?=$c[$i]?></option> と記述するとルックアップメニューには空文字が入力されてしまいます。 (4)そこであえて(3)の記述を <<option value='<?php echo $c[$i]?>'><?php echo $c[$i]?></option> のように書くとなんとかメニューにMySQLのデータが入ってきます。 (5)しかし、以下のように $cate=$_GET[cate]; などのような文を記述するだけでエラーが起きてしまいまして どう対処してよいかわかりません。 localhost環境で何か設定すべきところをしていないのか、 windows7のセキュリティの問題なのかわかりませんが、 どうしたら解決しますでしょうか。 当方、Web系は中規模ネットショップを独学で構築したレベルで実務経験はありません。 そのため難しい表現をされると理解できませんので、 あくまで初心者むけということで指導していただけると幸いです。
- mysqlで部分的にオートインクリメントしたい
mysqlを使用しております。 下記のようなテーブルを作りたいと思っているのですが、 親通し番号が同じ行についてのみ1からオートインクリメントすることは出来るのでしょうか? どなたかアドバイス頂ければと思います。 -------------------------------------------------------------------------------------- column1:親番号 column2:子通し番号 ・ ・ ・ column1:1 column2:1 ←カラム1が同じ値のとき、カラム2はinsertされた順に増えていく column1:1 column2:2 column1:1 column2:3 column1:2 column2:1 ←カラム1が増えたとき、カラム2は1に戻りインクリメントされていく。 column1:2 column2:2 column1:2 column2:3
- LINEのデータtalk.sqliteの閲覧方法
mac book proでバックアップを取ったアプリLINEの会話データ(talk.sqlite)を パソコン(windowsもしくはmac)で閲覧することはできるのでしょうか。 スタンプは確認する必要ありません。 色々と方法を探しているのですが ↓のようなサイトにもたどりついたものの、 なかなか私の頭ではおいつきませんでして。。。 http://www.kkaneko.com/rinkou/sqlite/sqlitedbbrowser.html#e3_1 お知恵拝借させてください!
- 締切済み
- その他(データベース)
- hotcoldsummer2
- 回答数1
- 無名内部クラスと匿名内部クラスと匿名クラスの違い
■外部クラス ・外部クラスの定義を教えてください ・内部クラスに対して外部クラスと言うのであれば、「クラス内に宣言されたクラスがないクラス(普通のクラス?)」は外部クラスとは言わないのでしょうか? ■無名クラス ・無名クラスは必ず内部クラスなのでしょうか? ■同じ意味? 下記は同じ意味でしょうか? ・無名内部クラス ・匿名クラス ・無名クラス ・匿名内部クラス
- 二つのシートで同一IDのものをまとめる方法2
エクセルで作成された二つの製品表を一つにする作業にてこずっています。 製品表は二つともAカラムにIDがあります。 製品表1には、同一のIDが二つ以上存在しません。 製品表2には、同一のIDが1~3存在します。 製品表1は 000128|product1 0KV502|product2 のように並んでいます。 製品表2は、 A | B |C 000128 | UNIT | UNIT NO. 000128 | BOX | BOX NO. 000128 | PALLET | PLT NO. 0KV502 | UNIT | UNIT NO. 0KV502 | PALLET | のように、同一IDに対し、Unit番号、Box番号、Plt番号が異なる段に並んでいます。 IDは必ず入力されていますが、Unit番号、Box番号、Plt番号は必ずしも入力されているとは限りません。 また同一IDに対し、2列しかない場合や1段しかない場合もあります。 また、製品表1にあり、製品表2にないIDもあります。 この製品表2にある、Unit番号、Box番号、Plt番号を下の図のように、製品表1にコピーしたいです。 000128| product1 | Unit No | Box no | Plt No 0KV502 | product2 | Unit No | Box no | Plt No 製品表1のIDを変数「ID1」に格納し、 Dim ID1, ID2, Code, EAN, VL, PU As String Dim row1, row2, c1, c2 As Integer 'row1,c1が製品表1のループに使い、row2、c2を製品表2のループに使います。 Dim qty, weight, PP As String '本当はUnit番号、Box番号、Plt番号以外にも数量や重量などのデータもコピーします。同じ段にあるので、その点はすでに解決済みです。 Sub my_merge() row1 = 6 '製品表1のデータは6段目から始まります。 Worksheets("Items").Activate '製品表1の名前はItemsです。 Do Until row1 = 10'本当は8000列ありますが、デバグしやすいように最初の10段だけ比較しています。 ID1 = Cells(row1, 1).Value '製品表1のデータを格納しています。 row2 = 3 '製品表2は3段目から始まります。 Do Until row2 = 20'本当は12000段ありますが、デバグしやすいように最初の20段だけ比較しています。 Worksheets("uom").Activate'uomが製品表2です。 ID2 = Cells(row2, 1).Value'uomにあるIDを格納します。 If ID2 = ID1 Then'IDが一致したら Call my_copy'コピーします。 Else Call my_copy_delete'違ったら、前回コピーしたものを削除します。 End If row2 = row2 + 1 Loop Call my_debug row1 = row1 + 1 Loop Worksheets("Items").Activate End Sub Sub my_debug() Debug.Print "a loop-------------" Debug.Print "row1 is " & row1 Debug.Print "row2 is " & row2 Debug.Print "ID1 is " & ID1 Debug.Print "ID2 is " & ID2 Debug.Print "Code is " & Code Debug.Print "EAN is" & EAN Debug.Print ActiveSheet.Name & " is active" End Sub Sub my_copy() Code = Cells(row2, 2).Value 'CodeでUNITかBOXかPALLETかを判断します。 qty = Cells(row2, 3).Value '数量 EAN = Cells(row2, 4).Value 'EANはUNIT、BOX、PALLETの番号です。 VL = Cells(row2, 5).Value weight = Cells(row2, 6).Value PU = Cells(row2, 7).Value PP = Cells(row2, 8).Value End Sub Sub my_copy_delete() ID2 = 0 Code = 0 qty = 0 EAN = 0 VL = 0 weight = 0 PU = 0 PP = 0 End Sub Sub my_paste_group() '本当は、UNIT,BOX,PALLETが、それぞれ重量、質量など、IDを含んで8つデータを持っているので、それにあわせてデータを横に並べます。 If Code = "UNIT" Then ' c1 = 14 Worksheets("Items").Activate Call my_paste ElseIf Code = "BOX" Then c1 = 22 Worksheets("Items").Activate Call my_paste ElseIf Code = "PALLET" Then c1 = 30 Worksheets("Items").Activate Call my_paste Else MsgBox "unexpected error" Exit Sub End If End Sub Sub my_paste() Cells(row1, c1).Value = ID2 Cells(row1, c1 + 1).Value = Code Cells(row1, c1 + 2).Value = EAN Cells(row1, c1 + 3).Value = VL Cells(row1, c1 + 4).Value = PU Cells(row1, c1 + 5).Value = qty Cells(row1, c1 + 6).Value = weight Cells(row1, c1 + 7).Value = PP End Sub 当方欧州住まいで、今朝から11:30まで丸一日かけたのですが、完全に煮詰まりました。 誰か助けてください。。
- ベストアンサー
- その他(プログラミング・開発)
- choco0213
- 回答数2
- DBの文字コード切り替え
MySQL 5.6 なのですが・・・・ DBの文字コードはDB作成後にデータを登録した後に、途中で文字コードを変更した場合、DBに登録済みの全角文字はどうなりますか? 文字化けする場合、変換ツールのようなものはあるのでしょうか? また文字コードの変更は ini ファイルを変更してMySQLを再起動するだけでいいのでしょうか?
- CakePHPでvalidateのメッセージの表示
バリデーションで設定したエラーメッセージをsetFlashで表示したいのですが、 エラーメッセージ(下記のhoge)を取得する方法はありますか? CakePHP 2x Model public $validate = array( 'username' => array( 'rule' => 'notEmpty' 'message' => 'hoge' ) ); Controller $this->Session->setFlash('test'); $this->redirect('index');
- オートインクリメントについて
カラムはidとnameです AUTO_INCREMENTをidにつけました googleで検索したら、「AUTO_INCREMENTをつけた場合はindexをつけなくてはいけない」 と書いてあったのですが、なぜindexをつけないといけないのでしょうか?indexなしだとよくないですか? 今あるidのカラムにsqlでindexを付けることはできますか? よろしくお願いします
- PHPで似たコードを繰り返す場合の簡潔な書き方??
ご質問失礼します。 PHPでデータベースのデータを下記のようなコードを使い表示しています。 ※質問内容に該当する一部のみ記載させていただいています ・ ・ ・ ・ ・ if(preg_match("/新規/", $row['status1'])){ $table .= $row['status1']." 新規です"; } else { if(preg_match("/更新/", $row['status1'])){ $table .= $row['status1']." 更新です"; } else { if(preg_match("/削除/", $row['status1'])){ $table .= $row['status1']." 削除です"; } else { $table .= "いません"; } } } if(preg_match("/新規/", $row['status2'])){ $table .= $row['status2']." 新規です"; } else { if(preg_match("/更新/", $row['status2'])){ $table .= $row['status2']." 更新です"; } else { if(preg_match("/削除/", $row['status2'])){ $table .= $row['status2']." 削除です"; } else { $table .= "いません"; } } } if(preg_match("/新規/", $row['status3'])){ $table .= $row['status3']." 新規です"; } else { if(preg_match("/更新/", $row['status3'])){ $table .= $row['status3']." 更新です"; } else { ・ ・ ・ ・ ・ ・ status1から、5つあればstatus5まで、似たようなPHPを繰り返し書いて動作させています。 このような場合、簡潔に書く方法などありますでしょうか。 ご存知の方いらっしゃいましたらお時間のある際にお教え下さいませんでしょうか。 また、簡潔に書く方法がない場合でも無いとお教えいただければ幸いです(○ `人´ ○)
- ベストアンサー
- PHP
- rabbit-kimura
- 回答数4
- WindowsとCentOSでのPHPの動作
いつもお世話になっております。 Windows環境で開発したPHPアプリをCentOS環境に移行しようとしているのですが、 件名のとおり、PHPのrequireの動作がWindowsとCentOSで違うことから、 原因を調べております。お知恵を拝借したいと思います。 例えば、以下の構成で親プログラム(myApp.php)から子(myparts/main.php)を読み込もうとしています。 ドキュメントルート/test/myApp.php ドキュメントルート/parts/mypartsA/main.php ●myApp.php <?php echo ("##### myApp is starting now !!! </br>"); require_once('/parts/mypartsA/main.php'); ?> ●mypartsA/main.php <?php echo ("#### mypartsA is required </br>"); ?>And myApp.php and mypartsA/main.php are in following structure. 結果として、 ●Windowsでは、以下が表示されますが・・・ ##### myApp is starting now !!! #### mypartsA is required ●CentOSでは、以下のとおりエラーになります。 PHP Warning: require_once(/parts/mypartsA/main.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /var/www/html/test/myApp.php on line 12 PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required (/parts/mypartsA/main.php’(include_path='.:/php/includes:/usr/share/pear:/usr/share/pear/PEAR:/var/www/html') in /var/www/html/test/myAPP.php on line 12 解決策として、以下のようにすればエラーが解消することは分かっているのですが・・・ require_once($_SERVER['DOCUMENT_ROOT']./parts/mypartsA/main.php); なるべく既存のアプリに手を入れたくないので、 何故Windowsではできて、何故CentOSではできないのかを知りたいと思います。 とりあえず、PHP.iniのinclude_pathを調べてみましたが、 表記方法の違いはあるものの、に意味的な違いが見つかりません。 ●Windowsでの設定 .;C:\PHP;C:\PHP\pear;C:\Apache2.2.22\htdocs ●CentOSでの設定 .:/php/includes:/usr/share/pear:/usr/share/pear/PEAR:/var/www/html この他何をポイントに調べていったらよいか教えていただければと思います。 よろしくお願いします。
- ベストアンサー
- PHP
- freeradical
- 回答数4
- WindowsとCentOSでのPHPの動作
いつもお世話になっております。 Windows環境で開発したPHPアプリをCentOS環境に移行しようとしているのですが、 件名のとおり、PHPのrequireの動作がWindowsとCentOSで違うことから、 原因を調べております。お知恵を拝借したいと思います。 例えば、以下の構成で親プログラム(myApp.php)から子(myparts/main.php)を読み込もうとしています。 ドキュメントルート/test/myApp.php ドキュメントルート/parts/mypartsA/main.php ●myApp.php <?php echo ("##### myApp is starting now !!! </br>"); require_once('/parts/mypartsA/main.php'); ?> ●mypartsA/main.php <?php echo ("#### mypartsA is required </br>"); ?>And myApp.php and mypartsA/main.php are in following structure. 結果として、 ●Windowsでは、以下が表示されますが・・・ ##### myApp is starting now !!! #### mypartsA is required ●CentOSでは、以下のとおりエラーになります。 PHP Warning: require_once(/parts/mypartsA/main.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /var/www/html/test/myApp.php on line 12 PHP Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required (/parts/mypartsA/main.php’(include_path='.:/php/includes:/usr/share/pear:/usr/share/pear/PEAR:/var/www/html') in /var/www/html/test/myAPP.php on line 12 解決策として、以下のようにすればエラーが解消することは分かっているのですが・・・ require_once($_SERVER['DOCUMENT_ROOT']./parts/mypartsA/main.php); なるべく既存のアプリに手を入れたくないので、 何故Windowsではできて、何故CentOSではできないのかを知りたいと思います。 とりあえず、PHP.iniのinclude_pathを調べてみましたが、 表記方法の違いはあるものの、に意味的な違いが見つかりません。 ●Windowsでの設定 .;C:\PHP;C:\PHP\pear;C:\Apache2.2.22\htdocs ●CentOSでの設定 .:/php/includes:/usr/share/pear:/usr/share/pear/PEAR:/var/www/html この他何をポイントに調べていったらよいか教えていただければと思います。 よろしくお願いします。
- ベストアンサー
- PHP
- freeradical
- 回答数4
- XAMPPの日本語版をインストールしたい
http://www.apachefriends.org/en/xampp-windows.html の XAMPP for Windows 1.8.1, 30.9.2012 Installer 99 MB をインストールしたのですが、言語選択の画面が出てこなくて、英語表記です。 日本語版のソフトがほしいのですが、そのリンク先はありますか? http://php.xenophy.com/php/index.html をみると、言語選択画面があるそうですが、私がインストールした限りでは 見当たりませんでした。 もしくは私が言語選択を見逃しただけでしょうか?
- ベストアンサー
- PHP
- cqydaaoeixo
- 回答数3
- MYSQL追加入力perare構文を教えてください
create table sample( id int not primary key auto_increment, kokyaku_cd int(12), kokyaku_name varchar(32), index(kokyaku_cd) )engine=innodb; (sample.kokyaku_cd 外部キーの親キーと設定しています 子キーcreate table sample_1は記入しません (forgine key (kokyaku_cd) references sample (kokyaku_cd) on update cascade on delete cascade) insert into sample_1_1( kokyaku_cd,kokyaku_name) values (1,'佐々木’), (2,'田辺'); sample_1_1 データ50カラム入力後 単価カラムを追加します alter table sample_1_1 mofiy column tanka int(12); tankaカラム入力時 update文では50行入力は 安全性もあり困難な為 perare構文で一括入力を希望します(適切か分かりません) perare up_sql from 'update sample_1_1 set tanka=? where kokyaku_name=?'; set @a='10000'; set @b='佐々木'; excute up_sql using @a,@b; エラーは出ないのですが、入力すべて0で結果が反映されていません (tankaがNULLのままです) 複数入力する方法と上記構文が間違っているようであれば 教えていただけないでしょう 独学の為トンチンカンな構文かもしれませんが 教えていただけないでしょうか よろしくお願いします。
- CakePHP2で複数のフォームを扱う方法
1つのページで複数のフォームがある場合、 送られたきたフォームごとに、別々のプログラムを動かしたいのですが、 ifで分岐する場合に、条件となる適切なパラメータはありますか? View <div id="a"> <?php echo $this->Form->create('Test'); echo $this->Form->input('list_a'); echo $this->Form->input('list_b'); echo $this->Form->input('list_c'); echo $this->Form->end(); ?> </div> <div id="b"> <?php echo $this->Form->create('Test'); echo $this->Form->input('list_d'); echo $this->Form->input('list_e'); echo $this->Form->input('list_f'); echo $this->Form->end(); ?> </div>
- [CakePHP2.2] :: の意味と役割
あるコントローラーで以下の文がファイルの先頭に記述されいるかと思います。 App::uses('AppController', 'Controller'); インクルードしているかと思われますが、この記述でなぜ呼び出せるのか 文法が理解できません。 これは具体的に何をしているのでしょうか?また、なぜこのような文法で呼び出せるのでしょうか? ご存じの方、宜しくお願いします。