回答数
気になる
-
何十万件もあるリストを短時間に表区分をかえたい
何十万件もあるリストを短時間に表区分をかえたいのですが、 1件ずつかえるととてつもなく時間がかかるんで、 なにかよい方法はないでしょうか? たとえば、 以下のような3行の表を、 0001 | 犬 猫 0002 | 猿 狐 0003 | 犬 猿 狐 以下のような動物種ごとに行をわけたい。 0001 | 犬 0001 | 猫 0002 | 猿 0002 | 狐 0003 | 犬 0003 | 猿 0003 | 狐 エクセルはつかえますが、マクロはつかえません。 テキストエディターはサクラエディターをつかっています。
質問日時: 2014/06/06 17:46 質問者: hide_momiji
解決済
2
0
-
WHERE句で抽出した後にグループ化した時の異常
複数のテーブルを結合してレコードを取得するシステムを作成しています。 問題に関わってくるのが、プロジェクトIDや件名を保存するプロジェクトテーブルと、発注先や買掛日・発注金額などを保存する発注テーブルです。 1つのプロジェクトに対して複数の発注先があり、2つのテーブルはプロジェクトIDによって結合されています。 WHERE句によって各カラムの条件でレコードを絞り、プロジェクトIDや件名でグループ化を行い、最終的にプロジェクトID、件名、グループ内で最も遅い買掛日、グループ内の発注金額の総額etcを表示します。 現在起こっている問題の例を挙げます。 1つのプロジェクトに、発注先がA社・買掛日が2014年4月30日・発注金額が10万の発注と、発注先がB社・買掛日が2014年7月30日・発注金額が20万の発注があるとします。 これを発注先がB社・買掛日が4月1日から5月30日までの間という条件で検索をかけると、 本来ならこのプロジェクトは表示されないはずなのですが、最も遅い買掛日が7月30日(B社の買掛日)、発注金額が10万(A社の発注金額)で表示されてしまうのです。 どうすればこれを修正することができるのでしょうか?
質問日時: 2014/06/04 16:34 質問者: yukinoshitait
ベストアンサー
1
0
-
カラムの値を、条件により動的に決定する方法
単一レコード内において、 Bの値を条件により決定したいのですが可能でしょうか。 <構成> テーブル:hoge カラム:A,B <条件> Aにデータがあれば、Bは"●" Aにデータがなければ、Bは"×" よろしくお願いいたします。
質問日時: 2014/06/04 14:59 質問者: Kamen_Ride
ベストアンサー
3
0
-
my sql について
こんにちは。 my sql 初心者です。 データをcsv形式でエクスポートする際に問題があり質問です。 商品管理番号サイズカラー ASブルー AMイエロー BSブルー BMイエロー BLレッド CSブルー CMホワイト というデータがあったとします。 ※上記はデータの一部です。実際はもっと文字数もサイズカラーも多いです。 このデータを使ってビューを作成します。 -------------------------------------------------------------------------------- CREATE VIEW item_v_tab AS SELECT id, CONCAT('size:',サイズ,'#','color:',カラー,'=',商品管理番号,'&')AS subcode, 商品管理番号 FROM zaiko; -------------------------------------------------------------------------------- この時にデータ型はmediumtextとなります。 次に、 -------------------------------------------------------------------------------- SELECT id, 商品管理番号, group_concat(distinct subcode order by subcode ASC separator '\n') as subcode FROM item_v_tab group by 商品管理番号; -------------------------------------------------------------------------------- で商品管理番号をグループ化します。 そしてcsvでエクスポートすると subcodeの一部、サイズカラーが多いもので文字数が切れてしまいます。 データ型を変更すれば切れずにすべて出力できるのかな? と考えて調べていたのですが、方法がわかりません。 お分かりになる方お教えいただけないでしょうか。 以上よろしくお願い致します。
質問日時: 2014/05/28 22:40 質問者: nanakana_2014
解決済
1
0
-
配列ようなデータ構造はSQLで作成できますか?
例えば、Twitterのようなシステムを作るとします。ユーザの情報に「名前」「ID」「フォロワー」があります(3つだけユーザー情報とします)。 id , name, follower_idsのようなフィールドが必要だと思います。ですが、この時follower_idsはいくらでも要素が増える可能性があります。このようなユーザー情報をSQL(特にMySQL)で管理することはできますか? 今回の例のような構造をデータベースに保管したいのですが、どんな形式をとったらいいか迷っているので、質問しました。ちなみにSQLはやったことがありません。おすすめの方法があったらお願いします。XMLやJSON形式というキーワードにもたどり着きましたが、なるべく早いデータ操作をしたいです。
質問日時: 2014/05/26 20:16 質問者: newtgecko
ベストアンサー
4
0
-
表結合の処理速度(負荷)
ご覧頂きありがとうございます。 今回の質問ですが、MySQLの表結合時の処理速度(負荷)についてお聞きします。 SELECT abcd.name, hoge.age FROM abdc, hoge WHERE abcd.id = hoge.id; SELECT abcd.name, hoge.age FROM abcd LEFT JOIN hoge ON abcd.id = hoge.id; 上記のいわゆるJOINとJOIN(省略)?になりますが、どちらが処理速度的に優秀なのでしょうか? 可能であればどういった処理が走っているのかも御存じであれば教えて頂きたいです。 参考URLでも構いませんので、よろしくお願い致します。
質問日時: 2014/05/23 15:03 質問者: sosuno20
ベストアンサー
1
0
-
集計についてのSQLの組み立て方
SQLについての質問です。 MySQLを使っています。 1か月間の得意先別の入金の集計を取りたいと思っています。 表としては以下のような感じです。 ID 得意先名 現金計 振込計 相殺計 手数料計 合計 =========================================================== 001 aaaaaaa 30,000 40,000 25,000 840 95,840 002 bbbbbbb 10,000 20,000 30,000 420 60,420 SELECT * sum(nyukin) AS genkin FROM nyukin_meisai WHERE tokuisaki_id = '001' AND nyukin_kubun = '現金' AND uriage_bi BETWEEN '2014/05/01' AND '2014/05/31' SELECT * sum(nyukin) AS furikomi FROM nyukin_meisai WHERE tokuisaki_id = '001' AND nyukin_kubun = '振込' AND uriage_bi BETWEEN '2014/05/01' AND '2014/05/31' 以下続く と得意先毎/各区分ごとに一つひとつSQLを発行すればできるんでしょうけど、 これをひとつのSQLで実現したいと思っていますがSQLをどのように組み立て てよいものやら困っています。 case を組み込んだりしてもうまくいきませんでした。 どなたかご指導下さい。 よろしくお願いします。
質問日時: 2014/05/15 14:48 質問者: koshinohikariri
ベストアンサー
1
0
-
SQLで連続したカラムが何個あるかを求める方法
お世話になっております。 PHPとmysqlでサイトを作っておりまして、そのログを分析しようとしています。 あるテーブルにユーザー名とログイン日付が入ったテーブルが有ったとして、その中で連続○日ログインしていた人は○人という結果を取りたいと考えているのですがこれをSQLで処理する方法はありますでしょうか? 今のところ、PHPで全データを取った後にPHP側で処理するしかないかと思っているのですが、件数が多いため可能であればmysql側で処理したいと思っています。 日付はUNIXTIMEに直すなどすればINTEGERに変換出来るとは思っているのですが、日付型(難しいようであればINT型の連続値でも問題ありません)でSQLで処理出来る方法はあるのでしょうか? ○○結合をすれば良いなど手がかりなど教えていただけると助かります。 ■テーブル username login_date ほげ 2014/5/1 ほげ 2014/5/2 ほげ 2014/5/3 ほげ 2014/5/4 ふーばー 2014/5/2 ふーばー 2014/5/3 あああ 2014/5/1 あああ 2014/5/3 あああ 2014/5/4 ■ほしい結果 4日連続 1名 2日連続 2名
質問日時: 2014/05/13 00:35 質問者: tasukete_goo
解決済
4
0
-
サブクエリでのアップデート(MySQL5.5)
テーブルに事前に記載された数値を用い、べき乗の数値の挿入(アップデート)をしたいと考えています。 *********************************************** やりたいこと *********************************************** テーブル baken umaban___bekijyo___name 1_______NULL____ HOTARUNOHIKARI 2_______NULL____ MADONOYUKI 3_______NULL____ OPPEKEPE 4_______NULL____ KOTARO これをUPDATEして、bekijyo欄に「2のumaban乗」の数値を挿入する。 umaban___bekijyo___name 1_________2_____ HOTARUNOHIKARI 2_________4_____ MADONOYUKI 3_________8_____ OPPEKEPE 4________16_____ KOTARO ************************************************ まずは、べき乗を求めるために下記のSELECT文を作成したところうまくいきました。 SELECT uma_code,umaban FROM (SELECT POW( 2, umaban ) AS uma_code,umaban FROM cbf_today_baken WHERE umaban<'11') AS temp1 umaban___uma_code___ 1_________2_____ 2_________4_____ 3_________8_____ 4________16_____ あとは、上記の2つをくっ付けるだけです。 UPDATE baken SET bekijyo=(SELECT uma_code FROM (SELECT uma_code,umaban FROM (SELECT POW( 2, umaban ) AS uma_code,umaban FROM cbf_today_baken WHERE umaban<'11') AS temp1) WHERE cbf_today_baken.umaban=temp1.umaban) 上記でアップデート可能と思われましたが、エラーになります。 #1248 - Every derived table must have its own alias どこに誤りがあるのかご教授頂けましたら幸いです。
質問日時: 2014/05/11 23:08 質問者: tajix14
ベストアンサー
3
0
-
【至急】MySQLログイン後文字コード変更バッチ
いつもお世話になっております。 コマンドプロンプトにてMySQLに接続後、文字コードを変更まで行える batファイルを作成したのですが、うまくいかず困っております。 batファイル: c:\xampp\mysql\bin\mysql -u root -p1234 にて接続ができることは確認いたしました。 aaa.sqlファイル set character_set_client='sjis'; set character_set_connection='sjis'; set character_set_results='sjis'; c:\xampp\mysql\bin\mysql -u root -p1234 db1 < c:\(ファイルの場所)\aaa.sql とし、実行しましたが、ウィンドウが閉じ、うまくいきません。 いったいどのあたりが悪いのか見当がつかず、困っております。 お忙しいところすみませんが、お知恵を貸していただけませんでしょうか。 何卒宜しくお願いいたします。
質問日時: 2014/05/11 19:05 質問者: gitcom
解決済
3
0
-
別のDB(Table)からの複数行のINSERT
Wordpressにあるusermetaというテーブルに、 別のDBのテーブルからデータをINSERTしたいのですが、 #1241 - Operand should contain 1 column(s) というエラーが表示されてうまくいきませんでした。 具体的なSQL文は、 insert into ***_usermeta (umeta_id,user_id,meta_key,meta_value) select (null,tableBid,'first_name',''), (null,tableBid,'last_name',''), (null,tableBid,'nickname',tableBname), (null,tableBid,'***_capabilities','a:1:{s:10:\"subscriber\";b:1;}'), (null,tableBid,'***_user_level','0') from dbB.tableB where tableBname<> 'Admin' dbBのtableB にあるAdmin行以外を対象としています。 実際にはもう少しデータが多いのですが、select (null,uid,'first_name','') from ・・・ だけにしても同じエラーが出ましたので、構文の書き方が間違っていると感じています。 (別のDBではなく、同じDBの別のTableからのINSERTでも同じエラーが表示されました) 上記のようなケースの場合、どのようにSQL文を書けばよいのでしょうか? お分かりになられる方がいらっしゃいましたら、ご教示頂けますと幸いです。 宜しくお願い致します。
質問日時: 2014/05/04 07:45 質問者: kinmugi
ベストアンサー
3
0
-
pdoでバインドしない場合のデメリット
$sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'); $sth->bindParam(':calories', $calories, PDO::PARAM_INT); $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12); $sth->execute(); 上記ではなく $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->execute(array($calories,$colour)); のようにbindParamやbindValueを使わない場合は危険はあるのでしょうか? ご教示頂けますと幸いです。 宜しくお願いいたします。
質問日時: 2014/05/02 19:35 質問者: happyprice
ベストアンサー
1
0
-
PHPadmin文字化けに関しまして
現在、サーバー内には、 ■wordpress ■メールマガジン の2つのシステムが入っております。 システム上から確認したときは文字化けが起こっていないのですが、 PHPadminの画面から確認すると、メールマガジンのデータのみ 日本語が文字化けしておりました。 文字化けの原因は、照合順序がlatin1_swedish_ciのためではないかと、 考えております。 エクスポートを試しても、文字化けしておりました。 照合順序をutf8_general_ciに変更したり、エンコードを変えてみたりも試してみましたが、うまくいきません。 文字化けを直す手段はあるのでしょうか。
質問日時: 2014/05/02 16:01 質問者: matxx
ベストアンサー
1
0
-
PDOでDB ページング
一覧画面と検索画面を一緒にしています 一覧画面は10件表示にし、テキストになにも入力されてなかったらデータを全件表示したいです また、1 l 2 l 3 のようにページを表示し、また何件中何件目データですと表示したいです <!--一覧画面 index.php--> <html> <head> <title>一覧画面</title> </head> <body> <br><br> <blockquote> 一覧画面 <br><br> <?php if ($_GET) { // データがGETされていたら $event = isset($_GET['event']) ? $_GET['event'] : ''; // 取得 if (isset ($_GET['page'])==false) { $page=0; } else { //そうでなければpageパラメータの値をpage変数にセット $page = $_GET['page']; } } ?> <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $name=isset($_GET['name'])?$_GET['name']:""; $sql ="select * from tbl_test where "; $sql.="`氏名` like concat('%',?,'%') "; $sql.="or `住所` like concat('%',?,'%') "; $sql.= " limit " . $page*10 . ", 10" ; $stmt = $pdo->prepare( $sql); $stmt->execute(array($name,$name)); $count = $stmt->rowCount(); if($count>0){ print "<table border=1>" ; print "<tr>"; print "<th>番号</th>"; print "<th>氏名</th>"; print "<th>住所</th>"; print "<th>操作</th>"; while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ print "</tr>"; $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td></tr>"; }; print "</table>" ; }else{ print "該当するデータがありません"; } ?> <br><br><br> <form action = "index.php" method="GET"> <input type="hidden" name="event" value="find"> <input type="text" name="name"style ="font-size:20px;width: 400px; height: 40px"> <input type="submit" value="検索" style ="font-size:20px;width: 100px; height: 40px"> </form> <br><br> <form action = "regist.php" method="GET"> <input type="hidden" name="event" value="regist"> <input type = "submit" value = "新規登録" style ="font-size:20px;width: 100px; height: 40px"> </form> <input type="hidden" name="page" value="0"> </blockquote> </body> </html> 検索のテキストボックスが空だったら全件表示したいのですが今10件しか出ません limitの書く場所が原因でしょうか? またこのように一覧画面と検索結果画面が一緒じゃまずいですかね? 検索結果を別ウインドウじゃなく自分に返したいと思いこのやり方にしたのですがよくないですか?
質問日時: 2014/05/01 09:13 質問者: yama_p_4
ベストアンサー
12
0
-
検索機能
mysqlで検索フォームを作成しています 入力してデータに該当したら検索結果が出るのですが 該当者がいないときはテーブルの表のみ出力してしまう 該当者なしと入力フォーム側に表示したいです また ''''''を入力するとSQLになるのですが mysql_real_escapeを使えば出なくなります どうしたらいいですか <html> <body> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //フォームで送られてきた条件を元にSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_GET['name']}%') or (住所 LIKE '%{$_GET['name']}%')"; //SELECT文を実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; }else{ } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)) { $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td></tr>"; if ($_GET) { // データがGETされていたら $event = isset($_GET['event']) ? $_GET['event'] : ''; // 取得 } } echo "</table>" ; //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </body> </html>
質問日時: 2014/04/28 16:57 質問者: yama_p_4
ベストアンサー
2
0
-
mysql 全文検索で引っかからないワードがある
mysqlのfulltextを使用した全文検索で引っかからないワードがあって困っています。 例えば、keywordsテーブルにwordsカラムに以下のレコードがあったとします。 -------------- ジェフ トム ram -------------- このとき、下記のsqlを発行してもジェフやramが引っかかりません。 SELECT * FROM `keywords` WHERE MATCH(words) AGAINST('ジェ*' IN BOOLEAN MODE); SELECT * FROM `keywords` WHERE MATCH(words) AGAINST('ram*' IN BOOLEAN MODE); (※以下は引っかかる SELECT * FROM `keywords` WHERE MATCH(words) AGAINST('トム*' IN BOOLEAN MODE); ) もちろん、カラム定義には、alter table keywords add fulltext(words)をしています。 またFull-Text Stopwordsもデフォルトのままです。 どんな原因があるか分かる方いらっしゃいますでしょうか? 以上、よろしくお願い致します。
質問日時: 2014/04/28 15:57 質問者: nakayama7
解決済
1
0
-
MySQLでデータ表示
MySQLでデータの表示を行っています 10件ずつ表示し、11件からは2ページ目に表示したいです サイトや本を見ながらデータ表示と次の10件のリンクは表示されるよう自力で頑張ったのですが 次の10件を押してもデータが変わらず1件目から10件目のままです どこが違うか教えてもらえますか。 どうコードを入力するか教えてくれたらありがたいです 一覧 ta2.phpです <html> <body> <form action = "ta2.php" method="GET"> <input type="hidden" name="page" value="0"> </form> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test" ; $sql.= " limit " . $page*10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>"; while($row = mysql_fetch_array($res)) { $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td></tr>"; header('content-type: text/html; charset="utf-8"'); if ($_GET) { // データがGETされていたら $page = isset($_GET['page']) ? $_GET['page'] : ''; // 取得 } } $sql = "select count(*) from tbl_test " ; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ; //前の10件 if ($page != 0) { echo "<a href = ta2.php?page= $page>" ; echo "< 前の10件" ; } //次の10件 if (($page + 1)*10 < $cnt) { echo "<a href = ta2.php?page= $page>" ; echo " 次の10件 " ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </table> </body> </html>
質問日時: 2014/04/25 14:06 質問者: yama_p_4
ベストアンサー
3
0
-
顧客&商品+指定文字列を含む、最新のデータ取得
お世話になります。 前回立てたトピック(http://oshiete.goo.ne.jp/qa/8565634.html)でサンプルデータにミスがあったため、立て直しです。 ※顧客&商品ごとの本申込という文字列が含まれる最新データを取得したい ※商品名の長さは変動します(商品名には実際は番号はありません) ※MySQL5です。 どうぞお知恵をお貸しください。 ■テーブルデータ CREATE TABLE IF NOT EXISTS `TABLE1` ( `SEQ_ID` mediumint(8) NOT NULL AUTO_INCREMENT COMMENT 'シーケンスID', `TO_USER_NM` varchar(128) DEFAULT NULL COMMENT '顧客', `MAIL_TITLE` varchar(256) DEFAULT NULL COMMENT '商品', `SEND_TIME` datetime NOT NULL COMMENT '購入日時', PRIMARY KEY (`SEQ_ID`) ); INSERT INTO `TABLE1` (`SEQ_ID`, `TO_USER_NM`, `MAIL_TITLE`, `SEND_TIME`) VALUES (1 , '顧客A', '『商品1』仮申込', '2014-03-01 13:07:43'), (2 , '顧客C', '『商品1』仮申込 / 変更1', '2014-03-02 10:06:54'), (3 , '顧客E', '『商品1』仮申込', '2014-03-03 10:06:54'), (4 , '顧客E', '『商品1』本申込', '2014-03-04 13:33:51'), (5 , '顧客B', '『商品1』本申込', '2014-03-05 14:58:41'), (6 , '顧客A', '『商品1』本申込 / 変更1', '2014-03-06 16:42:56'), (7 , '顧客D', '『商品1』本申込 / 変更2', '2014-03-07 17:27:33'), (8 , '顧客C', '『商品1』本申込 / 変更1', '2014-03-08 13:56:29'), (9 , '顧客A', '『商品2』仮申込', '2014-03-09 18:44:05'), (10, '顧客A', '『商品2』仮申込 / 変更1', '2014-03-10 10:43:14'), (11, '顧客C', '『商品1』本申込 / 変更2', '2014-03-11 08:51:02'), (12, '顧客C', '『商品1』本申込 / 変更3', '2014-03-12 20:33:39'), (13, '顧客A', '『商品2』本申込', '2014-03-14 18:52:44'), (14, '顧客B', '『商品1』仮申込', '2014-03-15 16:13:47'), (15, '顧客B', '『商品1』本申込 / 変更3', '2014-03-16 21:07:35'), (16, '顧客B', '『商品1』本申込 / 変更4', '2014-03-18 21:07:34'), (17, '顧客B', '『商品3』仮申込', '2014-03-19 21:42:46'), (18, '顧客B', '『商品3』本申込', '2014-03-20 22:14:10'), (19, '顧客A', '『商品2』本申込 / 変更1', '2014-03-21 23:44:06'), (20, '顧客A', '『商品1』本申込 / 変更5', '2014-03-22 08:22:59'), (21, '顧客A', '『商品2』仮申込', '2014-04-01 13:07:43'), (22, '顧客A', '『商品2』本申込 / 変更2', '2014-04-02 10:06:54'), (23, '顧客B', '『商品2』仮申込', '2014-04-03 10:06:54'), (24, '顧客B', '『商品2』仮申込 / 変更1', '2014-04-04 13:33:51'), (25, '顧客B', '『商品2』本申込', '2014-04-05 14:58:41'), (26, '顧客F', '『商品1』仮申込', '2014-04-06 16:42:56'), (27, '顧客F', '『商品1』本申込', '2014-04-07 17:27:33'), (28, '顧客G', '『商品3』仮申込', '2014-04-08 13:56:29'), (29, '顧客F', '『商品1』本申込 / 変更1', '2014-04-09 18:44:05'), (30, '顧客G', '『商品3』本申込', '2014-04-10 10:43:14'), (31, '顧客A', '『商品1』本申込 / 変更6', '2014-04-11 08:51:02'), (32, '顧客A', '『商品2』本申込 / 変更3', '2014-04-12 20:33:39'), (33, '顧客F', '『商品1』本申込 / 変更2', '2014-04-14 18:52:44'), (34, '顧客C', '『商品3』仮申込', '2014-04-15 16:13:47'), (35, '顧客C', '『商品3』本申込', '2014-04-16 21:07:35'), (36, '顧客H', '『商品1』仮申込', '2014-04-18 21:07:34'), (37, '顧客H', '『商品1』本申込', '2014-04-19 21:42:46'), (38, '顧客H', '『商品1』本申込 / 変更1', '2014-04-20 22:14:10'), (39, '顧客E', '『商品2』仮申込', '2014-04-21 23:44:06'), (40, '顧客E', '『商品2』仮申込 / 変更1', '2014-04-22 08:22:59'); ■取得したいデータ 38, '顧客H', '『商品1』本申込 / 変更1', '2014-04-20 22:14:10' 35, '顧客C', '『商品3』本申込', '2014-04-16 21:07:35' 33, '顧客F', '『商品1』本申込 / 変更2', '2014-04-14 18:52:44' 32, '顧客A', '『商品2』本申込 / 変更3', '2014-04-12 20:33:39' 31, '顧客A', '『商品1』本申込 / 変更6', '2014-04-11 08:51:02' 30, '顧客G', '『商品3』本申込', '2014-04-10 10:43:14' 25, '顧客B', '『商品2』本申込', '2014-04-05 14:58:41' 18, '顧客B', '『商品3』本申込', '2014-03-20 22:14:10' 16, '顧客B', '『商品1』本申込 / 変更4' '2014-03-18 21:07:34' 12, '顧客C', '『商品1』本申込 / 変更3' '2014-03-12 20:33:39' 7 , '顧客D', '『商品1』本申込 / 変更2' '2014-03-07 17:27:33' 4 , '顧客E', '『商品1』本申込', '2014-03-04 13:33:51'
質問日時: 2014/04/25 00:08 質問者: sirowabi
ベストアンサー
4
0
-
mysql sqlエラー
先ほども質問したのですが再度質問させていただきます mysql limitページ分割を行っていてエラーは消せたのですが今度 SQLエラーになり出来ません 前の人が質問したのを参考にしてつくったのですがうまくいかず困っています 検索結果を10件ずつ表示して googleみたいに 1l 2l 3 みたいな感じやりたいです <body> <?php error_reporting(E_ALL ^ E_NOTICE); //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_GET['name']}%') or (住所 LIKE '%{$_GET['name']}%')"; $sql = "limit" . $page * 10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)){ $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td> </tr>"; //検索条件に該当する全データの件数取得 $sql = "select count(*) from tbl_test " ; $sql = "where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page + 1, "ページ目を表示<br>" ; //前の10件 if ($page_num != 0) { echo "<a href = find.php?name=".$name. ". $page -1.>" ; echo "< 前の10件"; } //次の10件 if (($page_num + 1)*10 < $cnt) { echo "<a href = find.php?name=".$name. ". $page +1.>" ; echo " 次の10件 &g</a>t" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; } ?> </body> </html>
質問日時: 2014/04/24 13:32 質問者: yama_p_4
ベストアンサー
3
0
-
mysql limitページ分割
前の人が質問したのを参考にしてつくったのですがうまくいかず困っています 検索結果を10件ずつ表示して googleみたいに 1l 2l 3 みたいな感じやりたいです <html> <body> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //LIMITを使ったSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; $sql = "limit" . $page_num*10 . ", 10" ; //SQL実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)){ $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td> </tr>"; //検索条件に該当する全データの件数取得 $sql = "select count(*) from tbl_test " ; $sql = "where (氏名 LIKE '%{$_POST['name']}%') or (住所 LIKE '%{$_POST['name']}%')"; if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; } $row = mysql_fetch_array($res) ; $cnt = $row[0] ; //ページ表示 if(!$cnt > 10) echo ceil($cnt / 10), "ページの中の", $page_num + 1, "ページ目を表示<br>" ; //前の10件 if ($page_num != 0) { echo "<a href = find.php?name=",$name, ", $page_num -1.">" ; echo "< 前の10件"; } //次の10件 if (($page_num + 1)*10 < $cnt) { echo "<a href = find.php?name=",$name, ", $page_num +1.">" ; echo " 次の10件 &g</a>t" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </body> </html> Parse error: syntax error, unexpected '前の10件' (T_STRING), expecting ',' or ';' というエラーが出て自分なりにバグを消しているのですがまだエラーが消えずに困っています
質問日時: 2014/04/24 11:34 質問者: yama_p_4
ベストアンサー
2
0
-
行のカウントを2種類を1つの文で発行したい
こんにちは質問させてください。 商品が登録されているテーブル A に以下のカラムがあるとします。 id(int), name(varcahr), dt(datetime) id には 店を識別す固有の番号がふってあり、 name には 商品名、 dt には商品を登録した日付が入っているものとします。 やりたいことは ”id が 「1」 である全商品数” と ”今月登録された商品の数” を出力したいのです。 id が 1 である商品の数は以下のSQLで取り出せます。 SELECT COUNT(*) FROM ( SELECT * FROM A WHERE A.id='1' ) AS tbl1 id が 1 で 今月登録された商品の数は以下のSQLで取り出せます。 SELECT COUNT(*) FROM ( SELECT * FROM A WHERE A.dt BETWEEN DATE( DATE_SUB( NOW(), INTERVAL DAYOFMONTH( NOW() )-1 DAY) ) AND LAST_DAY( NOW() ) AND A.id='1' ) AS tbl1 これをひとつのSQLにまとめるにはどうしたらいいのでしょうか…。 宜しくお願い致します。
質問日時: 2014/04/23 13:51 質問者: ap3824
ベストアンサー
1
0
-
顧客と商品ごとに購入日時が最新のデータを取得したい
お世話になります。 以下のテーブル1からサンプル1のようなデータを抽出したいのですが、SQLはどのように書いたらよいでしょうか。 ・顧客と商品ごとに購入日時が最新のデータを取得 ・商品は左側の番号が同じ場合は購入日が最新のデータのみ抽出したい データベースは MySQL5 です。 よろしくお願いいたします。 ●テーブル1 顧客 商品 購入日時 --------------------------------- A 2-2 2014-04-23 08-00-00 A 2-1 2014-04-21 08-00-00 B 2-3 2014-04-20 09-00-00 B 2-2 2014-04-18 06-00-00 B 2-1 2014-04-15 05-00-00 A 1-3 2014-04-12 08-00-00 A 1-2 2014-04-10 04-00-00 C 2-2 2014-04-09 05-00-00 C 2-1 2014-04-08 06-00-00 C 1-2 2014-04-07 08-00-00 C 1-1 2014-04-06 05-00-00 A 1-1 2014-04-05 02-00-00 B 1-2 2014-04-04 02-00-00 B 1-1 2014-04-03 01-00-00 ●サンプル1 顧客 商品 購入日時 --------------------------------- A 2-2 2014-04-23 08-00-00 B 2-3 2014-04-20 09-00-00 A 1-3 2014-04-12 08-00-00 C 2-2 2014-04-09 05-00-00 C 1-2 2014-04-07 08-00-00 B 1-2 2014-04-04 02-00-00
質問日時: 2014/04/23 11:17 質問者: sirowabi
ベストアンサー
3
0
-
PHP + PDOでデータ登録
PHPでデータの登録を行っています いろいろ調べながら試行錯誤しています 登録できる条件があります 1.番号が重複じゃない 2.番号、氏名、住所が空白でない場合です 現状 1.2両方できていてデータも追加されるのですが、 2の条件、空白だった場合エラーメッセージを表示したいのですが表示されず困っています <?php $err = ""; if(empty($_POST['ID'])) $err.= "<br><br>番号入力してください。<br><br>"; if(empty($_POST['NAME'])) $err.= "<br><br>氏名入力してください。<br><br>"; if(empty($_POST['ADDR'])) $err.= "<br><br>住所を入力してください。<br><br>"; if(empty($err)) { $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "****"); $st = $pdo->prepare("INSERT INTO tbl_test VALUES(?,?,?)"); $st->execute(array($_POST['ID'], $_POST['NAME'],$_POST['ADDR'])); if($st->rowCount()>0) { header('Location: http://localhost/top.php'); }else{ print "既に登録している番号です"; } echo $err; } ?> 重複したときは"既に登録している番号です"と表示されるのですが、空白だった場合$errが表示されません
質問日時: 2014/04/22 14:51 質問者: yama_p_4
ベストアンサー
1
0
-
create時にFOREIGN KEYでエラー
以下のSQL文を実行すると CREATE TABLE if not exists table_A ( idint(11) not null auto_increment, company_idint(11) not null, created_atdatetime NOT NULL, updated_attimestamp NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE if not exists table_B ( idint(11) not null auto_increment, from_idint(11) not null, company_idint(11) not null, created_atdatetime NOT NULL, updated_attimestamp NOT NULL, PRIMARY KEY (id) FOREIGN KEY (from_id) REFERENCES table_A(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 上記を実行すると以下のエラーがでます。 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (from_id) REFERENCES table_A(id) ON DELETE CASCADE ) ENGINE=Inn' at line 8 解決方法をご存知の方はご教示頂けますと幸いです。 宜しくお願いいたします。
質問日時: 2014/04/22 13:04 質問者: happyprice
ベストアンサー
1
0
-
PHP Mysql エラー
データの新規登録を行っているのですが 番号が重複しないでまたデータがすべて入力されたらデータの追加を行いたいのですが エラーが出て対処できずに困っています 下記のエラーがでます Parse error: syntax error, unexpected end of file in C:\WWW\test\htdoes\insert.php on line 20 20行目は一番下の行です <html> <body> <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); if($st->rowCount()>0){ if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != ''){ $st = $pdo->prepare("insert ignore into tbl_test values(?,?,?)"); $st->execute(array($_POST['ID'], $_POST['NAME'],$_POST['ADDR'])); header('Location: http://localhost/top.php'); }else{ print データ未入力の場所があります; } }else{ print "既に登録している番号です"; ?> </body> </html>
質問日時: 2014/04/21 15:53 質問者: yama_p_4
ベストアンサー
2
0
-
mysqlのsql文について質問です
tbl_aとtbl_bから、tbl_cを作りたいのですが どのようなsql文を書けば良いでしょうか? アドバイス頂けると嬉しいです。よろしくお願い致します。 テーブル:tbl_a ----------------- code1,code2,name ----------------- 001,a,あ 002,a,あ 003,a,あ 004,a,あ 005,b,い 006,b,い 007,b,い 008,c,う 009,c,う 010,c,う 011,c,う 012,d,え 013,d,え 014,d,え テーブル:tbl_b ----------------- code1,point ----------------- 003,10 004,2 008,10 009,5 011,20 テーブル:tbl_c ----------------- code2,name,point ----------------- a,あ,2 b,い, c,う,5 d,え,
質問日時: 2014/04/20 23:27 質問者: BottleCap
ベストアンサー
1
0
-
3つのテーブルを連携した並び替えのSELECT文
3つのテーブルを連携した並び替えのSELECT文について教えて下さい。 例えば次の3つのテーブルがあるとします。 COOK_TBL ---------------- COOK_NAME パスタ パスタ グラタン オムライス グラタン カレー ZAIRYO_TBL --------------- COOK_NAME ZAIRYO_NAME グラタン 鶏肉 オムライス 卵 オムライス 玉ねぎ パスタ 卵 パスタ 麺 COOK_KIOKU_TBL --------------- COOK_NAME オムライス グラタン COOK_TBLのCOOK_NAMEでグルーピングしたものに対し、ZAIRYO_TBLのCOOK_NAMEに存在するものは全て抽出し、 COOK_KIOKU_TBLのCOOK_NAMEとCOOK_TBLのCOOK_NAMEと一致するレコードは頭の方(COOK_KIOKU_TBLのCOOK_NAMEのレコード順)に並び替えられるようにしたいです。 得たい結果は次の通りです。 COOK_TBL ------------- COOK_NAME オムライス グラタン パスタ どうしても分かりません。 助けて下さい。 os: windows 7 eclipse: Version: 4.2.0
質問日時: 2014/04/19 21:40 質問者: yanagihk
ベストアンサー
1
0
-
コマンド入力で "> となり入力不可
すいません1つ質問があります。 通常であれば、 mysql> とあってコマンドを入力するのですが、 たまに、"> となってしまい何も受け付けないときがあります。 \c でキャンセルも出来ません。 どうしてこうなるのかもわからないです。 なぜこうなるのか? そしてこの問題を解決するにはどうすればよいかご教授頂けると幸いです。 ネットで調べましたがこの件について触れているページがありませんでした。 よろしくお願いいたします。
質問日時: 2014/04/19 21:00 質問者: kemukemu2014
解決済
1
0
-
pathを指定してCSVをインポートしたい
すいません1つ質問があります。 こちらのサイトでCSVのファイルのインポート方法を勉強していますが、下記の方法だとあらかじめ、データベースが格納されているフォルダにCSVを置いてある前提でこのやり方をやります。 LOAD DATA INFILE "T01Prefecture.csv" INTO TABLE T01Prefecture FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; 僕が知りたいのは、例えば、 C:\Users\Ken\Desktop\T01Prefecture.csv ここに置いてあるCSVを指定してインポートしたいと考えています。 そのやり方がどうもこのパスを書くだけでは出来ないです。 どなたかやり方を教えて頂けますか? 僕が書いたのは下記の通りです。 LOAD DATA INFILE "C:\Users\Ken\Desktop\T01Prefecture.csv" INTO TABLE T01Prefecture FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n"; よろしくお願いいたします。
質問日時: 2014/04/19 16:25 質問者: kemukemu2014
ベストアンサー
1
0
-
php データ新規追加
入力フォームに入力された番号が登録されてなかったら新規登録できるようにしたい INSEPT IGNORE INTOで主キーを無視するのではなく重複したらエラーメッセージを出しユーザにもう一度入力させるようにする 新規登録フォーム <html> <head><title>新規登録</title></head> <body> <blockquote> <form action = "insert.php" method = "POST"> <br><br>登録画面<br><br> すべての項目入力してください<br> 番号<input type="number" name = "ID"> (一覧画面にない番号を入力してください) <br> <br>氏名<input type="text" size = "50" name = "NAME"><br><br> 住所<input type="text" size = "130" name = "ADDR"><br><br> <a href="http://localhost/top.php"> <input type = "submit" value = "登録する" style ="font-size:20px; width: 100px; height: 40px"></A> <a href="http://localhost/top.php"> <input type = "button" value = "一覧に戻る" style ="font-size:20px; width: 100px; height: 40px"></A> </body> </blockquote> </form> </body> </html> 登録を実行するフォーム <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != '') { $id = mysqli_real_escape_string($con, $_POST['ID']); $name = mysqli_real_escape_string($con, $_POST['NAME']); $addr = mysqli_real_escape_string($con, $_POST['ADDR']); $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$id','$name','$addr')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } header('Location: http://localhost/top.php'); exit(); } else { ?> <html> <body> <blockquote> <br><br>データが未入力の箇所があります。すべてデータを入力してください <br><br><br> <a href="http://localhost/regist.php"> <INPUT TYPE = "button" VALUE = "登録画面に戻る" style ="font-size:20px; width: 140px; height: 40px"></A> <br><br><br> <A HREF="http://localhost/top.php"> <INPUT TYPE = "button" VALUE = "一覧に戻る" style ="font-size:20px; width: 140px; height: 40px"></A> </blockquote> </body> </html> <?php } mysqli_close($con); ?> どういう風にselect文を書けばいですか?
質問日時: 2014/04/18 16:26 質問者: yama_p_4
ベストアンサー
5
0
-
ストアドファンクションの再帰呼び出しについて
「ストアドファンクションの再帰呼び出し」はできないのでしょうか。 hoge関数をhoge関数の中で呼び出しています。 hoge関数では、条件に当てはまらないと第三引数を、 編集して再帰呼出しをしています。 再帰呼出しする条件を引数に設定して実行すると、以下の実行結果(ERROR)が表示されます。 <実行結果> mysql> select hoge('7','1234','1234567891012'); ERROR 1424 (HY000): Recursive stored functions and triggers are not allowed. よろしくお願いします。
質問日時: 2014/04/18 11:46 質問者: Kamen_Ride
ベストアンサー
2
0
-
php pdo 主キー
番号 int プライマリーキ- 氏名 varchar 住所 varchar データベースで入力フォームから新規登録をしたいのですが Duplicate entry '11' for key 'PRIMARY' 11はすでに存在していると出ます オートナンバー型に変えずに"すでに登録されている番号です"というエラーメッセージを出し、もう一度登録画面に戻るしたいのですが、 try文で例外処理させれば出来ますか? また出来るのであればどういう風に記述するか教えてもらえますか?
質問日時: 2014/04/17 17:17 質問者: yama_p_4
ベストアンサー
2
0
-
mysqlでカンマデータのgroup by
初めての質問になります。 以下のようなテーブルで、dataカラムにカンマ区切りのデータを保存しているのですが、こちらはgroup byやcount等を使ってSQL一発で集計結果を取得できるのでしょうか? SELECT count(*) FROM TEST WHERE FIND_IN_SET('1', data)で1から順番に取得は出来るのですが、数が多いとちょっといかがなものかと思い、質問させていただきました。 環境:mysql5.5 ------------ |data ------------ |1,2,3 ------------ |1,2,10 ------------ |1,2,3,10 ------------ 期待する結果は以下のような感じです。 1|3 --------- 2|3 --------- 3|2 --------- 10|2
質問日時: 2014/04/17 17:09 質問者: oshiete-muu
ベストアンサー
1
0
-
MySqlでのデータソートについて
MySqlバージョン:5.1.61で、下記のSQLを実行すると、 1件しかデータが無いにも関わらず、EXPLAINの結果で 「Extra: Using where; Using filesort」が発生します。 ---------------- CREATE TABLE IF NOT EXISTS tbl ( user int(11) NOT NULL, item int(11) NOT NULL, prm1 int(11) NOT NULL, prm2 int(11) NOT NULL, prm3 int(11) NOT NULL, PRIMARY KEY (user,item) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO tbl (user,item,prm1,prm2,prm3) VALUES (1,1,10,10,10); EXPLAIN SELECT * FROM tbl WHERE user=1 ORDER BY prm1; EXPLAIN SELECT * FROM tbl WHERE user=1 ORDER BY prm2; EXPLAIN SELECT * FROM tbl WHERE user=1 ORDER BY prm3; ---------------- ORDER BY句で使用する項目(prm[n])は10項目以上になりますので 10件を超える複合インデックスを張る事は避けたいと考えております。 また、tbl全体のデータは1億件、1userあたり100~200件を想定しています。 複合インデックスを使用せず「Using filesort」を 発生させなくする事はできるのでしょうか?
質問日時: 2014/04/17 16:59 質問者: ootasuke
ベストアンサー
3
0
-
SQLで最大値を検索条件にする場合の方法
下記のような<検索対象データ>から、<取得したいデータ>を取得するSQLがわからず困っています。 ご教授下さい。 【条件】 同一[ID]で[NO]が最大のレコードのみを取得する。 <検索対象データ> IDNODATA ---------------- AA1あいうえ AA2あいう AA3あい BB1かきく BB2かき CC1さしす CC2さし <取得したいデータ> IDNODATA ---------------- AA3あい BB2かき CC1さし よろしくお願いします。
質問日時: 2014/04/17 15:30 質問者: so054055
解決済
3
0
-
mysql データ更新
一覧画面に更新ボタンを作成しました 更新ボタンを押すとkoushin_input.phpにデータを渡し入力フォームを表示され番号、氏名、住所が選択されたデータが表示されるようにしたいのでが更新ボタンを押しても下記のように出ます string(64) "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`=0" bool(false) データが削除されています ソースコードはtop.php 一覧画面です <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); if(isset($_GET["del"]) and isset($_GET["id"]) and $_GET["del"]==1){ $id=(int) $_GET["id"]; $result = mysqli_query($con,"DELETE FROM tbl_test where `番号`={$id}"); } // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=get>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<td><a href=\"".$_SERVER["SCRIPT_NAME"]."?del=1&id=".$row['番号']."\">削除</a></td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 受け取る側 koushin_input.phpです <html> <body> <?php // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // SELECT文を実行 $id=(isset($_GET["id"]))?((int) $_GET["id"]):0; $sql = "SELECT `番号`,`氏名`,`住所` FROM tbl_test where `番号`={$id}"; var_dump($sql); if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データの存在チェック if(!$row=mysql_fetch_array($res)){ $row=mysql_fetch_array($res); var_dump($row); echo "データが削除されています"; exit; } // 入力画面の出力 echo "<form action=koushin.php method=post>"; echo "名前:<input type=text name=NAME value=\"" . $row['氏名'] . "\"> "; echo "住所:<input type=text name=ADDR value=" . $row['住所'] . "> "; echo "<input type=submit value=更新>"; echo "</form>"; // 結果セットの解放 mysql_free_result($res); // データベースから切断 mysql_close($con); ?> </body> </html> どこが原因なんでしょうか?
質問日時: 2014/04/16 16:38 質問者: yama_p_4
ベストアンサー
2
0
-
php データ削除
一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </html> どういう風にpostで渡せばいいですか?
質問日時: 2014/04/16 09:44 質問者: yama_p_4
ベストアンサー
3
0
-
CSVを1行しかインポートしない・・・・・・
すいません。1つ教えて頂きたいことがあります。 http://mysqlweb.net/category/4005373-1.html このファイルを参照してCSVを取り込もうとしていますが、何度やっても1行しか取り込まないです・・・。 Warningが出て、メッセージは Non-ASCII separator arguments are not fully supported です。 改行コードが悪い、というのはわかりましたが何をどうしたら修正出来るのかわからず 困り果てております。 どなたかこの原因を解消する方法をご教授下さい。。。 よろしくお願いいたします。
質問日時: 2014/04/14 23:26 質問者: kemukemu2014
解決済
3
0
-
csv出力した内容を配列で取得できますか?
データベースのテーブル内容をサーバー上にcsv出力すると同時に出力した内容を配列で取得できないでしょうか?(PDOを利用しています) $sql= "SELECT id, name FROM tb INTO OUTFILE '/tmp.csv'"; $stmt = $dbh->query($sql); これでcsvは出力されるのですが、csv出力した内容を配列で取得したく、 $array = $stmt->fetchAll(PDO::FETCH_ASSOC); をするとGeneral Errorとなります。 先にSELECTで内容を配列で取得してから配列のループでcsvの内容を作成し、出力する方法もありますが、データ量が数十万件あるのでループ処理が遅い気がしています。 良い方法があればお教えください。 よろしくお願い致します。
質問日時: 2014/04/14 19:41 質問者: suffre
ベストアンサー
2
0
-
複合インデックスの設定に関して
MySQLの複合インデックスに関して質問させて頂きます。 現在検索条件に3つのカラムを使用して検索をかけているSELECT文があります。 データの件数は100万件ほどあるとします。 【例】 「SELECT * FROM test WHERE a = '1' AND b = 'xxxxx' AND c = '1';」 カラム「a」「c」は、0と1のみが格納されたカラムで、頻繁に更新されます。 カラム「b」は、同じ値が入ることがありますが、ほぼユニークな文字列が格納されます。 上記のような場合、インデックスは ・「a,b,c」の全てを設定した複合インデックスを作成するべきか。 ・cは頻繁に更新されるので、「a,b」のみの複合インデックスを作成するべきか。 ・aも同じく頻繁に更新されるので、WHERE句の検索順をbを先に持ってきて、「b」のみの単独インデックスを作成するべきか。 一概にこうだという答えは無いかもしれませんが、何か良い方法があれば教えて頂けると幸いです。 また、質問に不備な点がございましたら、ご指摘お願いいたします。
質問日時: 2014/04/14 15:13 質問者: non05410
ベストアンサー
1
0
-
PHP + MySQLを使用して詳細画面を開く
いま下記のソースで一覧画面が表示されます! 氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません 参考までに教えてください <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","password","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html>
質問日時: 2014/04/14 11:57 質問者: yama_p_4
ベストアンサー
8
0
-
固定長のデータをmysqlで取り込む方法
実は、かなり悩んでいるため、助けて(教えて)いただけないでしょうか? なおMysqlのバージョンは5.5.31です。 ・hoge_test.txtの中身 011010000000009 043.052927141.3446931 011000000000009 043.059576141.3581841 011010010000009 043.036466141.3242842 011010010010009 043.038999141.3229683 0110100A0020009 043.037663141.3252133 0110100E0030009 043.037048141.3238143 ※真ん中の の部分は2バイトの空白5文字。。。 先頭の11桁分は、数字+A~Z、 test6とtest7にあたる部分には、43.059576や141.358184などといった 小数点(少数6桁)のデータがあります。 といったhoge_test.txtの固定長のデータ(改行コードCR/LF)があるとき、 CREATE TABLE `hoge_test`.`hogehoge` ( `test1` varchar(11) DEFAULT NULL, `test2` varchar(3) DEFAULT NULL, `test3` varchar(1) DEFAULT NULL, `test4` varchar(5) DEFAULT NULL, `test5` varchar(1) DEFAULT NULL, `test6` varchar(9) DEFAULT NULL, `test7` varchar(10) DEFAULT NULL, `test8` varchar(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; 上記のように定義して、以下のような形で取り込んでみました。 ※小数点部分はDOUBLEを使うのもありですが・・・うまくいかなかったので文字列として取り込むことに set character_set_database=sjis; LOAD DATA LOCAL INFILE "hoge_test.txt" INTO TABLE hoge_test.hogehoge FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n' ; 上記を実行すると、こんな感じのような形となります。 '01101000000', '271', '6', '1', '', '', '', '' これを以下のようにしたいのですが、 そももそLOAD DATA で、このような固定長データを読み込むは難しいのでしょうか? オラクルでいうところのPOSITION句で各項目のレコード上の位置を指定はできないのでしょうか? http://oracle.se-free.com/utl/C2_kotei_load.html それとも単純に私の定義や取り込む方法がマズイのでしょうか?(だから取り込めないんだと思っていますが。) 最終的に、どうしたいかというと、以下のような形で、各カラムにデータが入ればOKです。 '01101000000','000','9',' ','0','43.052927','141.344693','1' そのままLOAD DATAで取り込みたいですが、この際元データをsedなどのlinux系標準のコマンドで カンマ区切りやタブ区切りに変換して、LOAD DATAで読み込んでも構わないです。 (ただエクセルで操作してというのは無しでお願いします。) ※データ量としては、200M単位です。 hoge_test.txtを sedで○○○○○で置き換えて、定義とLOAD DATAで、○○○○○で こういう風に○○○○○書けば取り込めばできるよ みたいな形でコードを教えていただけると助かります。 お手数をおかけいたしますが、よろしくお願いいたします。
質問日時: 2014/04/10 23:47 質問者: kaede2014
解決済
2
0
-
MySQLのストアドでファイルを削除
MySQLのストアド(プロシージャ/ファンクション)でテキストファイルを削除する方法を探しています。 テキストファイルは、他のファイルでも構いません。 テーブルにデータがINSERTされた時に実行されるストアドです。 system rm -f 'ファイル名'; によるファイルの削除を試みましたが、エラーが発生します。 可能であればストアドからファイルを削除したいですが、難しいようでしたら上記の条件を満たす限り、どのような方法でも構いませんので、教えて欲しいです。 各バージョンは最新バージョンとします。 大変困っていますので、どうかご協力を、宜しくお願い致します。
質問日時: 2014/04/09 17:47 質問者: kotaete12
解決済
1
0
-
MySQLのsetコマンドで文字コードを反映
MySQLの文字コードをsetコマンドで変更した後、再度ログインし直すと 元の設定に戻ってしまいます。 他にやるべき作業があるのでしょうか?よろしくお願いします。 mysql -u root show variables like "chara%"; set character_set_server=utf8; show variables like "chara%"; ←変更されている exit mysql -u root show variables like "chara%"; ←元に戻っている version 5.1.73
質問日時: 2014/04/09 15:30 質問者: popporunga
ベストアンサー
1
0
-
MySQLで住所テーブルのLIKE検索で
「CONCAT」使ったLIKE検索はできるようになったのですが、まだできない事があり質問。 東京都新宿区大久保2-26 という住所があり、下記のようにカラム展開されているとします。 東京都 | 新宿区 | 大久保 | 2 | 26 | これを「新宿区大久保2-26」で検索する場合です。 東京都 | 新宿区 | 大久保 | 2 | -26 | としておけばCONCATでまとめて検索できますが、先にハイフンを入れておく事に不自然さを感じます。ハイフンなしだと東京都新宿区大久保226でもヒットしてしまうし。 なにか対処方はあるのでしょうか?
質問日時: 2014/04/08 17:35 質問者: hige_mario
解決済
2
0
-
データベースに画像を入れた場合の速度について
こんにちは。 今phpとデータベースを勉強中でしてそれを使ったウェブサイトを作りました。 画像とその画像の説明文をいろんな条件で並び替えるサイトです。 プログラム自体はできあがったのですが、文章はデータベースに入れるとして、画像も できたらデータベースに入れたいと思い調べてみると入れる事はできるようです・・。 ただ画像の量が多く最終的には5000枚-10000枚くらいになりそうです。 複数の条件で並び替え→表示とする場合、データベースに画像を入れる場合と、サーバにそのまま置く場合では結果表示速度に差ってでるものなのでしょうか・・。(そのサイトを数十人が一度に並び替えをすると仮定して) どこかのサイトに画像をデータベースに入れるとかなり遅くなるというような事が書いてありました。 事実でしょうか? 質問の意味が分かりにくいかもしれませんが詳しい方いましたらご回答いただけると助かります。
質問日時: 2014/04/01 18:49 質問者: omochiomochi
ベストアンサー
2
0
-
MySQLの地理情報の取り扱いについて。
よろしくお願いいたします。 PostgreSQLの、 CREATE TABLE global_points ( id SERIAL PRIMARY KEY, name VARCHAR(64), location GEOGRAPHY(POINT,4326) ); というSQLの、最後の location GEOGRAPHY(POINT,4326) というところを、MySQLで、実装しようとしているのですが、MySQLにも、地理情報に関する命令はあるようですが、どうすればよいのか見当がつかなく困っています。 どなたか、MySQLでは、こういう風に書くなどのことをご存知の方おられましたら、どんなことでも構いませんので、ご教授願います。
質問日時: 2014/03/30 22:24 質問者: valox
ベストアンサー
2
0
-
【sql】DUPLICATE KEY UPについて
mysql で ON DUPLICATE KEY UPDATE といれると、 すでに同じプライマリキーのデータが存在した場合アップデートとして 扱われますが、プライマリキーが同じであり、かつ プラス条件を 課すことはできないのでしょうか? たとえば、プライマリキーが 5のデータを更新すると すでに、5のデータが存在した場合はアップデートとして扱われるが ただし、ある条件(日付が◯◯日以下等)に反する場合は アップデートも行われない。 というような処理です。
質問日時: 2014/03/30 16:08 質問者: yuzuru0024
ベストアンサー
1
0
-
【WEBプログラム設計】データの削除等について
この質問を記事投稿後 やっぱり消したいと思って、消すとします。 この時、サーバーに 「◯◯のアカウントで投稿された◯◯番の記事を削除する」 というリクエストを送っているのであれば ログインIDはセッション等から読み込むことで書き換えれないでしょうけど 記事番号は POST値やGET値をツール等で書き換えてしまったら 本来消すことのできない記事も消えてしまわないのでしょうか。 つまり SQLにして UPDATE 質問テーブル SET 表示 = 0 WHERE アカウントID = 私のID AND 記事ID = この記事のID←この値を改ざん! のようなことがおこらないように一般的にどうやって防いでいるのでしょうか?
質問日時: 2014/03/26 15:51 質問者: yuzuru0024
ベストアンサー
1
0
-
UPDATEとSELECTのEXPLAINの違い
UPDATE、SELECTで共に同一のテーブルの同一の主キーを指定したWHERE検索をEXPLAINで行ったところ、 SELECTに関してはtype値がconstになり、 UPDATEに関してはtype値がrangeになりました。 その他の違いといえば、UPDATEの場合はExtra値がUsing whereになるだけで、他は特に差異がありません。 UPDATEで変更する列にインデックスを作成してみても(WHEREで指定する列も含め)、やはりconstにはなりませんでした。 なぜこのような違いが発生するのでしょうか? また、UPDATEステートメントでもtype値をconstにするためにはどのようにすればよいでしょうか? よろしくお願いいたします。
質問日時: 2014/03/25 13:22 質問者: sainte
解決済
1
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【MySQL】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 1068 (42000): 複数の主キー...
-
【投稿情報用データベース posts】...
-
SQLです!!教えてください。あって...
-
本を見ながらPHPを勉強している初心...
-
mysqlがインストールされているのか...
-
`picture` varchar(255) のコマンド...
-
同一日に複数レコードがある場合に...
-
MAMP 99ドル約1.6万円 高いですね
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年月日`...
-
SQLです教えてくださいお願いします
-
SQLを作ったのですがうまくいきませ...
-
(初心者)MySQLやmaraDBで、create t...
-
SQLです教えてくださいお願いします?
-
SQLです教えてくださいお願いします
-
SQLです教えてください。
-
SQLです教えてくださいお願いします
-
SQLです教えてくださいお願いします...
-
SQLです教えてくださいお願いします↑正
-
utf8bomとutf8mb4の違いがいまいち...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlがインストールされているのか...
-
エラー 1068 (42000): 複数の主キー...
-
SQLでカラムを追加し、条件に合致し...
-
【初歩】ラジオボタンをつかったPHP...
-
テーブル名が可変の場合のクエリの...
-
#1062 - '0' は索引 'PRIMARY' で重...
-
データベースの接続に失敗してしま...
-
下記の問合せを行うクエリを、PhpMy...
-
SQLです。こんな感じですか?あって...
-
mysqlのupdate構文についての質問で...
-
下記の問合せを行うクエリを、PhpMy...
-
MySQLでcreateが使えない MySQLを使...
-
utf8bomとutf8mb4の違いがいまいち...
-
SQLです教えてくださいお願いします...
-
mysqlがインストールされているのか...
-
MySQL NULLだけをカウントして抽出...
-
うまくいきません教えてくださいお...
-
SQLで日付別のIDを生成するには
-
SQLです教えてくださいお願いします
-
SQLで漢字名称を都道府県や市区町村...
おすすめ情報