【PHP】下らねぇ質問はID出して書き込みやがれ 127
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/03/19(火) 22:13:49.76ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 126
http://kohada.2ch.net/test/read.cgi/php/1359808868/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0207nobodyさん
2013/03/27(水) 19:34:59.92ID:???Sqliteメインからかもしれないが、分けるなら別ファイルにする。
0208nobodyさん
2013/03/27(水) 20:19:03.85ID:r73Jwrfnそうなってくると、DB設計見直してもいい気がします。
0209nobodyさん
2013/03/27(水) 20:36:36.55ID:???今スマホなんでURLは示せないけど、Oracle SQLパズルってサイト検索してみて。
一個のクエリで驚くほどいろんなことできるから。
ループ内のクエリは絶対だめ。
0210nobodyさん
2013/03/27(水) 20:38:31.67ID:2iOdM1fpイマイチ練習法がわかんなくて
0211198
2013/03/27(水) 20:55:59.05ID:I26BQZQ8DB設計についても再考してみます。
>>209
http://www.geocities.jp/oraclesqlpuzzle/
これですね。かなり高度のようですが勉強してみます。
>ループ内のクエリは絶対だめ。
肝に銘じます。有難うございました。
0212nobodyさん
2013/03/27(水) 21:39:21.74ID:???昨日まで平和に進行してたスレが1日で50レス近く荒れてるんですよ
かなり迷惑なので他のスレにお願いします
0213nobodyさん
2013/03/27(水) 21:49:56.92ID:???0215nobodyさん
2013/03/28(木) 09:21:24.03ID:???0217nobodyさん
2013/03/28(木) 12:53:36.30ID:???> これなんでダメなん?
実行時間が長くなり、サーバにも負担がかかるので。
例えば1000行戻ってくるクエリをループして、それぞれの行で5回検索をしたとすると、
ループ内では合計5000回のクエリ実行が必要。
対ローカルでもクエリの実行は数ms程度かかる。
1回のクエリにつき1msかかるとすると、このループの実行時間は5秒。
ネットワーク経由だと、10ms以上かかったりするので、数十秒〜数分のオーダーになるかもしれない。
一方、全部JOINして1回のクエリで終わらせられれば、数十〜数百msくらいで終わる。
> PDOなんかだとループ前提の仕組みもあるよね。
MDB2しか使ったことないんだけど、PDOのその仕組みってどういう奴なの?
0218nobodyさん
2013/03/28(木) 12:55:27.85ID:???hashを参照する方法もある。
が、大抵はJOINした1回のクエリより遅い。
0219nobodyさん
2013/03/28(木) 13:33:51.38ID:Cp6GJ5bL【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL
phpでPDO使ってMySQLいじってる初心者です
指定の行の取得ってどうやるんでしょうか
$stmt = $dbh->prepare('select xxx from xx', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, $num);
ってやっても最初の行しか取れなくて困ってます
0220nobodyさん
2013/03/28(木) 13:42:08.01ID:???0221nobodyさん
2013/03/28(木) 13:50:16.41ID:???fetchAll使って解決しました
0222nobodyさん
2013/03/28(木) 13:51:36.21ID:???マルチwwwwwww
http://toro.2ch.net/test/read.cgi/tech/1363522503/224
0223nobodyさん
2013/03/28(木) 13:54:46.08ID:???これでいけないか?
PDO limit句
http://phpgo.info/?PDO%20limit%E5%8F%A5
0224nobodyさん
2013/03/28(木) 14:09:19.06ID:???そこまでして自己顕示欲を満たしたいの?
0225nobodyさん
2013/03/28(木) 14:16:34.23ID:???0226nobodyさん
2013/03/28(木) 14:17:01.51ID:???0227nobodyさん
2013/03/28(木) 14:21:40.28ID:???俺がマ板からこの板に誘導したから。
が、よく>>222をみたらム板にもマルチしてたのか。どうでもいいけど。
0228nobodyさん
2013/03/28(木) 14:27:57.85ID:???0231nobodyさん
2013/03/28(木) 16:33:27.95ID:???言い合えるってだけで羨ましいス…
別に何も無いヨ…
0232nobodyさん
2013/03/28(木) 22:53:42.51ID:???> PDOなんかだとループ前提の仕組みもあるよね。
PDOでそういう仕組みは見たことないけど。
これと勘違いしてるんじゃない。
http://www.php.net/manual/ja/pdo.prepared-statements.php
プリペアドステートメントを使用して、繰り返し挿入処理を行う
0233nobodyさん
2013/03/29(金) 00:31:56.83ID:???使えないんですけど何でですか?
0234nobodyさん
2013/03/29(金) 00:53:54.84ID:G7mP7j2Chtmlspecialchars()とか前に使ってない?
'>' (大なり) は '>' になります。
0236nobodyさん
2013/03/29(金) 01:09:24.93ID:???0237nobodyさん
2013/03/29(金) 01:09:49.75ID:???0240nobodyさん
2013/03/29(金) 11:16:19.88ID:???0241nobodyさん
2013/03/29(金) 11:31:22.70ID:???一概にダメとは決めつけられない、というか決めつけるのは大抵の場合よくない
0242nobodyさん
2013/03/29(金) 11:51:07.51ID:???0246nobodyさん
2013/03/29(金) 13:44:23.45ID:???0248nobodyさん
2013/03/29(金) 14:02:33.34ID:???0250nobodyさん
2013/03/29(金) 19:01:31.30ID:YTM0Vtw2【PHPのバージョン】5.4
【質問内容】
サブクラスに定義していない(スーパークラスの)関数
の中でサブクラスの変数は利用できないのでしょうか
これができればサブクラスの関数をスーパークラスに
引き上げることができて少しエレガントになるのですが
0252nobodyさん
2013/03/29(金) 20:05:29.23ID:???0253nobodyさん
2013/03/30(土) 13:44:04.73ID:???【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL
データが1行のテーブルに記録された情報をmysql_fetch_assocなどの取得系で求めると必ずfalseが帰ってきます。
ただ2行以上ある場合はしっかりと帰ってくるのですが、肝心の1行目の情報がスルーされて2行目以降のデータが帰ってきます。
例)AAAのみ : bool(false) 、 AAA BBB CCCの三行 : BBBとCCCのみ帰ってくる
この場合ってどうしたらいいんでしょうか。SQL側の問題になるのでしょうか?
0254nobodyさん
2013/03/30(土) 13:50:33.39ID:???0255nobodyさん
2013/03/30(土) 13:55:28.58ID:???一行の場合でも結果がしっかり返ってきます。
書き忘れてましたがこのケース、whileで回すときだけ発生するのです。
0260nobodyさん
2013/03/30(土) 21:59:35.99ID:OzKgLCO2例えば
$a = $hairetsu['unko'];
unkoに対応する値はない。
このとき$aにはなにがはいるの?
こうしたとき、
isset($a)
ってしたときfalseかえってくる?
0262nobodyさん
2013/03/30(土) 23:15:19.20ID:???0263nobodyさん
2013/03/31(日) 00:35:53.39ID:???だれもテメーみたいなksに期待なんかしてないんだからfalseが返ってこようがこまいが関係ないだろ
一生電子ゴミを生産してろ
0264nobodyさん
2013/03/31(日) 02:21:28.12ID:???3回繰り返されず1回出力されるだけなんですがどうしてでしょうか?
<?php
$result[0] = 34;
$result[1] = 22;
$result[2] = 76;
for ($i = 0; $i < 3; $i++){
print $result[$i].'<br />';
}
?>
0266nobodyさん
2013/03/31(日) 07:47:45.45ID:???3回出るけど
0267264
2013/03/31(日) 12:16:43.33ID:???出ない理由を聞いているのであってあなたが試した結果はきいていません。
うっとうしいのでわざわざアンカうってレスしてもらわなくて結構です。
0268nobodyさん
2013/03/31(日) 12:29:24.24ID:???何もおかしくない
0269264
2013/03/31(日) 12:31:32.34ID:???3回ってのは
34 22 76
34 22 76
34 22 76
こういうことです。for文は繰り返しですよね?
0270nobodyさん
2013/03/31(日) 12:32:33.16ID:???0272nobodyさん
2013/03/31(日) 13:47:40.15ID:???0273264
2013/03/31(日) 14:32:08.32ID:???騙りではありません。
煽りたいだけなら黙っていてください。
ここにいる人たちはこんな簡単な質問にも答えられないのでしょうか?
0274nobodyさん
2013/03/31(日) 14:38:59.41ID:???0275nobodyさん
2013/03/31(日) 14:55:52.30ID:???0276264
2013/03/31(日) 17:55:19.44ID:???質問したんだから答えろや
話が先に進まねぇやろ
0277nobodyさん
2013/03/31(日) 18:04:09.79ID:???0278nobodyさん
2013/03/31(日) 18:42:32.12ID:???0279nobodyさん
2013/04/01(月) 13:20:46.87ID:???とか普通に言えばいいのに、いちいち煽る
0280nobodyさん
2013/04/01(月) 13:47:43.63ID:???0281nobodyさん
2013/04/01(月) 14:27:33.67ID:???ルール重視して、スレの目的が達成できないとか本末転倒なので
柔軟に対応しろってこと。
ルール作った目的は偽者防止のはずだが、明らかに偽者じゃない人
にもIDだせってやりすぎだろ。
0282nobodyさん
2013/04/01(月) 14:28:07.73ID:???0283nobodyさん
2013/04/01(月) 14:29:39.13ID:???0284281
2013/04/01(月) 14:31:30.54ID:BwLTFG84DBを利用した掲示板を作成しました
データを20件までとして古いものから削除したいので
以下のようにコード組みました
もう少しスマートにコード作りたいのですが
ご教授ねがいます
//日付と時刻の変数宣言
$date = date("Ymd");
$time = date("His");
//書き込み内容をDBへ
$result_insert = 'INSERT INTO date(name,body,date,time) VALUES (\''
.$name.'\',\''.$body.'\','.$date.','.$time.')';
mysql_query($result_insert, $con);
//指定件数の超過数算出
$result_select = 'SELECT * FROM date';
$number_count = mysql_num_rows(mysql_query($result_select, $con)) - 20;
//超過分を削除
$result_delete = 'DELETE FROM date ORDER BY date,time LIMIT '.$number_count;
mysql_query($result_delete, $con);
0285284
2013/04/01(月) 14:32:53.28ID:BwLTFG84気にしないでください
0286nobodyさん
2013/04/01(月) 14:49:18.51ID:???0287nobodyさん
2013/04/01(月) 14:57:31.80ID:???0290289
2013/04/01(月) 15:24:18.12ID:???> ・これ一件書き込んだら20件消えない?
これ勘違いだった。
0291nobodyさん
2013/04/01(月) 15:30:12.59ID:???基本的に読む時に20件引っ張ってくればいいんで
消すこともないと思う。
0292nobodyさん
2013/04/01(月) 15:30:22.40ID:???0295nobodyさん
2013/04/01(月) 15:31:52.11ID:TTwnP5150298nobodyさん
2013/04/01(月) 15:36:08.44ID:???0299nobodyさん
2013/04/01(月) 15:40:12.17ID:???どうせ半端なことするなら mysqli_real_escape_string() 使え
半端なら半端をつらぬきとおせ
0300284
2013/04/01(月) 15:40:30.63ID:BwLTFG84わからんからそのままつかうことにします
>>287
単体で実行したけどエラーが出ました
#1093 - You can't specify target table 'date' for update in FROM clause
sqlよくわかってないんですみません
>>289
SQLインジェクションはnameとbodyに対し事前に行ってます
指摘ありがとうございます
0303284
2013/04/01(月) 15:48:29.65ID:BwLTFG84ごめんちょっと調べたけど
俺の実力では意味がわからなかった
0304nobodyさん
2013/04/01(月) 15:48:33.69ID:???table名が同じだと無理。別名つけてやればいいはず
数を数えるのと消すのを別の行でやると複数同時に動いた時バグるぞ。
トランザクションにしてもいいけど
0306284
2013/04/01(月) 16:28:56.62ID:BwLTFG84置き換えてみたら動かなくなった
>>304
言ってることはわかるけどどうやって実現するのかわからない
勉強しないと駄目だね
■ このスレッドは過去ログ倉庫に格納されています