PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0242241
02/07/24 03:02ID:???$row["agemax"]→$row["maxnum"]ね
自分のスクリプトからコピペってそのまんまだった
逝ってきます
0243238
02/07/24 17:23ID:???ありがとうございます。
$result=mysql_query("SELECT max(number) as maxnum FROM hogehoge");
$row=mysql_fetch_array($result);
echo $row["maxnum"];
で出来ました。かなりすっきりして嬉しい限りです。
本当にありがとうございます。
0244ロリ
02/07/24 22:29ID:o7AisP6C欲しいけどルートが分からない初心者にもやさしく
“とにかく安く、そして確実に”
少女の道草、マニア撮りロリータ・・・etc.
サンプルはタダでした。良かったらみてください。一日しのぎのネタには
なると思います。今ならおまけもレアなあります。数に限りがあるんでお早めに。。
http://up.to/muke
0245初期不良
02/07/26 06:13ID:???count(hoge) は指定がなければ count(hoge) as count になる。
一回 order 無しで出力させてみればわかる話だろ。
よってこれで逝ってよし。他の DB でも同じ。
select job,count(job) from emp group by job order by count desc;
0246nobodyさん
02/07/27 20:43ID:???入力データのチェックはどのようなことをすれば大丈夫なのでしょうか?
0247nobodyさん
02/07/29 21:36ID:DzCwMCFnLinux+PHP+MySQLに移行しようと思っています。mdb形式のテーブル
からデータをMySQLに移すにはどうやったらいいのでしょうか?
0248nobodyさん
02/07/30 18:47ID:???ふつ〜は addslashes () と ereg_replace () との組み合わせで OK のはず。
$user_name = addslashes ($_POST['user_name']);
$user_name = ereg_replase ("",";*",$user_name);
$sql = "select * from user_data where user_name=....以下略
ってな感じ。
0250nobodyさん
02/08/02 22:57ID:mm5hI6aiなるほど。なんか難しい処理を想像していたのですが、それで
解決しそうです。
0251nobodyさん
02/08/03 03:11ID:uQ0/1o1fC のコードは見つかったけど、php の実装って何も考えないオンメモリ
のヤツしか見つからない。
0252nobodyさん
02/08/04 22:38ID:FmVTsZMs$user_name = ereg_replase (";*","",$user_name);
こうだよね。
0254nobodyさん
02/08/06 22:52ID:nNpJo1Dzマジっすか。
初心者なんですが、テーブル作るの面倒だけど、
かねやんのMySQLAdminでテーブルだけ作って、cseで
csvから読み込みかな、と思ったんだけど。
Accessから、MySQLのテーブルにアクセスする手もあるから、
そっち経由での取り込みもありかな。
0255nobodyさん
02/08/06 23:43ID:???Accessで元ファイルを開いてエクスポートすればいい。
テーブルの回数分繰り返す必要があるけど、わりと楽な方法だと思う。
0256254
02/08/07 20:16ID:y8G64wf5>>Accessで元ファイルを開いてエクスポート
おお、そりゃ凄いって思ってやって見たんだけど、
「ODBC呼び出しが失敗しました」エラーが出ちゃうんです。
MySQL用のドライバは登録済みで
MySQLからのテーブルのリンクや更新は出来るんですが、何が原因なんでしょ?
0257nobodyさん
02/08/07 21:18ID:???他に何かメッセージ出てない?
Access2000→MySQL3.23.42(MyODBC-SJIS2.50.29.00と2.50.39.00)なら問題なくできてる。
MySQL側のデータベースにエクスポートするテーブルと同じ名前のテーブルが
あるとかいう落ちじゃないよね?
あとはODBCの登録のユーザの権限が足りないとか。
0258254
02/08/07 23:44ID:y8G64wf5Access2000→MySQL3.23.49Max debug OS WinMe
あ、ODBCが安定版と3.51版二つ入ってるから、それかな?
どっちもeucのパッチ当ててるけど、3.51版じゃ、アクセスにリンクして
開いたとき、文字化けしちゃったんですよ。安定版なら問題無かったです。
同じテーブル名では無いです。ユーザ権限は、インストール直後の
匿名ユーザが生きてるので、それで入ってます。
0259254
02/08/08 00:18ID:???「ODBC呼び出しが失敗しました」
[MicroSoft][ODBC Driver M (#0)
てなメッセージ。
MySQLにリンクしたテーブルは見えていて、更新も出来る状態です。
0260nobodyさん
02/08/08 19:23ID:???Accessのヘルプでものってない?
接続に失敗してるような気もするけど・・・
0261nobodyさん
02/08/23 21:30ID:XKTv55iv0262nobodyさん
02/08/23 21:46ID:???http://www.ipa.go.jp/security/awareness/vendor/programming/a02_01_main.html
dbiを理解しようとしてたので解らなかったのでした
0263nobodyさん
02/08/29 18:57ID:hMlp4ywr0264nobodyさん
02/08/29 20:29ID:???0265nobodyさん
02/09/01 05:16ID:ViCsMguiこれからMySQLを使おうと思っているのですが、
iモードでもMySQLは使えるのでしょうか?
よろしくお願いします。
0266nobodyさん
02/09/01 09:18ID:???0267みかか ドキュモ
02/09/01 09:23ID:???0268nobodyさん
02/09/01 20:01ID:RgHbazF4php+MySQLで、i-Mode用サイトを作り、i-Modeでアクセスすることは出来ます。
# EzWeb用も作ってくれ
0269nobodyさん
02/09/04 01:49ID:bvAr4qMV・トランザクションが無い
・福問合せができない
・トリガも使えない
こんなのデータベースと呼ぶのか?
RDMNSが使いこなせないDQNが使う代物じゃねーの?
0270PostgreSQL使い
02/09/04 02:17ID:JM4qWSZC> ・トランザクションが無い
Use MySQL-MAX
> ・福問合せができない
> ・トリガも使えない
使わなくて済むようにプログラム書け、というのが
MySQLの主張です。
> こんなのデータベースと呼ぶのか?
> RDMNSが使いこなせないDQNが使う代物じゃねーの?
MySQLは、いわゆる「RDBMS」ではなく、「SQLで入出力できるストレージ」と
考えて使うのが正しいような気がします。
0271nobodyさん
02/09/04 05:26ID:USu456uJDBというものに最近はじめて触れました。
ゲームのようなものを作っています。
アカウントごとに、アイテムを持たせます。
そのアイテムの個数は、可変です。
このようなアカウントごとの所有アイテム情報をDBに保持したい時、
どのようにやるのがベストでしょうか?
0272nobodyさん
02/09/04 11:11ID:???DBを使わないで、ファイルに保存するとして、アイテムの数を可変にするならどうする?
勝手に妄想してみると、アイテムの種類が多いor今後増えそうなら
id,アカウント名,パスワード,ハンドル,レベル,gold,・・・,アイテム数文字列
と言うようにしておいて(1レコード=1アカウントとする)、
「アイテム数文字列」に "アイテム1,アイテム2,・・・"と、カンマ区切りの文字列にしておく。
ただし、アイテム数でランキング表示するなどはやりにくい。
0273nobodyさん
02/09/05 00:36ID:uSX7DJwq配列を一つのカラムに入れるのはどうなのか?
と思っていたのですが、
それもアリなんですね。
0275271
02/09/05 01:12ID:???272さんへのレスでした。
0276nobodyさん
02/09/05 02:03ID:???アイテムの数や種類をその都度updateするんなら
きっちりと定期的にバキュームしてやらないと
DBが大きくなるぞ。
それより、テーブルを分散した方がよい。
ユーザー情報テーブルと、アイテムテーブルに。
アイテムテーブルには、
|ユーザーID|アイテム1|
|ユーザーID|アイテム2|
の様に・・・
ユーザー情報の方が大切なんだから、頻繁に更新しないほうが良い。
0277nobodyさん
02/09/06 14:30ID:???普通に考えれば、
アイテムID, ユーザID のフィールドを持ったテーブル用意して
そこにがつがつ詰め込んでいくんじゃない?
全アイテムに固有のID持たせるのか、アイテム種ごとにID持たせるのか、
とか、仕様によっていろいろ変ってくるだろうけど。
0278nobodyさん
02/09/06 20:14ID:EPlc0hR1id カテゴリ
+-+---+
|0| A |
|1| A |
|2| B |
|3| B |
+-+---+
1・カテゴリで分類して
2・分類内では ID が一番大きいやつ
をとりだしたいのです。
欲しい結果
+-+---+
|1| A |
|3| B |
+-+---+
で、この場合SQL はどうなるんでしょうか?
SELECT id,`カテゴリ` FROM `表` GROUP BY `カテゴリ`
とかやってみたんですが、2番目の条件がうまくいきません
おしえてください
0279☆
02/09/06 20:17ID:zUklKDWISELECT max(id) , カテゴリ FROM 表 GROUP BY カテゴリ ;
ダメっぽいかな??
0280nobodyさん
02/09/06 20:28ID:EPlc0hR1すんません、それでうまくいきます(^^;
本当にしたかったのはじつはこんなことなんです
id カテゴリ 名前
+-+---+------+
|0| A |あああ|
|1| A |いいい|
|2| B |ううう|
|3| B |えええ|
+-+---+------+
1・カテゴリで分類して
2・分類内では ID が一番大きいやつ
を
3・名前欄付きで
とりだしたいのです。
欲しい結果
+-+---+------+
|1| A |いいい|
|3| B |えええ|
+-+---+------+
0281nobodyさん
02/09/06 20:29ID:EPlc0hR1MYSQLなのよ(;´д⊂)
0282nobodyさん
02/09/06 20:32ID:EPlc0hR1SELECT MAX(id),`カテゴリ`,`名前` FROM `表` GROUP BY `カテゴリ`
とやると
+-+---+------+
|1| A |あああ|
|3| B |ううう|
+-+---+------+
になります
02838月のクリスマス ◆zzfy/JR2
02/09/06 20:47ID:zUklKDWI>SELECT MAX(id),`カテゴリ`,`名前` FROM `表` GROUP BY `カテゴリ`
これって GROUP BYの式がありません
というエラーが出ませんか???
02848月のクリスマス ◆zzfy/JR2
02/09/06 20:50ID:zUklKDWIもっと良いやり方はあると思うけど
select a.*
from (select max(id) id from test_tbl group by cat) b,
test_tbl a
where a.id = b.id ;
こんな感じでどうでしょうか???
0285nobodyさん
02/09/06 21:09ID:EPlc0hR1ありがとうございます。MySQL なんで副問い合わせができないんですよね(;´д⊂)
シンタックスエラーが出ます
ちなみに、282 の式だと エラーは出ません。
MySQL では GROUP BY にないフィールドでも普通に選択できます。
ただ、グループ内のどれが選ばれるかわからない諸刃の剣
グループ内で値がそろってるときには便利なんですが
0286nobodyさん
02/09/07 12:01ID:???どうよ?
0287nobodyさん
02/09/10 10:05ID:JRVUQPEU挿入がうまくいきません。コードは以下です。
【PHP】質問スレッドでたずねたのでマルチになりますが。。。
/**
* インサートテスト
*
* @access public
* @param ProductState $ps 製品状態情報
*/
function insert3($ps)
{
// DB接続
$this->connect(); // $this->db = DB::connect( $dsn )にて取得。
// SQL文
$sql = "INSERT INTO user (id,name,date) VALUES (?,?,?)";
// Statement取得
print "date=" . date("Y-m-d H:i:s",time()) . "\n";
$stmt = $this->db->prepare( $sql );
// SQL発行
// $this->db->execute($stmt, array($ps->id,$ps->name,time())); //これもだめでした。
$this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
// DB切断
$this->db->disconnect();
}
※日付は現在時刻を挿入する。
※Access2000(MySQLでありません)のデータ型→日付/時刻型 (書式:yyyy/mm/dd HH:mm:ss)
※日付型以外(文字列、数値型)はうまくいきます。
エラー内容
SQLエラー → ステートは37000
0289287
02/09/10 14:38ID:20uIzqy9とりあえず。現状、テーブルに規定値 「Date()+Time()」が入るようにしていますが、これからことを考えて知っておく必要があるのです。
0290nobodyさん
02/09/10 14:39ID:20uIzqy9すいません。288は 280に対する答えでした。
申し訳ありません。
0291nobodyさん
02/09/11 23:36ID:thYL5S/gありがとうございます
特に処理が重くならないようなら...
メモリにいったん取り込むのはどうなんだろう、という気はします
0292nobodyさん
02/09/12 11:07ID:8CV8MtvhLIKE '%(ア%' AND 'ア%' など。
どなたか教えてください。
よろしくお願いします。
0293M
02/09/12 17:59ID:???DBに格納されている文字と検索文字の文字コードは同じになってる?
0294271
02/09/15 05:59ID:b9MOuSqZありがとうございました。
アドバイスを参考にして設計しなおしました。
ユーザー情報とは別に「所有アイテム情報テーブル」を作って、
所有者ID
番号(所有者IDごとに連番)
アイテムID
その他…
の列を作ります。
削除/取得時のレコードの処理をすっきりさせるため、
アカウント作成時に、
アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)
アイテム取得時には、
アイテムID=nullで一番若い番号のレコードに、情報を書く。
アイテム削除時には、
当該レコードのアイテムIDをnullにする。
検索速度を上げるために、ユーザーIDでインデックスを作る。
というようなものです。
これは妥当でしょうか?
0295nobodyさん
02/09/16 05:55ID:???>アイテム最大所持可能数分のレコードを、あらかじめ番号を振って作っておきます。
>(まとめて並べておいた方が検索が速くなるんじゃないかという事も期待して)
updateをしたら、見た目には並んでても、データベースの内部的にはバラバラになっていきます。
それに、アカウント取るだけ取って利用しないユーザーも居るはず。
今現在使ってるレコード以外、作る必要なし。
ま、MySQLなら相当なレコード数じゃ無い限り、スピードの事は考えるな。
インデックスも、レコード数が少なければ逆効果という罠。
0296nobodyさん
02/09/18 10:52ID:uXrI3/gA>インデックスも、レコード数が少なければ逆効果という罠。
まぢですか!( ̄□ ̄;)!!
実際、どれくらいから効率的なのでしょうか?
0297294
02/09/19 10:36ID:+XOYWduWそうなんですかー。
DBの速度とか負荷が未経験なので、
かなり臆病なプログラミングになってる感じなんですが、
そんなに細かい気を遣う必要もないんですね。
0298名無しさん@そうだ選挙にいこう
02/09/19 10:57ID:D+O6nPi3調べてもわかりません。教えてください。
0299nobodyさん
02/09/19 22:38ID:jD2DR/iO外注してください。
お願いします。
0300nobodyさん
02/09/20 00:57ID:???>MYSQLにデータを書き込む時ってロックはいるの?
データの整合性を保つため、基本的に必要。
ただし、CGIなどでファイル書き出しと読み込みでかち合うために、
ファイルを壊す、といった事は無い。
0301nobodyさん
02/09/20 14:10ID:???>CGIなどでファイル書き出しと読み込みでかち合うためにファイルを壊す
こんな事ってあるの?
同時書き込みだけだと思ってたが…
0302nobodyさん
02/09/20 23:44ID:???ファイルを壊す、といった事は無い。
0303nobodyさん
02/09/21 08:50ID:0HoT4fY5selectした値をPHPで++してupdateするのではなく、
一文のSQLで書くことはできませんか?
0304nobodyさん
02/09/21 16:29ID:???PHPそのものの機能にはないですよね?
自前でプールクラス用意するしかないのかな
0305300
02/09/21 16:56ID:???>ファイルを壊す、といった事は無い。
そうだね。ファイルの中身が壊れる、だ。
>>303
update test set value=value+1 where id=1
0306nobodyさん
02/09/21 20:15ID:bcr2D3RXを使った無料検索エンジンスクリプトって
どこかにないでしょうか?
アクセスランキングじゃない奴です。
0309あぼーん
NGNG0310nobodyさん
02/09/24 16:49ID:???∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д` ) < 通報しますた!
/, / \_______
(ぃ9 |
/ /、
/ ∧_二つ
/ /
/ \ ((( ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ /~\ \ ( ´Д` ) < 通報しますた!
/ / > ) (ぃ9 ) \_______
/ ノ / / / ∧つ
/ / . / ./ / \ (゚д゚) ツーホーシマスタ!
/ ./ ( ヽ、 / /⌒> ) ゚( )−
( _) \__つ (_) \_つ / > (・∀・)ツーホー!
0311うんこ
02/09/27 12:51ID:s5yVUu+t持続的接続のことでしょうか?
http://www.php.net/manual/ja/features.persistent-connections.php
http://www.php.net/manual/ja/function.msql-pconnect.php
0312304
02/09/28 00:48ID:c3sX3Ag2>>311
あ、ありがとう。いつも普通にmysql_pconnect()使ってるのに
まったく気づいてなかった・・・。
たしかにこれでいけてるようですね。
今度時間があれば負荷はかってみます。
0313nobodyさん
02/09/28 01:40ID:AP2KcdnO0314名無しさん@そうだ選挙にいこう
02/09/28 10:59ID:???おう!がんがれ!
0315nobodyさん
02/09/30 09:52ID:KKxE6nj4みなさんどのように対処してます?
0317315
02/09/30 11:34ID:KKxE6nj4resありがとうございます
バージョンによっては出来るとか出来ないとか書いてあったんです・・・
それで出来ない人はどういうふうに対応してるのかなって思って
あうぅ。。。トランザクションエラー処理かけて戻したいですぅ・・・(T-T
0318noodyさん
02/09/30 11:40ID:???0319317
02/09/30 12:07ID:KKxE6nj4Maxですか???
0321noodyさん
02/09/30 12:40ID:???http://www.mysql.jp/mysql/TIPS/transaction.html
0322319
02/09/30 12:50ID:KKxE6nj4ありがとうございます
さっそく調べて実行してみます
0323319
02/09/30 13:19ID:KKxE6nj4http://www.innodb.comからダウンロードして設定すれば使えるようになるかな?
0324319
02/09/30 13:47ID:KKxE6nj4mysql Ver 11.12 Distrib 3.23.33, for pc-linux-gnu (i686)
これはバージョンアップした方が早かったりするのか・・・
0325nobodyさん
02/10/01 02:33ID:???php側はどのように書けばいいですか?
0326nobodyさん
02/10/01 14:28ID:EJy0Vdqk300になったらって、なにが300かわからん
具体的な表があると答えやすいかも
0327319
02/10/01 15:13ID:dCttkLX0LOCK TABLEでいくつかの処理が行えるという事がわかったんですが
使用方法がいまいちわかりません・・・。
rollback処理のように開始状態に戻すにはどのようにすればよいのでしょう?
↓普通にOCK TABLEを使用した例です
mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> TRUNCATE TABLE insert_table;
mysql> UNLOCK TABLES;
よろしくお願いします
0328nobodyさん
02/10/01 15:28ID:???ありがとうございます。
┌──┬────┬────┐
│ id │ Mem │ Mail │
├──┼────┼────┤
│1 │Xxx │Xxxx │
├──┼────┼────┤
│ │ │ │
│299 │Xxx │Xxxx │
├──┼────┼────┤
│300 │Xxx │Xxxx │
└──┴────┴────┘
↓
┌──┬────┬────┐
│ id │ Mem │ Mail │
├──┼────┼────┤
│2 │Xxx │Xxxx │
├──┼────┼────┤
│ │ │ │
│299 │Xxx │Xxxx │
├──┼────┼────┤
│301 │Xxx │Xxxx │
└──┴────┴────┘
データが300というのはこんな感じなんですが、掲示板のように後からデータ入力されて蓄積されるので、
id 1が古いデータになるので、id 301 が追加されると、id 1 が削除される。
この時の300という上限枠をどのようにしたらいいのか
わからない、というかどんな感じにすればいいでしょうか?お願いします。
0329hmk
02/10/01 15:50ID:???まず、
"SELECT COUNT(*) FROM the_table" の結果を変数 $cnt に代入せよ。
そして、
"DELETE FROM the_table WHERE id<=${cnt}-300" せよ。
0331nobodyさん
02/10/03 13:23ID:m4AMz0v6COUNT しちゃだめっしょ うまくいくのは一回目だけ...
0332nobodyさん
02/10/03 13:32ID:???正ならその分だけ上から Delete。
0333nobodyさん
02/10/07 16:51ID:???0334nobodyさん
02/10/07 19:16ID:???Webプログラミングしてる人間が少ないのか?
0335hmk
02/10/07 19:57ID:???そうでした。失礼しました。
>>334
何ででしょうね。
本業でやってる人はこんなところに来る必要なないにしても、趣味でいじくってる人は沢山いてもよさそうだが。
他の板とか2ch以外のところで解決してるのかな。
0336nobodyさん
02/10/08 14:53ID:???0337nobodyさん
02/10/08 15:40ID:???http://www.mysql.com/doc/en/SELECT.html
0340nobodyさん
02/10/09 15:13ID:???どのような方法があるのでしょうか?
現在は SELECT 文を発行して
mysql_error() から判断していますが、
何か他にスマートな方法があるのではないかと思いまして……。
0341nobodyさん
02/10/09 15:42ID:k7vFrv7Zあんがい、'show databases' がつかえたりして
PHPで一階層上のファイルを指定するにはどうしたらよいのでしょうか?
HTMLで1階層上を指定するには「../」(ドットドットスラッシュ)ですが、
PHPで同じ事をやろうとしてもうまくいかないみたいです。
すごく初心者な質問で申し訳ないのですがどなたかご教授お願いします。
■ このスレッドは過去ログ倉庫に格納されています