【PHP】くだらねぇ質問はここに書き込みやがれ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/11/02 00:15:41ID:???0548nobodyさん
04/12/21 16:33:12ID:???select count(*) from 条件
select * from 条件 limit ほにゃ
でやった場合、条件が複雑だったり、
textフィールドのlikeだったりすると、
重いクエリーが2回発行されることになってしまいます。
そこでlimitを使わずmysql_data_seek()と、
mysql_num_rows()でやると1回のクエリーで済み、
効率的!と思ったのですが、
全件fetchと同じぐらいの大量のメモリーを使うようです。
はてさて皆さんはどうしているのでしょうか?
0549nobodyさん
04/12/21 16:47:12ID:???一般論としてコネクションがボトルネックになるならサブクエリ+ストアド。
0550nobodyさん
04/12/21 17:02:20ID:AvesOqOiボーダフォンにのみメールが送れません。
サーバの設定なんでしょうか?
誰か類似の問題で悩んだ人いませんか?
以下、ソースです。
<?php
mb_language('ja');
mb_internal_encoding("SJIS");
$rcd = mb_send_mail("[email protected]","メール登録","登録フォーム送信" , "From: ". "[email protected]");
if($rcd){
print " メール送信成功";
}
else{
print " メール送信失敗";
}
?>
神降臨キボン
0551nobodyさん
04/12/21 17:04:34ID:???mysqlでtextにlike検索かけることもありえないし
0553nobodyさん
04/12/21 17:44:55ID:???MySQL4.0以降で、FOUND_ROWS()を使う。
http://dev.mysql.com/doc/mysql/ja/Miscellaneous_functions.html
つかこういう質問はくだ質でやらずに、MySQL関連スレでやるべき
0555nobodyさん
04/12/21 18:15:54ID:AvesOqOi0556nobodyさん
04/12/21 18:20:37ID:???0557nobodyさん
04/12/21 18:33:37ID:AvesOqOi別のレンタルサーバからは同じスクリプトで
メール送れてます。
0559nobodyさん
04/12/21 18:54:17ID:???0560nobodyさん
04/12/21 19:10:55ID:AvesOqOi解決しました。
お騒がせしました。
0561500
04/12/21 23:38:53ID:wgtiEewbやはりHTML_QuickFormは使用できないみたいなので
自前で関数を作ることにしました。
連想配列でフィールド名をkeyにして
それにたいしてさらに配列で
データの属性や最大入力値をセットしておいて
検証していこうとかなーと思いました。
↓こんな感じで。
$fields = array( "year"=>array("type"=>"int","length"=>4)・・・)
この場合だと年のフィールドには数値が4桁入るみたいな感じです。
もっと効率のよい方法があればぜひ知恵を拝借したいです。
よろしくお願いします。
0563nobodyさん
04/12/22 14:18:19ID:PAkfsMlB0564nobodyさん
04/12/22 14:36:09ID:0NGp8KFP0569nobodyさん
04/12/22 20:04:50ID:???0571nobodyさん
04/12/22 21:06:12ID:???exec($command,$result,$boolean);
で実行できるのですが、コマンドがエラーを吐いた時にエラー内容を出力
させたいのですが、できるのでしょうか?
マニュアルを見て、googleで検索しましたが出てきませんでした。
よろしくお願いします。
0575nobodyさん
04/12/23 01:41:00ID:???0577571
04/12/23 05:03:15ID:???リダイレクトは、
exec("$command > $redirect");
とかで$redirectに入ってくれるのでしょうか…(今環境なくて試せなくてすみません。)
できないというのと、できるというのはどちらが正しいのでしょうか。
0578nobodyさん
04/12/23 13:26:41ID:???よろしくお願いします
0583nobodyさん
04/12/23 13:36:45ID:???0585nobodyさん
04/12/24 03:29:30ID:???"$command > $redirect"が文字列と解析されてexecに渡されるんだから、
$redirect の値は変化しないよ。プログラミング言語の構文解析を理解しよう。
0586nobodyさん
04/12/24 07:25:48ID:???0587nobodyさん
04/12/24 09:14:28ID:???<?php
$test=1;
include 'sample2.php';
sample($test);
?>
sample2.php
<?php
function sample($data){
global $sample;
$sample = $data;
//echo $sample; ←これは表示される
}
?>
<?php
echo $sample;
?>
sample1.phpで$testの値をsample2.phpに送り
sample2.phpのfunction sample(){}の外から
送られてきたデータを表示させたいのですが、上手く行きません
function内部でグローバル関数にはしているのですが・・・
そもそもこのようなことは可能なのでしょうか?
もし可能でしたらやり方を教えてください
0588nobodyさん
04/12/24 12:44:13ID:???その書き方だと
$test=1;
↓
echo $sample; ←この時点では$sampleに何も入ってない
↓
sample($test); ←ここで$sampleに代入が行われる
って処理順になるから無理
やりたいことが分からんけど、sample()で$sampleをreturnしてそれ拾ったらダメなのか?
0589nobodyさん
04/12/24 12:52:00ID:???globalを勘違いしてるな。
<?php
$hoge = 'fuga';
$hogehoge = 'fugafuga';
function sample($data)
{
global $hoge;
echo $hoge;
echo "\n";
echo $data;
}
sample($hogehoge);
?>
//実行結果
fuga
fugafuga
//ココまで
functionの外で定義されている変数を引数として渡さずに関数に渡す方法としてglobalがある、ということ。
だから、必要もないのにglobalを使うのは控えた方が良い。
ついでに言うとincludeの解釈も何かおかしい。これ以上は面倒くさいので他の人に任せるわ。
0591nobodyさん
04/12/24 13:37:53ID:???アドレスを変数に代入しまくっておいてそれをナビゲーションバーなどの部分にincludeさせるとかでしょうか?
PHPでサイトを管理するってのは良い事(=ラク)なのでしょうか。。。
0592nobodyさん
04/12/24 14:04:44ID:???0593591
04/12/24 14:49:54ID:???すみません。(汗
具体的には全ページにリンクを貼ったり、最新の記事を表示させたり…などのことです。
「サイト構築」の方が正しい言い方でした。。。
0594nobodyさん
04/12/24 15:38:44ID:???出来合いのものではxoopsやphpnukeがそんな機能を持ってるけど、
一からそれらを作ろうとしたり、モジュール(機能クラス)を作るとなるとメンドクサイ。
ソースを公開しているものが多いので「CMS php」で検索してみるといいかも。
0597nobodyさん
04/12/25 15:31:41ID:zT6Tkwqiなにかと面倒なため、別サーバー上のPHPのスクリプトにアクセスすると
対象のページに自動的にログイン処理をするようにしたいのですが、
URLにIDとPASSを追記する方法でやってみたのですがうまくいきませんでした。
どうしたらいいでしょうか?よろしくお願いします。
0599nobodyさん
04/12/25 17:52:29ID:xF7q17T9echo "<pre>";
print_r($hoge);
echo "</pre>";
0600nobodyさん
04/12/26 00:50:51ID:???ほらよ!
function myprint($hoge)
{
echo "<pre>";
print_r($hoge);
echo "</pre>";
}
0601597
04/12/26 03:22:38ID:???説明不足で申し訳ありませんでした。i-mode等、PC以外の端末からアクセスすることもあるため、
IEを使うという選択肢は選べなかったのです。
それと、色々試行錯誤したら自己解決してしまいました・・・。せっかく答えてもらったのに申し訳ないです。
0602HELPです。
04/12/26 06:31:02ID:iF98WIAd$_HTTPからの変数(文字列)は何事も無くデータベースに保存されるのですが。
テーブルのバックアップファイルを作成した後、それらを読み込んで
データベースに格納する際に文字化けしてしまいます。
文字コードの違いだと思うのですがどの様に変換すればちゃんとできるでしょうか?
文字化けの例: ソフト→ャtト
色々調べてSJISの”835c”が”5c”を抜かして認識されている様です(TT)
0603nobodyさん
04/12/26 12:38:51ID:???$test0 = 0;
$test1 = 1;
$test2 = 2;
for($i=0; $i<3; $i++){
echo $test(iの番号);
}
?>
上記のようなプログラムで
for文の中で変数$testの後ろにある番号とiの数を同じものを表示したいんですが
流石に「$test$i」と入れても都合よく「$test0」のようにはなってくれないので
いい打開策はありませんかね?
なんか、わかりにくい文章でスイマセン
0604nobodyさん
04/12/26 12:42:32ID:???$test[0] = 0;
$test[1] = 1;
$test[2] = 2;
for($i=0; $i<3; $i++){
echo $test[$i];
}
?>
0605nobodyさん
04/12/26 12:52:55ID:???for($i=0; $i<3; $i++){
$val = 'test'.$i;
echo $$val;
}
0606nobodyさん
04/12/26 18:22:23ID:???質問内容の殆どが配列で出来る処理ばっかりだけど
>>605
こっちのがスマートじゃね?
for($i=0; $i<3; $i++){
echo ${'test'.$i};
}
0607nobodyさん
04/12/26 18:50:34ID:0Jc5OGQzってエラーが出て何が原因かさっぱり分からないです・・・
<html><body>
<?
mysql_connect(localhost,tanaka,secret);
mysql_select_db(ADDRESS_DB);
mysql_query("insert into
FRIENDS_T2(NAME_C,ADD_C,AGE_C,BLOOD_C)
values('$fullname','$address','$age','$blood')");
$result=mysql_query("select * from FRIENDS_T2");
$rows=mysql_num_rows($result);
if($rows==0){
print "該当のレコードがありません";
}
else{
while($row=mysql_fetch_array($result)){
print $row["NAME_C"];
print " ";
print $row["ADD_C"];
print " ";
print $row["AGE_C"];
print " ";
print $row["BLOOD_C"];
print "<br>";
}
}
?>下記の内容で登録しました<br>お名前:<? echo $fullname; ?><br>ご住所:<? echo $address; ?><br>年齢:<? echo $age; ?><br>血液型:<? echo $blood; ?><br>
<br>登録ありがとうございます<br>
</body></html>
HTMLのフォームを使ったのですが受け取ったはずの名前とかも表示されません分かる方いたらお願いします
0608nobodyさん
04/12/26 19:03:40ID:???接続に成功した場合は正のMySQLリンクID、失敗した場合にFALSEを返し ます
mysql_query()
クエリーが成功したかどうかを 表すためにTRUE(非ゼロ)またはFALSEを返します
フォームからの変数は、register_globals = on にしない限り、$_GETや$_POST。
0609607
04/12/26 19:49:10ID:0Jc5OGQz>フォームからの変数は、register_globals = on にしない限り、$_GETや$_POST。
これやりましたら変数を受け取ることができました
mysql_connect()は接続ができているようです
ただmysql_query()はFALSEを返してきてうまくできていないようです・・
また新しいエラーとして
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Apache Group\Apache2\htdocs\my.php on line 16
と出ています・・
原因分かるようでしたらお願いします
0610nobodyさん
04/12/26 19:58:19ID:Z2KqsJa+$str="/uri/debug/index.html"; と文字列がある時に、/debug/ を
含まれない場合、真にしたいのですがどうすればよいのでしょうか?
(^/debug/) のようにしてもダメでした。^を使ってアンマッチする方法
がどうしてもわかりません。どうか宜しくお願い致します。
0612nobodyさん
04/12/26 21:55:56ID:???どうしたらいいでしょうか?
0613nobodyさん
04/12/26 22:03:27ID:???【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/71,74
0614nobodyさん
04/12/26 22:11:00ID:???mod_mimeモジュールがこの役割を果たす。
ttp://httpd.apache.org/docs-2.0/ja/mod/mod_mime.html
PHPのマニュアルのインストールの項目に書かれている、
AddType application/x-httpd-php .php
ってのは、このmod_mimeの中の設定(ディレクティブ)の1つで、
phpという拡張子の時に特定の動作をさせることを示しているわけだ。
で、こいつの書式を上のURLから参照してみると、
AddType MIME-type extension [extension] ... となっとる。
どこに書けばいいかも書いてあるな。
サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess に書けることになる。
0616nobodyさん
04/12/26 23:42:00ID:???0617612
04/12/27 00:01:19ID:???どうもです(・∀・)!
ということは.htaccessに
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
といった感じに追加していけばいいわけですね?
0618610
04/12/27 00:29:12ID:???なるほど。ありがとうございます。
>>617
AddType application/x-httpd-php .html .htm
な感じで一行にまとめれますよ。
0619612
04/12/27 00:38:04ID:???> AddType application/x-httpd-php .html .htm
> な感じで一行にまとめれますよ。
( ´∀`)ノ
0620nobodyさん
04/12/27 13:56:51ID:???0621nobodyさん
04/12/27 14:27:13ID:???0622620
04/12/27 15:54:17ID:???「もはび」かなぁとも思ったんですが、
なんだか「もじゃび」って書いてあったりもして・・・
0623nobodyさん
04/12/28 08:45:39ID:???タイムスタンプって何だ?ググッてもムズいメーリングリストとかしか出てこないんだが。
0624623
04/12/28 09:03:41ID:???0625nobodyさん
04/12/28 14:01:44ID:NN7ShV+Kリンクがindex以外のページにされている場合に、
強制的にindexに一度飛ばす操作をしたいのですが、
検索のしかたが悪いのかそれらしいものにひっかかれません。
くだらねえ質問誘導頼んます。
0626nobodyさん
04/12/28 14:22:27ID:???変数、定数、変数の参照、式と文、演算子、条件分岐、if文条件分岐、switch文、ループ文while、ループ文for、配列array、変数の受渡し
等を覚えればいいのですか?
これ等を駆使すればどんなスクリプトも作れますか?
0627nobodyさん
04/12/28 14:35:04ID:???全コンテンツがPHPで書かれてるのでなければ、
Apacheなりhttpdのお仕事だな、それ。
あとリファラーのチェックとか、トップのindexで
クッキー食わせてチェックとかにになるんだろうけど、
判断が危うい条件になりそう。
0629nobodyさん
04/12/28 15:56:51ID:64WbgjnWa
b
c
3つのチェックボックスがあって、
チェックを付けたやつだけ、
inputボタンを押した後に表示したいんですが、
どうすればいいでしょうか?
例:aとcにチェックを付けたら、次の画面で、
aとcを表示させる。
あと、perlだと、フォームで同じnameで複数項目入力させても
配列に格納されます?
perlのスクリプトだとどうもそうっぽいので。
phpじゃこれは無理でしょうか?
やってみますたが、むりっぽかったので
0630nobodyさん
04/12/28 16:09:56ID:???http://www.kondo-net.gr.jp/softca/php/
0631nobodyさん
04/12/28 16:12:49ID:???perlは自分で配列に入れないといけない。
hoge=a&hoge=c
PHPはフォームのnameに[]をつける
<input name=hoge[]
0634nobodyさん
04/12/28 16:32:51ID:NN7ShV+Khttp://www.itmedia.co.jp/news/articles/0412/28/news006.html
新種。(((((;゚Д゚)))))
0635nobodyさん
04/12/28 17:05:07ID:???正直突かれるようなスクリプトを未だに書いてるのが…
サニタイズしろって。
参考:http://xoops.sourceforge.jp/wiki/xoops2/index?cmd=read&page=TECH%2FAgenda-X%20%A4%CE%C0%C8%BC%E5%C0%AD%CC%E4%C2%EA
0636nobodyさん
04/12/28 17:53:38ID:???新しいファイルを作成するのって
どのようにすればいいのでしょうか?
mkdirみたいなのねーでしょうか?
0638636
04/12/28 18:16:45ID:???fopenとかだと、パーミッション気にしなきゃならなくて
厳しくないでしょうか?
今、
一時的にchmodでアクセス権限777にして
書き込む方法思いついたのですが、セキュリティ上よろしくない気がしますのでございます
0643nobodyさん
04/12/29 06:58:13ID:???<?php
function query($sql1, $con){
$resultsql1=mysql_query($sql1, $con);
if ($resultsql1==false){
echo ("Perform Query01 failed !!");
exit();
}
return $resultsql1;
}
?>
を
require_once("./lib/query01.php");
という感じで引き出してるのですが、どうやっても
Perform Query01 failed !
が返ってきてしまいます。
(使いまわししてる他のページでは問題なし)
多分くだらない事が原因なんだろうけど、自分じゃ見つけることができません。
間違いがあったら教えてくだしあ…(涙)
0644nobodyさん
04/12/29 07:22:15ID:???どーもこーもmysql_queryがFALSE返してんだろ
PHP通さずにmysqlに同じSQL文投げても通るか確かめた?
■ このスレッドは過去ログ倉庫に格納されています