927 :
925 :03/06/28 16:24 ID:???
>>926 お返事ありがとうございます。
現在PHPの演習として、HTMLでフォームを作りそこのフォームから送られてきた数値を
SQL文に組み込んで検索させて結果を表示するWebDBを作っています。
で、
$sql = "select * from table1 where percentage >= ". $_POST["percentage1"] ." and percentage <= ". $_POST["percentage2"] ."";
のようなSQL文を作ったのですが、フォームから空白が送られてきた場合にすべてのデータが
HITするようなSQL文を変数の値のみを変更することによって作りたかったのです。
926さんの言うとおり
>○○○の部分だけを変えて動作を切り替えようとしてるから、どうして良いか
>判らなくなってる
ですね。
ご助言ありがとうございました。
とりあえず空白が送られてきたときに条件分岐させて別のSQL文を送るようにしようかと
思います。
HOGEというフィールドの一番ケツのセルのデータを取り出すには、 select * from test where HOGEのあとになにをいれたらいいんでしょうか。
>929 HOGE 内の一番右側の文字を取り出すの? それとも一桁目の数字?
>>930 レスさんくすでつ。
HOGE内にはユーザーIDをあらわす数字があって、
実はその数字に1をたして次に登録する人のID番号に
したいんでつ。おながいします。
$sql_id = "SELECT * FROM test WHERE HOGE??";//ケツの番号 $id = $sql_id + 1; $insert = mysql_query("INSERT INTO membertbl VALUES ($id,$passwd,.... みたいなかんじでつ。
ああぁ 3行目 $insert = mysql_query("INSERT INTO test VALUES ($id,$passwd,.... でした。
DB板行ってる?
>ユーザーIDをあらわす数字があって、実はその数字に1をたして次に登録する人のID番号に したいんでつ そのユーザーIDはユニークで、新規登録者に今まで使ってたID+1の IDを使わせるってことだよね?? idフィールドをauto incrementにするんじゃだめなの?
>今まで使ってたID 今まで使ってた一番大きな数のID
IDというフィールドを別に作れ。
レス有賀トン。 オートインクリメント!(・∀・) さすがでつ。ありがとうごいますた。
939 :
nobodyさん :03/07/06 21:31 ID:7NRYAhNq
PHP(4.3.2)+mysql(3.23.57)+phpMyAdmin(2.5.0)+win2000です phpMyAdminからレコードの追加をすると、phpMyAdminのレコードが文字化けします。 mysql(dos窓)のselectで見ると正常です 色々しらべていじってみたけどわからないです。 ↓関係ありそうなphp.iniの設定 mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On ↓my.iniの設定 [mysqld] default-character-set=ujis [mysql] default-character-set=ujis [mysql-dump] default-character-set=ujis phpMyAdminは(ja-euc)で表示させてます。
全部はずして、ゆっくり考えてみろ。
941 :
nobodyさん :03/07/07 01:38 ID:lhtnLc4P
>939 MySQLとPHPで基本としたい文字コードはなに?
942 :
939 :03/07/07 23:18 ID:???
>>940 mbstring.http_output = SJIS
をコメントアウトしたらOKでした
>>941 とりあえず出来たみたいです
レスありがとうございました
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
944 :
nobodyさん :03/07/23 19:42 ID:c/+uzDLa
テーブルA id b c 1 1 1 1 1 5 2 1 2 3 5 1 3 1 2 3 2 0 ↓ id b*c 1 6 2 2 3 7 と言った感じに 同IDのb*cを足した数を取得したいのですが SELECT SUM(b*c) from A GROUP BY id こう書くと 下のように同じIDのBが足された数に、同idの最後のcを掛けた数が返ってきます id b*c 1 10 2 2 3 0 どこを直せば良いのか検討もつきません、誰か助けて
945 :
944 :03/07/23 20:23 ID:c/+uzDLa
946 :
nobodyさん :03/08/10 03:00 ID:fzrQOeyO
webarenaのsuite2使ってるんですが、 サイトのipは*.*.*.100 なのに、 別鯖のmysqlにアクセスすると、ipが *.*.*.2になります。 これはモジュール版だからでしょうか? 別のバーチャルホストのphpも*.*.*.2で走ってるとすると、 ちょっとセキュリティー的にどう? と思うのですが (もちろんパスはかけていますが) こんなものなのでしょうか。
947 :
nobodyさん :03/08/18 00:26 ID:I4OY3KuJ
pconnectを使った方が効率が良くなるリクエスト数の目安みたいなものはありますか? xreaで昨日pconnect使ってみたところ負荷が上昇したので… デイリーアクセスが6000程度、リクエスト数が300000程度 リクエストの7〜8割がMysqlを利用するCGIです
948 :
nobodyさん :03/09/02 11:46 ID:8zFi1SPw
自分のパソコンにサーバーソフトを入れて動作確認した結果と、レンタルサーバーにうpして動作確認した時とで、 違う検索結果が返ってくるのですが、何が原因なんでしょう? レンタル鯖(PHP4.2.2 mysql3.23.46) 「なし」でLIKE演算子を利用して検索をかけた結果、「なし」「にし」「すし」が検索結果として返ってくる 自分のパソコン(PHP4.2.3 mysql4.0.5) 「なし」でLIKE演算子を利用して検索をかけた結果、「なし」のみが返ってくる 文字コードは全てEUC、mysqlのdefault-character-setはどちらもujisです。 わかる方いらっしゃったらよろしくおながいします。
949 :
nobodyさん :03/09/02 14:51 ID:oASbZti5
phpMyAdminの使い方がわからない・・・(´Д`) どこかにいいマニュアルありませんか? 探したんだけどサパーリです。(´・ω・`)
>>949 MySQLのマニュアル調べた方が手っ取り早いです。
>>949 GUIなんだから適当にいじって覚えろ。
日本語訳がめちゃくちゃなことを頭の片隅においておくと吉。
>>948 どうすれば良いかということなら、
"BINARY"付けて比較しる!
(MySQLのMLの過去ログ等参照)
>>949 「MySQL徹底活用」に、それなりに載ってたかな。
もっと簡単部類のMySQLな本で書いてあるのも見た気がするけど。
ありがとうございます。MLの過去ログ漁って探してみます。
954 :
953 :03/09/03 09:42 ID:???
リモートホストのことでは
956 :
nobodyさん :03/09/14 01:00 ID:SxMgLT7D
今掲示板を作っています。発言ランキングを作ろうと思ってます。 `name`フィールドに名前を記録しているのですが、 これを動的にランキングとして生成したいのです。 どのようなロジックにすればいいのでしょうか。
>>956 頻度集計ってSQLで一発で取ってこれるのかな?
良く判らないので私ならnameフィールドについて全件取ってきた結果を
スクリプトで個々にカウントして、それをソートして必要な上位件数を抽出します。
ランキングを出すことが頻繁でスピードが欲しいなら逐一集計するより、
nameフィールドに入れる値で分類したフィールドをもつテーブルを用意しておき、
発言する度に発言数を1増加。必要なら発言取り消しで1減少。
上位集計は発言数でORDERかけてLIMITで、必要な上位項目を制限して取り出す。
958 :
nobodyさん :03/09/14 03:00 ID:4aTBFeIT
>>956 そのランキングをBBS本体とは別のページに常に表示させておくような
場合は957さんが書いてくれているやり方のほうがいいと思うけど、
SELECT name, COUNT(*) FROM name_of_table GROUP BY name
でいけるはず。
959 :
957 :03/09/14 03:00 ID:???
ああ、ここはMySQL+PHPスレか。 ならnameの内容をkey項目にしたarrayを作って、全件取った結果を使い nameの値に対応するarrayのvalueをカウントアップしていけば集計が出来る。 で、arsortを数値オプション付きで掛ける。
sage忘れスマソ。
>>956 追記。この板はsage推奨。
962 :
nobodyさん :03/09/15 13:21 ID:3OfqCmu9
>>957 さん
>>958 さん
おへんじありがとうございます!
COUNT()なんてものがあったのですね。
MySQLのリファレンス見て、自分なりにアレンジして、
$sql = "SELECT `name`, COUNT(`name`) FROM `$db_table` GROUP BY `name` ORDER BY 'COUNT(`name`)' DESC;";
でできました!!
でもこれだと名前がローマ字のばやい大文字も小文字もいっしょくたにされてしまう・・・
BINARY
964 :
956 :03/09/15 23:06 ID:A4TTummz
>>963 さん
重ねx2さんくす!!
またまたリファレンスを検索してヒットしました。
表示タイプをバイナリにすればよいのですね!
スクリプト修正してないのに、しっかり区別できました。
さんくす いん あどばんす!!
よく聞け!喪前ら!!! 前日アクセス数、本日アクセス数、トータルアクセス数をゲットするカウンターをPHP+MySQLで作ってください。 どうかお願いします。
何故にカウンターごときでMySQL使う?
>966 将来的にログとってアナライズする機能を拡張する目論見があるからでは。 でもそういうやつは「作ってください」なんていっちゃだめ。 他人に言う言葉なら「売ってください」はありだけど
>>965 select count(*) from log
>>968 それじゃトータルだけやん
select count(*) as total,
count(case when access_date = '今日の日付' then 1 else null end) as today,
count(case when access_date = '昨日の日付' then 1 else null end) as yesterday
from log
ってするんかな、ログを兼ねるなら。
970 :
avx :03/09/21 00:10 ID:???
971 :
nobodyさん :03/09/26 02:55 ID:prC9hqpx
一度に15万件ぐらいのレコードをループしながらInsertさせたいのですが 2万から3万件ぐらいでエラーが出るでもなく止まってしまいます。 最初は実行時間が足りなかったようなので(これはエラーが出ました) php.iniのmax_execution_timeを上げました。 memory_limitも念のため上げました。 mysql_connectが駄目だったのでmysql_pconnectも使ってみましたが駄目でした。 何がいけないのでしょうか。どなたか教えてください。お願いします。
ブラウザから実行してんの? 定期的に文字出力してないと切られて止まっちゃうと思う
973 :
971 :03/09/26 10:48 ID:prC9hqpx
ブラウザから実行し、文字も定期的に出力しているんですが 途中で止まってしまいます。
んじゃ、webサーバの設定はどうかな? もしApacheなら、httpd.confのTimeoutとか
975 :
971 :03/09/26 12:27 ID:???
>>974 さん、ありがとうございます。解決しました。
WEBサーバのTimeoutではなく、(言いづらいのですが)WEBサーバの
再起動がしっかりできてなかったみたいです。
なぜ再起動せずmax_execution_timeの設定も反映されていないのに
ブラウザにタイムアウトのエラーメッセージが出なくなったのかは???です。
出たり出なかったりするんでしょうか。
もう一回、ありがとうございました。
976 :
nobodyさん :
03/09/28 01:02 ID:X71YpEvz age