【PHP】くだらねぇ質問はここに書き込みやがれpart9
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/03(土) 11:53:32ID:7OO4C5e5ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0757nobodyさん
2005/09/18(日) 13:33:33ID:???0758nobodyさん
2005/09/18(日) 13:36:23ID:???ワラワラと出現する予感
0759nobodyさん
2005/09/18(日) 13:39:57ID:???0760nobodyさん
2005/09/18(日) 13:40:07ID:???0762nobodyさん
2005/09/18(日) 14:10:07ID:???変数f = 10.38 という値を最小フィールド幅10、小数点以下3桁表示させたいのですが、
printf("%10.3f", $f);
としても、最小フィールド幅が10になってくれません。
って、書きながら気が付いたんですけど、フィールド幅は変ってるけど、htmlのせいで
変ってないようになってたのか...orz
とすると、どうするのがベストなんでしょうか?
printf("<pre>%10.3f</pre>", $f);
何か違う気が...
0763nobodyさん
2005/09/18(日) 14:16:02ID:???IDや名前を送ってしまうと、アドレスバーにそれが表示されてしまいます
こんなんです→ id=onishi&name=大西
どうやったらこれを回避できるのでしょうか?
セッション管理というのを最近知ったのですが、それを使わないと出来ないので
0764763
2005/09/18(日) 14:16:52ID:???0767軟式PHP
2005/09/18(日) 14:43:24ID:???0768nobodyさん
2005/09/18(日) 14:48:40ID:???0771nobodyさん
2005/09/18(日) 14:57:14ID:???0772nobodyさん
2005/09/18(日) 15:15:55ID:???<form name="form">
<input type="hidden" NAME="name" value="大西">
</form>
としておいて、JavaScriptでform.submit();すれば送れるけれど。
どのみちHTMLソースを表示すれば見られるのは一緒なので、イヤならセッションかな。
その前に聞きたいんだが、何のためにnameを送るの?
データベースにidとnameを登録して、idからnameを引けば別に各ページへ引き渡す
必要はないと思うんだけど。
0775nobodyさん
2005/09/18(日) 15:42:38ID:???>その前に聞きたいんだが、何のためにnameを送るの?
名前だけ表示したいページがあるのですが、データベースから取得するのが
めんどくさかっただけです。。
ちゃんとデータベースから取得するようにしてみます。
0777nobodyさん
2005/09/18(日) 16:02:19ID:???0780nobodyさん
2005/09/18(日) 18:28:06ID:???入力フォームからのデータによってSQL文を生成し、それによってデータベースから結果を取得表示するのですが
検索結果件数取得をするためにはどうすれば、無駄がないでしょうか
無駄にコードが長いですがご容赦ください・・・ コード自体への突っ込みもあればよろしくお願いします。$loc=_SS($_POST["loc"]);
$type=_SS($_POST["type"]);
$phone=$_POST["phone"];
$shopname=_SS($_POST["shopname"]);
if($phone==NULL){//*1*************************************************************************************************************
$search="";
$search.="select shopname,pg from shop where ";
if($loc!=NULL){//*2
$search.= $loc." =loccd "; //LOCが入力されている
if($type!=NULL){
$search.=" and ".$type. " IN(typecd,typecd2,typecd3,typecd4,typecd5)";//LOC入力済みかつ、TYPE入力済み
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}//else{$search.=";";} 最後のせみころん不要?
}else{//LOC入力済みかつTYPE未入力
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}
}
}//*2
else{//LOC未入力 *3
if($type!=NULL){//LOC未入力かつTYPE入力済み
$search.=$type. " IN(typecd,typecd2,typecd3,typecd4,typecd5);";
}
}//*3
0781続き
2005/09/18(日) 18:29:43ID:???//*************************************************************************************************************
elseif($phone!=NULL){//*4
$search="select shopname,pg from shop where phone=" . $phone;
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}
}//*4*************************************************************************************************************
if($loc==NULL&&$type==NULL&&$phone==NULL){
if($shopname!=NULL){
$search="select shopname,pg from shop where shopyomi LIKE '%" . $shopname . "%' ;";
}else{
print("どれかひとつは選択してください");
exit();
}
}
$rs = mysql_query($search,$conn);
print($search);//生成されたSQL文の確認(デバッグ用表示)
以下 SQL結果の出力文
いいアイディアが浮かばないのが、count関数で出力すればいいんですが
SQL文が変化するのでどうしようか困っています。
0782nobodyさん
2005/09/18(日) 18:30:19ID:???0783nobodyさん
2005/09/18(日) 18:31:05ID:???0785nobodyさん
2005/09/18(日) 18:38:46ID:???単に select count(*), shopname,pg from shop... とすれば済む話でしょ。
それにしても惨いコードだな。
こんな奴と一緒に仕事をするハメになったら、どんな手を使ってもチームから
追い出したくなる。
0788nobodyさん
2005/09/18(日) 18:46:41ID:???んだけど、世の中って、こんなに低いレベルだったのか。
0789780
2005/09/18(日) 18:51:29ID:???お言葉ですが
それSQLエラーになりませんか?(汗
ソースコードがむちゃくちゃなのは自覚してますorz
適当な独学だけなもので・・・
>>788
自分は低いですが他の方は低くないでしょう・・・
0791nobodyさん
2005/09/18(日) 18:54:02ID:???xxxの値が0でもNULLにマッチするけどいいのか?
0792nobodyさん
2005/09/18(日) 18:55:36ID:MWUz/lX6言い過ぎ
お前職場でも嫌われてんだろうな…可哀想に
0793nobodyさん
2005/09/18(日) 18:57:50ID:???select count(*) from shop...
select shopname,pg from shop...
0794nobodyさん
2005/09/18(日) 18:59:17ID:???> 言い過ぎ
> お前職場でも嫌われてんだろうな…可哀想に
メンテナンス性が高いコードを書く事や、
クラックされにくいコードを書く事に関しては、
職場で嫌われようと徹底して行っていくべきだと思うよ。
0795780
2005/09/18(日) 18:59:51ID:???本は一応買いました・・・
>>791
今のところはそれは大丈夫のようです
でも覚えておきます ありがとうございます。
>$_POST['xxx']の値をNULLでチェックしている段階で腐ってる。。。
ちゃんとしたソースを入門編とかの本でしか見たことないんで、理想的なコードってのがよくわかんないんですよね。。。
0796nobodyさん
2005/09/18(日) 19:13:11ID:???見た事が無いなら、探せばいいんじゃないの?
「php MVC フレームワーク」 とかで、最近書かれてるコードを探せば?
0797nobodyさん
2005/09/18(日) 21:33:42ID:???それとも出てても無視?
0798nobodyさん
2005/09/18(日) 22:56:39ID:???大事なのは、ちゃんとしたものを作る・作らせるということであって、素人細工を
叱るのは、そのための手段。叱ることが目的になって、本来なら歓迎されるはず
だった正論を、他者が受け入れにくい不快なものにしてしまうようだと、本末転倒だ。
きつい教育的指導をするときは、事前と事後の根回しも、くれぐれもお忘れなく。
あべこべに、職場を追われるぞ。
おせっかい、スマソ
0800nobodyさん
2005/09/18(日) 23:20:54ID:???0801nobodyさん
2005/09/18(日) 23:23:04ID:???0802nobodyさん
2005/09/18(日) 23:39:16ID:???0805780
2005/09/19(月) 00:49:36ID:???しらべてみましたが、なんか難しいですね・・・・
もう少しPHPの基礎とか強化してから改めて取り組んでみます。
>>797
どういう場合についてのエラー/ワーニングメッセージでしょうか?^^;
>>798
>>785はちょっとショックでしたが、まあなんというか。。。
動けばいいってだけじゃない事を再認識させてもらいました。
贅沢を言えば、汚いコードって言うだけじゃないで
どこがどうきたないで、改善策も書いてもらえれば助かったんですがね・・・
0806nobodyさん
2005/09/19(月) 01:48:25ID:???漏れは785ではないが、改善策も書けなんて甘えも良いところ。
おまえみたいな甘えたヤツが漏れのプロジェクトに来たら、即クビだな。
きれいなコードを見たことないのなら勉強不足というか情報収集不足。
きれいなコードと自分のコードの違いがわからないのならセンス無し。
金もらってるプロだとするなら修業でもして滝に打たれた方が良い。
そこからはい上がってきたヤツは一目置かれるからガンガレ。
0807nobodyさん
2005/09/19(月) 02:29:25ID:???>>検索結果件数取得をするためにはどうすれば、無駄がないでしょうか
何したいかわからんので無駄かどうか知らんが、とりあえず結果の件数なら
$c = mysql_num_rows($rs);
ぢゃだめなのか?
条件を行き当たりばったりで書いてるように見える
見にくい=わかりにくい=見たくない
ざっと見たところ
$phoneが指定されていない loc,type,shopnameの指定されているものを条件とする
$phoneが指定されている phone,shopname(あれば) を条件とする
ってことでいいんじゃない?(違ってたらやっぱり他人にはわかりにくいということで)
if ($phone == "") {
if ($loc != "") {
....
}
if ($type != "") {
....
} else {
if ($shopname != "") {
........
}
0808nobodyさん
2005/09/19(月) 08:41:26ID:???鬼の首でも取ったかのように大騒ぎする
そしてセキュリティの穴を突いてくる犯罪者がそもそも悪いのだという最も重要な点を忘れ
ひたすら自分の小賢しい知恵を振りかざして「初心者」をコキ下ろし
ちっぽけで愚かなプライドを満足させている。つくづくバカなヤツらだ
0809808
2005/09/19(月) 08:42:54ID:???似ているようで大きく違う
0810nobodyさん
2005/09/19(月) 08:51:35ID:???今は
while(!feof($fp)){
$res .= fgets($fp,2048);
}
としています。
しかしページによっては連結するのに6秒くらい掛かります。
上以外で$resに内容を全て詰め込み速度が早い方法をご教授下さい。
0811nobodyさん
2005/09/19(月) 09:14:04ID:???どうしてもわからないので教えてください。
$sql= "create temporary table tmp select * from テーブル名 条件";
$res = $myclass->dbobject->query($sql);
$sql = "SELECT * FROM tmp order by date";
$res = $myclass->dbobject->query($sql);
while($row = $res->fetchRow()){
・・・・・・・・
こんなんで一度得られた検索結果を、さらにいろいろソートさせたい
のですが、どのようにしたらよいのでしょう。
お手数をお掛け致しますが何卒(初心者のため出来れば具体的な
形で)宜しくお願い致します。
0815nobodyさん
2005/09/19(月) 15:54:21ID:???0816nobodyさん
2005/09/19(月) 15:56:00ID:???0818nobodyさん
2005/09/19(月) 18:41:07ID:e00KWmStインデントはタブは使わずスペース4つが推奨となっているんだけど、
皆さんはどうしてます?
0819nobodyさん
2005/09/19(月) 18:42:11ID:???0823nobodyさん
2005/09/19(月) 20:11:17ID:???どのエディタでもタブを自動でスペースに変換っての
使ってるな。
要領がそんなに食うとは知らなかったけど、これからは
本運用の時は逆変換かけて使うかな。
別のエディタとかで開いたとき崩れにくいし、
タブだとエディタによって変にならんか?
0826nobodyさん
2005/09/19(月) 22:37:34ID:???0827nobodyさん
2005/09/19(月) 23:29:28ID:???これじゃYY-PHPがDLできないし、せめて理由ぐらい教えてくれ
0828nobodyさん
2005/09/20(火) 06:18:18ID:???その間も別のスクリプト(B)を並行して走らせるとします。
このとき、Bやwebサーバなど他のプロセスに影響しないよう、
Aの負荷をある一定以下にして(あえて実行速度を抑えて)走らせる方法ってありますか?
PHP.iniでスクリプトのMax実行時間などはいじれますが、Max実行速度はいじれませんよね??
0832nobodyさん
2005/09/20(火) 09:40:39ID:???元の話に戻ると、オイラはタブを使って(各自の)エディタ側で好きにインデント幅を決められる方が好きだな。
0833nobodyさん
2005/09/20(火) 09:45:40ID:???AもBもcronで走らせてます。
cronは単に「●時●分に■を実行」って指示するだけで、
実行速度とかを指定するものではないですよね・・・?
0836nobodyさん
2005/09/20(火) 10:46:25ID:???0837nobodyさん
2005/09/20(火) 11:57:22ID:???すでに答は出ているかもしれないけど、Unixには niceというコマンドが
あって、これは優先度を「下げる方向」に使うのであれば、一般ユーザーでも
使うことができるよ。
0838nobodyさん
2005/09/20(火) 13:39:13ID:???PHPにSQLコードを埋め込むときはPHPMyAdminで作って、PHPコードを生成して
コピペして調整しています。
少し困ったことがあります。
PHPMyAdminで作ったSQlの長文、特にGroup Byや join を使ったSQL文が
動作しません。シンプルな Group Byのモノは動作します。
例えば下のような長さのモノですけど、PHPMyAdminでは値が返されるのに
PHPに埋め込むとErrorになります。
何か気をつけるところとかあるのでしょうか?
select UserName, count(ginou) AS GinouKazu from Ginou
left join TaisenRecords
on Ginou.GameId = TaisenRecords.GameId
left join Users
on TaisenRecords.Winner = Users.UserId
where
GinouID = 21 and
Ginou.FightId = TaisenRecords.FightId
group by UserName
ORDER BY GinouKazu DESC
0839nobodyさん
2005/09/20(火) 13:52:36ID:???PHPから送ったクエリーをechoで出力して、
そいつをPHPMyAdminにコピペして動作するか確認してみては?
0840838
2005/09/20(火) 14:06:36ID:???echoでクエリーを出力してコピペしてPHPMyAdminでは動作しました。
PHPではエラー。エラーは下記でした。
ちょっと調べてみます。解決のヒントになりました。ありがとうございました。
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
0841nobodyさん
2005/09/20(火) 14:28:15ID:???0842838
2005/09/20(火) 15:03:11ID:???すると、同じコードを実行した時にPHPMyAdminでは自動的に
select SQL_CALC_FOUND_ROWS UserName,.....
という風にSQL_CALC_FOUND_ROWSを添付しているようでした。
試しに動作しなかったPHPのコードにSQL_CALC_FOUND_ROWSを入れてみると動作しました。
MySQLサイトのReferenceを読むとクエリーをキャッシュする機能だという事のようです。
Tableをまたぐとこういう記述が必要になるのか、もっと汎用的に書けないものか
少し調べてみます。 ありがとうございました
0843nobodyさん
2005/09/20(火) 15:13:04ID:VaLk2yaU0844nobodyさん
2005/09/20(火) 15:13:42ID:VaLk2yaU0845838
2005/09/20(火) 15:14:15ID:???どうやら大文字か小文字かの違いだったようです。
>>838でのクエリー文では from となっていた部分を FROMと変えると
SQL_CALC_FOUND_ROWSを入れなくても動作しました。
とりあえずPHPDesigner2005で、今まで書いたSQLクエリーの from部分をFROM
に変換する作業からまたはじめてみます。
ttp://dev.mysql.com/doc/mysql/ja/query-cache-how.html
0846nobodyさん
2005/09/20(火) 15:19:58ID:???・Apacheの設定を変えて、.html, htm を PHPに処理させる
・SSI を利用する
どっちも嫌だ…
0847nobodyさん
2005/09/20(火) 15:27:25ID:VaLk2yaUPHPの中で別のPHPプログラムを動かすほうがいいのでしょうか・・?
0849nobodyさん
2005/09/20(火) 15:56:39ID:???<body>
<?php
echo 'Hello World';
?>
</body>
</html>
0850nobodyさん
2005/09/20(火) 18:07:57ID:???(処理内容は検索・削除・追加程度)
file()関数で最初に配列に収めた後で
foreachを使って1行ずつ検索等するのは
メモリなどのリソースを使いすぎてしまうのでしょうか?
こういう場合はfgets()関数で1行ずつ読み込んで処理すべきでしょうか?
0851nobodyさん
2005/09/20(火) 18:23:25ID:???無効にしたいのですが、どうすればよいですか?
また、一部のタグは許可したいのですが、その場合はどうすればよいでしょうか??
0854nobodyさん
2005/09/20(火) 19:33:31ID:???サニタイジングとかともいい、複雑でありながら、基本中の基本です
これだけは、パクりパクりしながら、根性で勉強して書き上げた方が、今後のためです
0855nobodyさん
2005/09/20(火) 19:40:19ID:???■ このスレッドは過去ログ倉庫に格納されています