mpro-gram の回答履歴
- 式の書き方を教えていただけないでしょうか?
$sql_t="INSERT INTO `ken`.`kar` (`imei`,`mei`,`nyu`) SELECT `imei`,`mei`,`nyu` from ken.{'$tbl_nu1'} union SELECT `imei`,`mei`,`nyu` from ken.{'$tbl_nu2'}"; $result = mysql_query($sql_t); 上記の文があります。 SELECTの中のテーブル名を具体的に 入れるとデータが入ります。 しかし、上記の文にすると データが入らなくなります。 なぜでしょうか? 式の書き方を教えていただけないでしょうか? SELECTの中のテーブル名は変数で書きたいです。 ご指導のほど、よろしくお願いいたします。
- 条件付の重複レコードの削除 (sqlite3)
重複レコードの削除で、重複レコード内の日付が最も新しいのだけを残したいのですが sqlite3のクエリをどう書けるのでしょうか? 例えば以下のような構造で、keyの重複を削除するのですが、 keyごとにyear, monthのもっとも新しいのだけ残したのです。 よろしくお願いします。 id, key, year, month, value 1 , aaa, 2000,12, 1000 2 , bbb, 2001, 1, 600 3 , bbb, 2001, 4, 500 4 , bbb, 2000, 2, 400 5, ccc, 2001, 3, 300 6, ccc, 2001, 8, 200 クエリ実行の結果こうしたい↓ 1 , aaa, 2000,12, 1000 3 , bbb, 2001, 4, 500 6 , ccc, 2001, 8, 200
- ベストアンサー
- MySQL
- dragonteeth
- 回答数2
- 条件付の重複レコードの削除 (sqlite3)
重複レコードの削除で、重複レコード内の日付が最も新しいのだけを残したいのですが sqlite3のクエリをどう書けるのでしょうか? 例えば以下のような構造で、keyの重複を削除するのですが、 keyごとにyear, monthのもっとも新しいのだけ残したのです。 よろしくお願いします。 id, key, year, month, value 1 , aaa, 2000,12, 1000 2 , bbb, 2001, 1, 600 3 , bbb, 2001, 4, 500 4 , bbb, 2000, 2, 400 5, ccc, 2001, 3, 300 6, ccc, 2001, 8, 200 クエリ実行の結果こうしたい↓ 1 , aaa, 2000,12, 1000 3 , bbb, 2001, 4, 500 6 , ccc, 2001, 8, 200
- ベストアンサー
- MySQL
- dragonteeth
- 回答数2
- MySQLのLimit句によるページ分割について
MySQL初級です。 PHP+MySQLで、検索ページを作成しています。 SELECT部を簡略して書くと・・ (ページ番号$get_pageNoをGETで渡して、10件ずつ検索結果を表示したい。) $sql = "SELECT Id FROM houjin WHERE (word LIKE '%${ワード}%')"; $sqlLimit .= "ORDER BY Id ASC limit " . ($get_pageNo*10) . ", 10"; 表示まではできていて、前へ、次へ、のリンクで、10件ずつ抽出できるところまでは、 できました。 さらに、抽出されたレコードに、チェックボックスをつけて、 ユーザーに選択させて、処理(削除など)を行いたいわけです。 表示されたあるレコードにチェックをつけて、 次のページのレコードにもチェックをつけて、 一括処理(削除など)ができる方法を探しています。 ページ番号をGETで渡してリロードさせているので、 チェックされたレコード番号もGETで渡す、しか方法はないでしょうか? Limitにこだわってはいません。 よい方法、アイデアがあれば教えてください。
- ベストアンサー
- PHP
- hide_momiji
- 回答数2
- csvファイルを使ってMySQLのテーブルを更新し
約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2, 200 4, 10 7, 460 11, 35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。
- バルクインサートに関して
表題ですが、 mysqliを使ってバルクインサートを行いたいのですが、 データ量が可変の場合のやり方がわからず、ご助言頂ければと存じます。 現在のコード。 $stmt = $mysqli->prepare("INSERT INTO mail_result.mails (NO,sessionID,Subject,ToAdd,FromAdd,Cc,Bcc,Date,AttachedFile,flag,RegistDate) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 0, NOW())"); $bind_param = $stmt->bind_param('dsssssssi', $a, $b, $c, $d, $e, $f, $g, $h, $j); for ($i = 2; $i < count($obj[0]) + 2; $i++) { $a = $obj[0][$i][0]; $b = $sessionID; $c = $obj[0][$i][1]; $d = $obj[0][$i][2]; $e = $obj[0][$i][3]; $f = $obj[0][$i][4]; $g = $obj[0][$i][5]; $h = $date = date('Y-m-d H:i:s', $obj[0][$i][6]); $j = $obj[0][$i][7]; $stmt->execute(); } これだと1件ずつのインサートなので、 prepareで(?, ?, ?, ?, ?, ?, ?, ?, ?, 0, NOW())をcount($obj[0])分、入れたいのですが、 可変時の変数の指定方法がわからず、ご助言頂ければ幸いです。
- ベストアンサー
- PHP
- daidai0101
- 回答数1
- csvに中身が書き込まれない
作成してみたものがうまく動かず、どこがおかしいのかよく分からないため、 質問させていただきます。 もともとtest.csvにはUTF-8で作成した中身があります。 ひとつ前の画面でPOST送信しているフォームがあり、 中身のデータは下記です。 <form action="kakikomi.php" method="post"> <input type="hidden" name="aaa" value="bbb,ccc,ddd"> </form> #kakikomi.php(UTF-8) $csvFileName="test.csv";$csv=array(); foreach($_POST as $val){$csv[]=explode(",",$val);} setlocale(LC_ALL,"ja_JP.UTF-8"); if( $pointer=fopen($csvFileName,"w")): foreach($csv as $line){fputcsv($pointer,$line);} fclose($pointer); //print_r($csv); else:die('メッセージ'); endif; この結果はcsvの中身は真っ白になってしまいます。 fputcsvのマニュアル例からそのまま引用したのですがどこかおかしいのでしょうか。
- java 単振り子 ルンゲクッタ法
javaを使って単振り子の運動方程式をルンゲクッタ法を使って、数値計算し、結果をappletを使ってグラフにするという課題に取り組んでいます。 恥ずかしながらjavaは始めたばかりで、いろいろソースも調べたのですが違う言語や、appletでないものしかありません>< ですので、javaでルンゲクッタ法を使って単振り子の運動方程式を数値計算するソースの書き方を教えてもらいたく質問させていただきました。グラフ化はどうにかがんばるのでその数値計算のところをぜひ教えてください。よろしくお願いします。
- ベストアンサー
- Java
- daichisanndayo
- 回答数2
- シリアライズされた値に対するカラムへの検索方法
PHPを使ってMysqlDBに入っている値を取得して表示する 表示面のプログラムを作成しております。 下記のようなシリアライズされた値が保管されている項目に対しての 検索条件の記述を現在はLikeを使っております。 FIND_IN_SETのような検索用の関数はございませんでしょうか。 ●検索対象 1269、1260、1254、84 ●シリアライズされた値サンプル a:4:{i:0;s:4:"1269";i:1;s:4:"1260";i:2;s:4:"1254";i:3;s:2:"84";} ●Likeの記述 カラム名 Like "%\"1260\"%" ご教授のほど、よろしくお願いします。
- MY SQL PDO ドライバのインストール
Windows 8.1 x64 php-5.5.6 、My SQL 5.5で、 XAMMPは使っていません。 色々調べて設定を試しましたが、http://localhost/sample/phpinfo.phpを見てもPDO drivers no value のままで困っています。 (1)php.iniファイルは http://www.phpbook.jp/tutorial/pdo/index1.htmlを参考に、 extension=php_mysql.dllとextension=php_pdo_mysql.dllをコメントアウト (このバージョンではphp_pdo.dll不要ですよね) さらにここには書いてないが extension=mysqli.so extension=pdo_mysql.soも追加 (2)C:\Program Files\Apache\Apache24\PHP\php-5.5.6-Win32-VC11-x64\ext 内に php_mysql.dllあり (3)環境変数はこんな感じです。 CLASSPATH C:\mysql-connector-java-5.1.18\mysql-connector-java-5.1.18-bin.jar;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar; PATH C:\Program Files\Java\jdk1.6.0_45\bin;C:\Users\自分の名前\AppData\Local\Box\Box Edit;c:¥php;C:\Program Files\MySQL\MySQL Server 5.5\lib;C:\Program Files\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;C:\Program Files\adt-bundle-windows-x86_64-20131030\sdk\tools;C:\Users\自分の前\AppData\Roaming\npm;C:\Program Files (x86)\Brackets (4)設定変更したら必ずhttpd -k restartで Apacheの再起動もしています。 他に原因はありますでしょうか?
- SQL文の変換(Oracle→MySQL)結合句
OracleからMySQLへSQL文を変換するにあたり、 テーブル結合部分が複数ありややこしくて以下で合っているのか、分かる方いましたらご教授ください。 ■Oracle SELECT * FROM m, h, p, c WHERE m.mid = h.mid(+) AND m.tcd = '0' And h.pid = p.pid(+) And m.rcd = c.rcd And c.cid = 'aaa' ■MySQL SELECT * FROM m left outer join h on m.mid = h.mid and m.tcd = '0' h left outer join p on h.pid = p.pid m left inner join c on m.rcd = c.rcd and c.cid = 'aaa'
- ベストアンサー
- MySQL
- nakayama10
- 回答数1
- mysqlにてselectの情報が欠けます。
phpからselect文を使用した際、一部データが欠けるので、 もし何かお気づきの点があれば、ご指摘頂ければ幸いです。 使用しているもの。 php 5.6.14 mariadb-10.0.21-with-mroonga-5.08-winx64 ※一つのテーブルに向けてのselect文、エンジンはmroongaです。 cakephp 2.5系 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー cakePHPのモデルクラスから、 以下の様なプログラムを書いております。 $sql = "sql文です。※(select ………)"; $data = $this->query($sql); ※全文検索を使用するのでsql文直書きです。cakephp的な書き方がわからず。。あるのかな? あるカラムに例えばですが以下の様に入ってます。 ※emlのccやfromです。 佐藤<********@****.co.jp>,鈴木<********@****.co.jp> これをselectしてviewに表示すると佐藤、鈴木しか残らず、 残りが欠けてしまっております。 workbenchから同じクエリを打っても欠けている様には見えず、 どこで欠けているかわからず頓挫しております。 お気づきの点等あればご指摘を何卒宜しくお願い致します。
- ベストアンサー
- MySQL
- daidai0101
- 回答数2
- CakePHP3 belongsTo NULL登録
CakePHP3.0 を使用して、顧客情報を登録するアプリケーションを作成しています。 顧客情報には言語カラムがあり、外部の言語テーブルのコードを参照しています。 顧客情報の言語カラムはNULLを許容します。 DB [Table] client_entities | language_code1 | char(2) | NULL YES | MUL | | language_code2 | char(2) | NULL YES | MUL | | language_code3 | char(2) | NULL YES | MUL | | language_code4 | char(2) | NULL YES | MUL | | language_code5 | char(2) | NULL YES | MUL | | language_code6 | char(2) | NULL YES | MUL | [Table] languages | id | int(11) | NULL NO | PRI | | code | char(2) | NULL NO | UNI | CakePHPでは、Tableにアソシエーションの定義を追加しました。 (Controllerのindex()にも設定を追加していますが、edit()、update()は未変更です) ClientEntitiesTable public function initialize(array $config) { $this->belongsTo('Languages', [ 'foreignKey' => 'language_code1', 'bindingKey' => 'code', 'joinType' => 'LEFT' ]); ..... continue } LanguagesTable public function initialize(array $config) { $this->hasMany('ClientEntities', [ 'foreignKey' => 'language_code1', 'bindingKey' => 'code' ]); ..... continue } この状態で、顧客情報の登録・更新処理において、言語カラム未設定でsubmitすると、 NULLの状態で送られた情報が内部で空文字''に変換されてしまいDBの参照整合性エラーが発生してしまいます。 Error情報 Error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`cir`.`client_entities`, CONSTRAINT `client_entities_ibfk_7` FOREIGN KEY (`language_code2`) REFERENCES `languages` (`code`)) UPDATE client_entities SET language_code2 = :c0 WHERE id = :c1 解決方法として、TableクラスのbeforeSave()メソッドを内で空文字をNULLへ変換する処理を追加したのですが、 別のエラーが発生してしまいます。 Undefined variable: _SESSION [CORE\src\Network\Session.php, line 440] どなたか、CakePHPにて外部参照制約のついているカラムへNULLを登録する方法をご教授願えませんでしょうか?
- javaのBoxlayoutについて
下記はBoxLayout用ののコードです。 Q1)Buttonのサイズを設定する方法がありますか? Q2)Buttonの配置を設定する方法がありますか? //===================================== import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.LayoutManager; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class AlignmentX extends JFrame{ JButton button1; JButton button2; JButton button3; public static void main(String[] args){ AlignmentX frame = new AlignmentX(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("タイトル"); frame.setVisible(true); } AlignmentX(){ button1 = new JButton("AAAAA"); button1.setAlignmentY(0.5f); button1.setPreferredSize(new Dimension(80,20)); button2 = new JButton("BBB"); button2.setAlignmentY(0.5f); button2.setPreferredSize(new Dimension(80,20)); button3 = new JButton("CC"); button3.setAlignmentY(0.5f); button3.setPreferredSize(new Dimension(80,20)); JPanel p = new JPanel(); p.setLayout((LayoutManager) new BoxLayout(p, BoxLayout.Y_AXIS)); p.add(button1); p.add(button2); p.add(button3); getContentPane().add(p, BorderLayout.CENTER); setBounds(10, 10, 300, 200); } } //以上,宜しくお願いします。
- カテゴリテーブルの並び替え
カテゴリテーブルを以下のように持っているとします id(自動連番) parent(親は0、子は属する親のid) name(カテゴリ名) order(並び順) 並び順は親が0から連番が振られていて、子は属する親毎に0から連番が振られています。 例えば以下のようなデータです。 id | parent | name | order 1 | 0 | 食べ物 | 1 2 | 0 | 飲み物 | 0 3 | 0 | その他 | 2 4 | 1 | 米 | 0 5 | 2 | 水 | 0 6 | 3 | 炭 | 0 7 | 1 | パン | 1 このときに、親カテゴリにに続いて子カテゴリが表示され、その次にorder順の親、子という表示方法にするには、どのように抽出すればよいでしょうか。 ○理想の並び順 飲み物 水 食べ物 米 パン その他 炭 できれば、後でいろいろと並び替えたりもしたいので、orderの後にSELECT時にフィールドを追加して、サブクエリとして使えるようなSQL文だと嬉しいのですが。 言わんとしている事が伝われば良いのですが、おわかりになる方よろしくお願いします。
- 別名フィールドの型を指定
例えば以下のようなSQL文からビューを作成した場合 SELECT CASE WHEN start_date IS NULL THEN '2010-01-01' WHEN start_date = '0000-00-00' THEN '2010-01-01' ELSE start_date END AS end_date FROM table_a start_dateフィールドはdate型ですが、別名が設定されるend_dateはvarchar型になってしまいます。 これをdate型にしてビューを作成する方法はありませんでしょうか。
- テーブル上に存在しないデータの一覧を取りたい。
mysql+phpで開発を行っています。 テーブル id 101 102 104 106 109 110 の様にデータが入っているテーブルaaaがあります。 プログラムで取得したid一覧が上記テーブルにレコードがあるのか確認するSQLは 例)select id from aaa where id in (101,102) で取得できるということは分かっています。 ここで select id from aaa where id in (102,103) とやると102の1件が取得できます。 今回知りたいことは 逆に取得できなかった103という値を取得する方法はないのかという事です。 select id from aaa where id=102; select id from aaa where id=103; 2回SQLを実行して値が戻ってこないSQL=テーブルにそのレコードが無いというプログラムを書けばいい事は分かっています。 しかし、処理が少なくとも数千回発生してしまう予定ですのでできれば別の方法がいいと思っています。 また、in区で使っている一覧はテーブルには入っておらず、また、こちらも数千個あるので、一時テーブルに入れるといってもかなりの時間がかかってしまうと思います。 何か一発で取得できるいい方法などありますでしょうか? ちなみにaaaテーブルは5万件ほどなので全件php側でメモリに展開してサーチも避けたいです よろしくお願いいたします。
- PHP,MySQLで3つのランキング
前提: seisekiテーブルに id(Primary), student_id(生徒ID), kamoku_id(科目ID), score, time, created のフィールドがあります。 ランキングの順位条件は、同じ科目でscoreがより高く、timeがより短く、createdがより古い方が高位となります。 同じ科目を何度でも受講できる為、student_idはユニークではありません。 前提条件から、以下3つのランキングを取得したいと考えています。 ランキング1:科目毎のランキング(同じstudent_idが1~10位独占等可) ランキング2:自分(student_id)の全受講履歴と履歴毎のランキング ランキング3:id指定時のランキング情報 各ランキングは、1SQLである必要はなく、PHPでの加工も考慮に入れております。 試行錯誤しているのですが、ORDER BY区にどうやって順位を付ければ良いのか分からず、 SELECT * FROM seiseki ORDER BY kamoku_id DESC, score DESC, time ASC, created ASC ここから進みません・・・ 何卒、よろしくお願いいたします。
- JscriptでsetTimeout
JscriptでIEを操作してあるページのリンクをクリックしたいです。 リンクにjavascriptが入っているため同期処理でクリックすると、 その先に進みません。 そのため非同期処理でクリックしたく、setTimeoutを使って 関数を作りましたが動きません。 setTimeout('function ck(ie,ID){ ie.document.querySelector(ID).click();}',10); ※ieはIEオブジェクト、iDはリンクのID属性です。 ちなみに上記をVBAから呼び出して動かしています。 setTimeoutをはずせば普通に動きました。 setTimeoutはwindowオブジェクトが必要なので、 それを省略しているのが悪いとも考えましたが、 VBAでどうやってIEのwindowオブジェクトを作るのかが分かりません。 setTimeout以外にも非同期実行できる方法があれば それでも構いません。 どうかご教授お願いいたします。
- 締切済み
- JavaScript
- momomo100
- 回答数1
- CakePHPのデータベース接続エラーについて
MySQLもCakePHPも初心者です。 詳しい方よろしくお願い申し上げます。 当方のPC環境はMac OS X 10.9.5で、MAMPをインストールして 色々なサイトを見ながらなんとか初期設定までは完了しました。 その後、下記の様なエラーが表示されて、色々グーグル検索し、 CakePHP is NOT able to connect to the database. Database connection "Mysql" is missing, or could not be created. database.phpのファイルも書き換えて、iTermからMysqlに接続して ユーザーも作成出来ましたが、依然としてエラーは解消されないので PHPの設定もphp.iniで追記してみましたが、エラーが解消されず もうどうして良いかわかりません。 (参考にしたページ:http://www.phpbook.jp/cakephp/install/index2.html http://locombox.com/posts/35 他) どうぞよろしくお願いします。
- ベストアンサー
- MySQL
- dtp_yukico
- 回答数3