PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0442nobodyさん
02/11/28 12:31ID:+5GONPaTレコードの数字部分の最小の値を得たいのです。
例えば
AB-001
AB-002
AB-003
ならばAB-004を
AB-002
AB-001
AB-100
ならばAB-100を
得るようにしたいのですが、どのようにしたらよいでしょうか?
AB-001から順番に調べていくのでしょうか?
スマートな方法があればうれしいです。
宜しくお願いします。
0443nobodyさん
02/11/28 14:47ID:???ABってのが入ってるのと001が入ってるフィールドは別?
同じフィールドにハイフン区切りで入ってるの?
AB-xxxって値が入ってるの?全部AB?
最小なら上の例なら001、下の例なら002じゃないの?最大の間違い?
0444nobodyさん
02/11/28 15:21ID:+5GONPaTすいません。
日本語がわやな上に言葉がいろいろ抜け、さらに間違っています。
文字列レコード(primary keyを指定しています)
の数字部分の使用されていない最小の値を得たいのです。
例えば
AB-001
AB-002
AB-003
ならばAB-004を
AB-002
AB-001
AB-100
ならばAB-003を得たいです。
0445nobodyさん
02/11/28 15:21ID:+5GONPaT$record[] にレコードを全て取得しているとして
$prefix = "AB-"として、
for( $i = 1; $i <= count( $record ) + 1; $i++ ){
// 個数より2以上大きい数が最小となることはない
sprintf( $check_str, "%s%03d", $prefix, $i );
$check = true;
for( $j = 0; $j < count( $record ); $j++ ){
if( $record[j] == $check_str ){
$check = false;
break;
}
if( $check )
break;
}
echo $check_str;
スマートな方法があれば教えて下さい。
0446nobodyさん
02/11/29 00:30ID:???テーブル設計をみなおす
0447nobodyさん
02/11/29 23:10ID:kyVi4Psy調べてみると、
telnetで直接insertしようとしても、えんえん待たされる状態になりました。
同じdatabaseの他のtableにはinsertできるのですが…。
これはどのような原因が考えられますか?
0448447
02/11/29 23:47ID:kyVi4Psyselectは出来ますが、
telnetでeucの日本語が文字化けするので
ちゃんとできているのかはいまいち分かりません。
ロックはかけてませんが、テーブルが壊れることはない、
と過去ログにはあるし…なんなんでしょう?
0450447
02/11/30 02:33ID:???レスありがとうございます。
なんとも不可解だったのですが、
MySQLもインストールしてある/usrが
Apacheのログで100%Usedになっていたのが原因でした。
おさわがせいたしますた。
0451nobodyさん
02/11/30 08:11ID:67+5HzncみたいなPHP + MySQLの初心者向けのサイト教えてください。
0452nobodyさん
02/11/30 12:17ID:jN+HZDrEMySQLの導入
http://www.rfs.jp/server/mysql/index.html
PHP/MySQLチュートリアル
http://www.hotwired.co.jp/webmonkey/programming/php/tutorials/tutorial4.html
PHPマニュアル
http://www.php.net/manual/ja/
0453nobodyさん
02/12/01 18:22ID:???例えばアクセス解析スクリプトとか。
というのも、当方が使ってる解析スクリプトは Les Visiteurs なんですが、解析表示で MySQL の CPU 使用率が百パーセント近くになってしまうんです。
Win32 で MySQL をお使いの方、貴殿のマシンではどうですか?
0454nobodyさん
02/12/02 15:37ID:???自己レスです。
とりあえずprefixはテーブルの外に出して番号だけを入れるようにしました。
で、全検索しますた。お騒がせしました。
>>453
うちもそうなります。カーソルまで固まりますね。
現状はそういうもんかと思っていますが、、
0455453
02/12/03 21:32ID:???レスポンスありがとうございます。
そうですか。やはりWin32ではそうなるようですね。
PC-UNIXへの乗り換えを真剣に考えてみたいと思います。
0456nobodyさん
02/12/05 00:18ID:kQitN0HNwhileで回して毎回selectで読みに行くようなやり方でいいんでしょうか?
もっと上手いやり方とかありませんか?
0457nobodyさん
02/12/05 00:29ID:VZIKFHpLこういうことじゃなくて?>>456
0458nobodyさん
02/12/05 14:18ID:???質問があります。
PHP とか MySQL って、EUCだと思うのですが、
全て S-JIS で組みたいんです。
どうすればできるようになるのか教えてください。
0459nobodyさん
02/12/05 14:23ID:???0461nobodyさん
02/12/05 16:08ID:Z0U+Oe8ha.phpとb.phpがあって、それぞれmysql_pconnectでMySQLに接続しているとします。
その際、a.phpの接続をb.phpでも再利用してくれるのでしょうか?
それとも、a.phpで確立した接続は次にa.phpがリクエストされた場合のみ再利用されるのでしょうか?
0462nobodyさん
02/12/05 16:39ID:???0463nobodyさん
02/12/09 01:33ID:???相場はどのくらいよ?みんな自鯖なわけ?
0464nobodyさん
02/12/09 05:46ID:vvvONNMO携帯はEUCじゃないんで、少し気になったのですが、
MySQLに入れる文字列、S-JISで問題ないですか?
0465464
02/12/09 05:53ID:vvvONNMOEUCにしてからDBに入れる、
取り出してからSJISに変換…というやり方でいいのでしょうか?
0466nobodyさん
02/12/10 00:57ID:ZDH4nUdeたぶん正解。あとでトラブりたくないならそれがベストでしょう。
0467nobodyさん
02/12/10 21:21ID:1xJ1WsMKWin98にApache+PHP+MySQLをいれたのですが、
データベースのデータはDOSプロンプトからしか作成できないのでしょうか?
それと、
<?php
$link=mysql_connect("localhost","root","????");
if ($link==false) die("接続できてない");
print "接続完了!!";
mysql_close($link);
?>
このソースをWebにUPしたときは、"localhost"と"root"と"????"の場所には
何を記述すれば良いのでしょうか?
0468nobodyさん
02/12/10 21:45ID:???( ,,)┌─┴┴─┐
/ つ. 厨房警報 |
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛゛'゛゛'゛゛'゛'゛゛'゛'゛゛゛゛'゛゛゛'゛゛
0469nobodyさん
02/12/10 22:16ID:nfrh3Etoただ、データベース管理ソフト(PHPスクリプトではない)などを用いた場合はこの限りではない。
localhostの部分は、貴方のマシン上でデータベースが走っていれば変えなくてもいい。
rootは貴方が前もって作成した自分のユーザー名、????はそのパスワード。
ところで皆さん、今日はサボらず仕事しますたか?
0470nobodyさん
02/12/10 23:29ID:???まさか。一日中2ch三昧デスヨ
0471nobodyさん
02/12/11 03:23ID:wyfErbBzカウンタでorder byしてselectしてた結果セットから、
指定した範囲のデータを取り出すにはどうすればいいのでしょうか?
0474nobodyさん
02/12/11 06:40ID:???0475471
02/12/11 09:00ID:???そうです。
>>474
ありがとうございます。
全取得してmysql_data_seek使ってました。
SQLの段階でlimitを使えるんですね。
0476質問です
02/12/11 16:44ID:???どのようにすればいいんでしょうか?
0477nobodyさん
02/12/11 16:59ID:???0478bloom
02/12/11 17:02ID:tfVVditWhttp://www.agemasukudasai.com/bloom/
0479質問です
02/12/11 17:02ID:???ありがとうございます!
TIME_FIELDはDATETIMEで「2002-12-11 17:00:00」のような感じでいいんでしょうか?
それともUNIX時間のようなものを登録したほうがいいんですか?
0480nobodyさん
02/12/11 17:07ID:???> TIME_FIELDはDATETIMEで「2002-12-11 17:00:00」のような感じでいいんでしょうか?
うん。
0482あの〜
02/12/11 20:14ID:ev3EQy1k簡単にデータ移行できるソフトとか方法があったら教えて欲しいのですが…
dumpとかよくわからなくて…
0483nobodyさん
02/12/11 20:27ID:???0484nobodyさん
02/12/11 21:38ID:???0485あの〜
02/12/12 14:14ID:ZuG/4ZFd一度csvにダウンロードして、phpMyAdmin内で「テーブルにテキストファイルの追加」ってので一応できました。
ただ、文字化けの問題だけが…
一部ですが、文字化けする文字のエスケープ処理!?が解決できれば(^0^)/なんですが…
ちなみに、元データは文字化けをしない状態にして保存されています。(\とかが付かない状態)
0486nobodyさん
02/12/13 00:28ID:???0488しつもんくん
02/12/13 22:47ID:suET/Tk2追加したとします。
その直後に、auto_incrementのフィールドに入った値を知る方法はありますか?
0489nobodyさん
02/12/13 22:52ID:???0491nobodyさん
02/12/14 00:18ID:???大変助かりました。ありがとうございます。
>>489
一応検索したけど見つけることができませんでした。
insert into じゃなくてinsert で探せば良かった・・・
0492nobodyさん
02/12/14 18:38ID:ReF0iUS4$result = mysql_query("select id from test");
$num_rows = mysql_num_rows($result);
よりも、簡単な方法はありませんか?
$result = mysql_query("select count(id) from test");
で、求められるようにも思えるのですが、いまいち方法がわからないです。
最初のやり方だと、行数がふくれたときに重くなりそうな気がしますし。
0493nobodyさん
02/12/14 20:25ID:???でデータを取得できると思う。
ただし、やってることは同じ。軽くなりません。
0494492
02/12/14 23:37ID:???返答ありがとうございます。勉強になりました。
とりあえず、データを挿入するときに、別の場所に挿入した行数を保存することで
対処しようかと思います。
0495nobodyさん
02/12/15 03:21ID:???みたいに、名前を付けて、
$rows = mysql_fetch_arrya( $result ) ;
$num_rows = $rows["n_rows"] ;
とできるんじゃなかったけ? (実行環境が無いので自信無し)
取得後は、
mysql_free_rusult( $result ) ;
とメモリを開放してやること。
「別の場所に挿入した行数を保存」するのは、管理が大変じゃないかな。
0496nobodyさん
02/12/16 23:56ID:???その値の古い順に削除するにはどうすればいいですか?
$query = "DELETE FROM table_name WHERE 1 > 0 ORDER BY date_field LIMIT $cnt";
これだと文句言われるです
0497496
02/12/17 00:14ID:???0498nobodyさん
02/12/17 22:46ID:UtA/ADywphpdevなるものをインストールしました。
http://www.firepages.com.au/
結構楽かも。
http://www2a.kagoya.net/~adults-toybox/sample2.wmv
http://www2a.kagoya.net/~adults-toybox/
0500nobodyさん
02/12/17 23:01ID:???0501nobodyさん
02/12/17 23:53ID:???嬉しいのは分かるがphpdevの説明ぐらいしてください。
「phpdevとは、Windowsに PHP、MySQL、Apache、 (PERL)などをインストールするパッケージです」
>>500
嬉しいのは分かるが、最後にズサーが抜けてます。
0502nobodyさん
02/12/18 20:26ID:5JJf1BHQわからない部分がありましてご教授願えたらと思い投稿させていただきます。
1 $c=mysql_query("select id from TW_click where url='$j' order by id desc limit 1");
2 $d=mysql_fetch_object($c);
3 if(is_object($d)){
4 mysql_query("update TW_click set hits=hits+1 where id={$d->id}");}
5 mysql_query("insert into TW_click (url)values('$j')");}
4行目の id={$d->id} というのは何を意味しているのでしょうか。
申し訳ありませんがよろしくお願いします。
0504nobodyさん
02/12/19 17:29ID:lzLv+VhC$d->idというのは,$dというオブジェクトのidという変数のこと。
中身は
select id from TW_click where url='$j' order by id desc limit 1
の結果。
0505nobodyさん
02/12/19 18:25ID:???> >>502
> $d->idというのは,$dというオブジェクトのidという変数のこと。
オブジェクトと言うより、インスタンスだよね
0506nobodyさん
02/12/19 22:40ID:6CY601Q7|名前 |持ち物 |
+-----+-------+
|A |りんご |
| |バナナ |
+-----+-------+
|B |みかん |
+-----+-------+
こういうのはどうやったらできるのでしょうか?
0508nobodyさん
02/12/19 23:41ID:???+-----+-------+
|名前 |持ち物 |
+-----+-------+
|A |りんご |
| |バナナ |
+-----+-------+
|B |みかん |
+-----+-------+
mona;
0510kodokuman
02/12/20 15:22ID:???↑上のソースはサーバーに載せてもエラーはでないのですが・・・
メール配信の方がされません!僕のは何が間違えてるかわからないんですけど、誰かわかりますか?
0511nobodyさん
02/12/20 16:55ID:???メールログ見れるなら、それ見れば即解決。
0512502
02/12/20 21:30ID:???ありがとうございます。
なんとなくわかったようなわからないような、ですが…。
そもそもオブジェクトの意味すら掴みかねている状態ですのでもう少し勉強してみます。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8&sw=2
?(;´Д`)
ありがとうございました。
0514nobodyさん
02/12/24 21:38ID:Wt8tE8W2(2バイト目に"C5") で文字化けが起きるのはどうやったら回避できるん?
0515nobodyさん
02/12/24 21:52ID:ISz3CA8u0516nobodyさん
02/12/26 00:51ID:???プププ
オブジェクト指向理解していない奴がPHPに手をつけるなよw
WEBプログラミングはCGIでC言語使ってやってろw
0518nobodyさん
02/12/26 18:38ID:??????
0519nobodyさん
02/12/26 21:15ID:???OOPがらみでデザインパターンやってる人がいた。
http://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_list.shtml
まだPHPでOOPする必要に迫られたことないけど、練習くらいはしといたほうがいいかもね。
PHP+MySQLだとDreamWeaverMXが気になるけど、使った人いる?
オレ?PostgreSQL使ってる...スマソ
0520nobodyさん
02/12/26 21:58ID:???それにこだわって書いてるとそれはそれで変なコードになっていく
どのみちセッションがブチ
ブチ切れ
るんだしあまり「オブジェクト」にこだわることもないかと。
セッション管理ってのは極力しなくていい作りにしたいしするべきだと思ってる。
Webページってのは、管理者の思いもよらぬところをブック
マークされるという危険を伴う諸刃の
0521nobodyさん
02/12/27 00:00ID:???magic quoteを有効にしてれば、フォームデータを
そのままSQLで流しても大丈夫ですか?
それともまだ穴がありますか?
0522nobodyさん
02/12/27 09:30ID:???'' の中にデータを展開する分には大丈夫だろうけど、
'' の外だと magic quote は、あまり役に立たないと
思うよ。
正直、magic_quotes_gpc は off にしておいた方が
一貫して入力を扱えて楽じゃないですか?
0523nobodyさん
02/12/27 20:09ID:eZog1k3V機能的にはごくシンプルなものです。
一人50件くらいのログを記憶させるような。
こういう場合、皆様ならどうしますか?
俺は一人1ROWにしてtextに全ログを連結して保存しておこうかと
思ってるんですが、どうせDB使うならもっといい方法あるかな、とも
思うし。
どうでしょう?
0524nobodyさん
02/12/27 20:26ID:MTFRpGP1みんなココにきてくれー。
0525nobodyさん
02/12/27 20:56ID:2gbLeXIiそれじゃー、RDBMSやSQLの恩恵がまったく受けられないよ。
ある月のレスだけ取得したい場合どうする?
あるホストからの荒らしレスだけ削除フラグつけたい場合どうする?
逆に、1ROWならCSVでいいのでは?
0526nobodyさん
02/12/28 01:16ID:4WWvmFEHそっかー
1書き込み1行にしてsqlで並び替えればいいんだね。
どうもsqlの発行を少なくしようとしてしまう癖がある。
でもphpで処理するよりMySQLでやる方が軽くて速いんだろうね。
0527nobodyさん
02/12/29 22:03ID:OOvrby/y0528nobodyさん
02/12/30 09:07ID:???ワンタイムで書き込みたいなら、date( "Y-m-d H:i:s" );を持たせた変数でupdateすればおーけー
0529nobodyさん
02/12/30 13:40ID:HKQQDiUV0530nobodyさん
02/12/30 17:51ID:???↑ここと同じようなゲームを作ってんだけど、こんなにテーブル用意する必要あるん?
俺は1個にまとめてるんだけど。
0531nobodyさん
02/12/30 18:10ID:h3/FqmXB必要ある
0533nobodyさん
02/12/31 11:25ID:???csv形式で保存でいいジャン。
0534nobodyさん
03/01/01 00:00ID:???〃┏━━ 、
パタパタ | ノノソハ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(((\リリ ´ー` リ < あけましておめでとう♪
((ニE/⌒ヾ∞"ヽ \____________
(こ) ∞ |こ)
く__∞,ノ
し' し'
0535nobodyさん
03/01/01 18:33ID:???とあるけど、これって「LIKE」を使っているときということでいい?
これ以外のケースってありますか?
0536まにゅある見ないでモノを言う
03/01/04 05:54ID:kDPU8tAMSQL文中に正規表現つかえなかったっけ、MySQLって。
0537???
03/01/05 17:09ID:2x+u7AZu「テーブルにテキストファイルの追加」から行っても、
The used command is not allowed with this MySQL version
とういうエラーが出て、上手くできません(T_T)
どなたか詳しい方、教えて下さい
0538nobodyさん
03/01/05 19:37ID:UGhIjm9v'load_data_infile'=1(有効)
'load_data_infile'=0(無効)
らしいのでmy.cnfで1(有効)になっているか確認してみては?
0540nobodyさん
03/01/06 21:50ID:???mysql_query("BEGIN") or die("Query failed");
mysql_query(SQL文) or die("Query failed");
mysql_query(SQL文) or die("Query failed");
mysql_query(SQL文) or die("Query failed");
mysql_query("COMMIT") or die("Query failed");
って感じでうまく機能しますか?
もっとスマートな方法があればご指摘いただきたいのですが・・・
0541nobodyさん
03/01/06 22:11ID:9dVyKXX8きっちりmysql_close()した方がマシンの負荷は低くなる?あんまり変わらない?
■ このスレッドは過去ログ倉庫に格納されています