トップページ⇒php
1001コメント310KB

【PHP】質問スレッドpart30【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/10/25(火) 06:50:06ID:Q4oGlTH3
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0486nobodyさん2005/11/14(月) 16:51:16ID:???
>>482
難しくて読めないんじゃなくて、汚くて読めないの。
おまいはまずLispの処理系くらい作れるようになってから来ようね。

>>484
APCで憤死者って?
0487nobodyさん2005/11/14(月) 17:48:30ID:???
>>485
クリスマスがウザイんですけど、なんとかなりませんか?
0488nobodyさん2005/11/14(月) 17:50:21ID:???
>>485
クリトリスがクサイんですけど、なんとかなりませんか?
0489nobodyさん2005/11/14(月) 17:57:48ID:???
>>486
APC3が安定するまでにずいぶんと時間がかかったことかな?
eAcceleratorも一から書き直してるってサイトに書いてあるけど、完遂できるかちと心配。
PHP6ではOpcode Cacheが本体につく予定なんだよね?
0490nobodyさん2005/11/15(火) 00:53:24ID:EuotBK4K
早急に教えてもらえますか?
ブラウザに以下の説明が出ます。
Unable to connect to PostgreSQL
server: unknown host name: localhost
port=8040
dbname=testdb2
user=testuser2

OSはfedoraCore4 php5 apache2を使用しています。
ポストグレ側の設定がおかしいのでしょうか?
わかる方、お願いします。
0491nobodyさん2005/11/15(火) 01:18:48ID:???
>>490
それのドがphp?
0492nobodyさん2005/11/15(火) 01:19:20ID:???
ドコが
0493nobodyさん2005/11/15(火) 01:20:49ID:???
>>490

>>5をよく読んでくれ
04944902005/11/15(火) 01:24:09ID:EuotBK4K
>>493
いま、確認してみます。

04954902005/11/15(火) 01:27:26ID:EuotBK4K
というか、急いでるんです。
わかる方いませんか?
0496nobodyさん2005/11/15(火) 01:29:13ID:???
>>490
少し落ち着け。それだけじゃ何も分らん。
まず何をしようとしてその表示が出るのか、
急になったのか最初からなのか。
俺らはお前の鯖見れないんだからよ。
0497nobodyさん2005/11/15(火) 01:29:29ID:???
>>495
>>5の5を取り合えず嫁
0498nobodyさん2005/11/15(火) 01:31:57ID:???
夜中に釣りかよ
熱心だね
0499nobodyさん2005/11/15(火) 01:33:09ID:???
エスパー光臨待ち
05004902005/11/15(火) 01:35:16ID:EuotBK4K
config.phpの中身が、
<?php
if(ereg("config.php",$_SERVER["PHP_SELF"]))
{
exit();
}
define("DB_HOST","localhost");
define("DB_PORT",8040);
define("DB_NAME","testdb2");
define("DB_USER","testuser2");
define("DB_PASS","abcd1234");

define("DB_CONN","host=" .DB_HOST
."port=" .DB_PORT
."dbname=" .DB_NAME
."user=" .DB_USER
."password=" .DB_PASS);
?>
05014902005/11/15(火) 01:36:10ID:EuotBK4K
500続き、
3-4-1.phpの中身が、
<?php
require("config.php");
$db=pg_connect(DB_CONN);
header("Content-Type:text/plain;Charset=EUC-JP");
if($db==FALSE)
{
echo " not connect db?n " ;
}
else
{
echo "database connect ok?n" ;
}
?>
です。
何か間違っていますか?
0502nobodyさん2005/11/15(火) 01:37:56ID:???
>>500-501
いや、お前な、マジで少し落ち着け。
そのconfig.phpって何のスクリプトに内包されてる奴よ?
自作じゃないだろ?

で、「急になったのか最初からなのか」はどうなのよ?
最初からならpsqlが動いてるかどうか確認しろ。
0503nobodyさん2005/11/15(火) 01:39:40ID:???
$hoge==FALSEとか使ってるスクリプト見ると吐き気を催す
0504nobodyさん2005/11/15(火) 01:41:23ID:???
つか課題くさいなこれ
05054902005/11/15(火) 01:43:26ID:EuotBK4K
最初からです。
/user/local/apache2/bin/apachectl start
pg_ctl -o "-i"
で動作中です。しかし>>490掲載 エラーです。
localhostの意味がよくわかりません。
書籍を参考に勉強中です。
0506nobodyさん2005/11/15(火) 01:46:38ID:???
localhostってソースにあるっしょ。これが見つからないといっている
ポートがデフォルトじゃないけどいいの?

>>define("DB_HOST","localhost");
>>define("DB_PORT",8040);
05074902005/11/15(火) 01:47:45ID:EuotBK4K
define("DB_HOST","localhost");
に問題があるのでしょうか?
設定がよくわかりません。
ポストグレの設定に問題あるのか、
PHPの設定に問題があるのか。。。
0508nobodyさん2005/11/15(火) 01:48:10ID:???
>>506
ポートは合ってるよな?
DBとユーザーは作成済みだよな?
05094902005/11/15(火) 01:49:09ID:EuotBK4K
>ポートがデフォルトじゃないけどいいの?
とは、なんでしょうか?
どう設定すればいいのでしょうか?
よくわからないもので..
0510nobodyさん2005/11/15(火) 01:50:00ID:???
あ、間違えた。>>505宛ね・・・つか被ったorz

>>507
おまえさ、急ぐ必要なさそうだからちょっとじっくり勉強しなおせ
05114902005/11/15(火) 01:50:02ID:EuotBK4K
>>508
はい。作成済みです。
0512nobodyさん2005/11/15(火) 01:52:55ID:???
DBサーバとphpが動いているサーバは同じでOK?
05134902005/11/15(火) 01:55:34ID:EuotBK4K
/home/xxxxx/pgsql
/user/local/apache2
にインストールしています。
はい。同じサーバです。
0514nobodyさん2005/11/15(火) 02:03:52ID:???
psql -l
は動く?
05154902005/11/15(火) 02:05:05ID:EuotBK4K
はい。うごきます。
05164902005/11/15(火) 02:06:10ID:EuotBK4K
phpinfo();
も大丈夫なんですが、pgsqlはエラーで、ダメみたいです。。。
0517nobodyさん2005/11/15(火) 02:07:32ID:???
俺はもう降りる。やってられん。
05184902005/11/15(火) 02:09:41ID:EuotBK4K
>>517
いろいろありがとうございました。
ちょっと自分で本屋に行って勉強してみます。
ほんとに感謝します^^
では。
0519nobodyさん2005/11/15(火) 02:15:58ID:???
急いで無ぇーw
0520nobodyさん2005/11/15(火) 02:16:01ID:???
もう見てないかな
portを5432
にしてどうかな?
0521nobodyさん2005/11/15(火) 02:23:55ID:???
はたから見てるとポートが怪しんだけど、わざわざ8040ってするぐらいだから
合ってんだろうなぁ。試しに、
psql --help
としてヘルプを出してみたときに、-p オプション説明のところに
defaultが書いてあると思うが、どうなってる?

いっそうの事、port=8040を渡さずに接続してみるのも手か?
0522nobodyさん2005/11/15(火) 02:31:57ID:???
localhostもportもよくわがんねってぐらいだからな〜
わざわざポートを変えるかって気もするけど。

pg使ったこと無いんだけど、portが開いてなくても
unknownになるですかね?
05235212005/11/15(火) 02:55:51ID:???
>>522
そなだ。

> server: unknown host name: localhost

ポートどころか、それ以前の問題っぽいな。
でも、localhostがunkownって...
0524nobodyさん2005/11/15(火) 03:39:25ID:2PUyzd2z
テンプレは読みましたが、質問の仕方がわからない程の初心者です。

DBの内容が
フィールド 1,2、3、4
レコードの内容 1=(A,B)
         2=(C,D)
         3=(E,F)
         4=(G,H)
だとすると、今の知識ではHTMLに書き出すとき、
A,B
C,D
E,F
G, H
と表示できるのですが、
C,B
E,D
G,F
と情報を斜めに表示するにはどうすればいいのでしょう? 
0525nobodyさん2005/11/15(火) 03:47:34ID:???
>>542
>>テンプレは読みましたが、質問の仕方がわからない程の初心者です。
日本語を勉強することをおすすめします。


フィールドとかレコードとか理解してる?
テーブルをExcelみたいな表形式で表現してみなよ
0526nobodyさん2005/11/15(火) 04:03:26ID:???
>>524
どっち?

  1 2 3 4  (←フィールド1からフィールド4)
1 A C E G  (←レコード1)
2 B D F H  (←レコード2)

  1 2      (←フィールド1とフィールド2)
1 A B      (←レコード1)
2 C D      (←レコード2)
3 E F      (←レコード3)
4 G H      (←レコード4)
05275242005/11/15(火) 04:10:48ID:2PUyzd2z
>>525
>>テンプレは読みましたが、質問の仕方がわからない程の初心者です。
テンプレは理解できても、PHPは理解できてないから上手く表現できないかもしれない。って言いたかったです><

>>526
後者です
0528nobodyさん2005/11/15(火) 04:14:25ID:???
>>526
レスありがとうございます。
フィールド→0843
レコード1→BAKA
レコード2→AHO
となっています。
0529nobodyさん2005/11/15(火) 04:38:47ID:???
>>524
phpが理解っていうよりプログラム言語一般の理解不足って感じがするけど

フィールドの2つ目はなんか入ってる必須&エラーとか考えずだけど

$result = mysql_query("select f1,f2 from table order by ?");
$f2 = "";
while ($row = mysql_fetch_array($result)) {
 if ($f2 == "") $f2 = $row["f2"];
 else {
   echo $row["f1"].",".$f2."<br>\n";
   $f2 = $row["f2"];
 }
}
でどう?
05305242005/11/15(火) 05:35:05ID:2PUyzd2z
出来ました!どうもありがとうございました
0531nobodyさん2005/11/15(火) 05:36:04ID:???
お前遅くというか、早いって言うかなんかがんばってるなw
0532nobodyさん2005/11/15(火) 06:53:34ID:???
>490
ひさびさに ワロスww


期待の大型新人ですね。
いいなあ、みんな。また、あえるかなw
05334082005/11/15(火) 10:08:42ID:???
>>418
遅くなりました。超ありがとうございます。
0534nobodyさん2005/11/15(火) 11:33:49ID:0AfHumhW
>>503が$hoge==FALSEはダメといってますが
こういう記述ってまずいんでしょうか。
自分も普通に使ってるときがあるんですが
どのような記述がよいのでしょうか。
0535nobodyさん2005/11/15(火) 11:40:56ID:???
>>534
!$hoge
とか?
0536nobodyさん2005/11/15(火) 11:44:30ID:???
うそん
もうちっとマトモな理由だと思ってROMしてるんですが…
0537nobodyさん2005/11/15(火) 11:47:05ID:???
>>534
$hoge = 0;
や
$hoge = "";
の時の動作をどうするかですね
$hoge == FALSE
だと$hoge が0や""でも該当するので好きではない
普通は
$hoge === FALSE
を使う
0538nobodyさん2005/11/15(火) 11:50:07ID:???
phpとmysqlで住所録みたいなのを作っています。
ロリポップを借りているのですが、データベースをいじるときに
phpmyadminではなく、直接クエリを発行するにはどうすればいいですか?
コマンドプロンプトでできますか?
0539nobodyさん2005/11/15(火) 11:54:56ID:???
>>538
phpのmysql関数じゃだめなの?
0540nobodyさん2005/11/15(火) 11:55:16ID:???
>>538
ちーっとは自分で調べようね
0541nobodyさん2005/11/15(火) 11:57:59ID:???
まぁ今回は優しく教えてあげよう

コマンドプロンプトって書いてるからwin版だと仮定して
c:\mysql\bin\mysql

いじょう
0542nobodyさん2005/11/15(火) 12:00:11ID:???
>>537
ほーーー
そんな記述方法があったとは勉強になりました。

でも503の言う吐き気のコードが直前のソースの、

$db=pg_connect(DB_CONN);
…
if($db==FALSE)
{
…
}

だとしたら、pg_connect()の返り値はFALSEかresouce型だから、0とか空文字とか
って可能性は無いしとりあえずは問題無いんじゃないのでしょうかと聞いてみる
0543nobodyさん2005/11/15(火) 12:07:34ID:???
>>541
ロリポってWindowsサーバーなの?
0544nobodyさん2005/11/15(火) 12:11:10ID:???
>>537
ありがとうございます。
よく解りました。
0545nobodyさん2005/11/15(火) 12:12:09ID:???
>>538
なぁ、マジメに聞くんだが、オマイはその質問がPHPと関係あると思ったから
このスレに書き込んでるんだよな?
どういう判断で、関係あると思ったのか教えてくれまいか。
0546nobodyさん2005/11/15(火) 12:12:20ID:???
>>543
ひぃぃ 見落としてたわ
まぁでもわかるでしょ。これでわからなければ一から出直せと。。。
0547nobodyさん2005/11/15(火) 12:14:19ID:???
>>546
つか、PHPとMySQLで住所録みたいなのを作っていて、
どうしてこういう質問なのだろう、ってとこだよな。
「作っていて」じゃなくて「作ろうとして」なんだとは思うが。

0548nobodyさん2005/11/15(火) 12:18:48ID:???
まぁphpMyAdminでもSQL直打ちはできるんだが。
最近、くだスレの方がまともな質問が多い気がするのは気のせい?
0549nobodyさん2005/11/15(火) 13:42:35ID:???
>>548
自分の質問がくだらない質問だとわからない奴ほど、くだらない質問をするからでしょうね
0550nobodyさん2005/11/15(火) 17:43:42ID:BTJCOqzC
FedoraCore 4
MySQL 4.1.14
PHP 5.0.4    を使ってます。

<?PHP
$conn = mysql_connect("localhost", "usr","pass");
mysql_select_db("kisop", $conn);
$res = mysql_query("SHOW TABLES",$conn);
if($res == TRUE){ print("データ獲得に成功しました。");
}else{ print("失敗"); }
?>

とやっても、ページが真っ白になるだけでMySQLに接続できません。
usrはきちんと作られており、また、PHPもSQL接続以外は問題なく動いています。
また、ODBCからの接続は問題なかったりします・・・
何が悪いのか、心当たりある方、ご教授ください。
0551nobodyさん2005/11/15(火) 17:51:23ID:???
>>550
とりあえず
error_reporting(E_ALL);
0552nobodyさん2005/11/15(火) 17:51:35ID:???
全角スペースらしきものが見えるが
エラー無視ってるわけじゃないだろうな
0553nobodyさん2005/11/15(火) 18:02:11ID:???
>>550
真っ白なページが表示されるのは、PHPレベルでのエラーが発生していると思われるので
MySQLがどうこうは関係ないはず。
php.iniかスクリプトで設定して、エラーをブラウザに表示させるところから始めよう。
スクリプトで設定する場合は、先頭に以下を記述。
ini_set('display_errors', true);
error_reporting(E_ALL);

それ以降の話だけど、$res を == TRUE で判定するのは危ないと思われ。
$res === FALSE(=== 3つであることに注意)の方が安全。
0554nobodyさん2005/11/15(火) 18:04:15ID:???
いや、エラー取得しろよ
0555nobodyさん2005/11/15(火) 18:15:27ID:???
>>551,553
ありがとうございました。

エラーを表示させたところ、
$conn = mysql_connect("localhost","usr");
の行にエラーがあるとのこと・・・

となると、やはりホスト名やユーザ名が怪しい・・・?

/etc/sysconfig/network の HOSTNAMEではなく、localhost固定ですよね?

どちらも実験しましたが、やはりダメでした・・・
0556nobodyさん2005/11/15(火) 18:16:56ID:???
>>555
何てエラーだ?
0557nobodyさん2005/11/15(火) 18:17:57ID:???
>>555
ちゃんと解釈できてないならエラーを略すな
05585502005/11/15(火) 18:19:46ID:???
>>556-557
すみませんすみません。

Fatal error: Call to undefined function mysql_connect() in /var/www/html/simple_connect.php on line 8

というエラーでした。
0559nobodyさん2005/11/15(火) 18:20:43ID:???
ワロス。バカすぎるww
0560nobodyさん2005/11/15(火) 18:23:17ID:???
(´-`).。oO(なんでだろ?)
0561nobodyさん2005/11/15(火) 18:24:02ID:???
いつから
 くだスレのレベル >>> 本スレのレベル
になったんだ。
0562nobodyさん2005/11/15(火) 18:28:02ID:???
このスレが出来たころからでしょうか、、、
0563nobodyさん2005/11/15(火) 18:28:32ID:???
で、今朝は何食った?
0564nobodyさん2005/11/15(火) 18:28:49ID:???
yumでphp-mysqlを拾っておいで
http://jp2.php.net/mysql
0565nobodyさん2005/11/15(火) 18:33:39ID:???
礼儀正しい態度と質問内容の落差が切ないな
FC4使ってるけど最初から入ってた希ガス
05665502005/11/15(火) 18:41:12ID:???
>>564
MySQLはきちんと入れてますが、いまだに原因がわかりません。涙

mysql> select user,host,password from mysql.user;
+------+-----------+------------------+
| user | host | password         |
+------+-----------+------------------+
| root | localhost | xxxxxxxxxxxxxxxxx    |
| usr | 192.% | xxxxxxxxxxxxxxxxx     
| usr | localhost |            |
+------+-----------+------------------+

きちんとユーザつくられているのに・・・涙
0567nobodyさん2005/11/15(火) 18:43:32ID:???
>>550
あのな、>>558のエラーはphpにmysqlの拡張モジュール組み込まれてないせいなの
phpinfoで確認した後、>>564読んで出直しておいで
0568nobodyさん2005/11/15(火) 18:44:41ID:???
ここは釣りを楽しむスレだったんですねwww
0569nobodyさん2005/11/15(火) 18:47:41ID:???
>>566
なんか釣りのような気もしてきたが…

[PHP] <---> [PHPのMySQLモジュール] <---> [MySQL]

オマイさんのシステムには、[PHPのMySQLモジュール] がインストールされていない、
またはインストールされているが、使用するように設定されていない。
今時の Linux の状況は漏れは知らんが、>>564 氏の書かれた yum とかで
インストールできるんぢゃマイカ。
0570nobodyさん2005/11/15(火) 18:48:01ID:???
>>567
ありがとうございました。
拡張モジュールが不足していたんですね。汗

お騒がせ致しましたm(_ _)mペコリ
0571nobodyさん2005/11/15(火) 18:48:30ID:???
PHP自分でコンパイルした?
0572nobodyさん2005/11/15(火) 18:53:43ID:???
5.0.4だからrpmでしょ
05735502005/11/15(火) 18:55:28ID:???
>>571
いえ、rpmで自動的にやりました・・・
問題ありましたか??汗
0574nobodyさん2005/11/15(火) 19:02:07ID:???
次は
Fatal error: Call to undefined function mb_convert_encoding() in . . .
0575nobodyさん2005/11/15(火) 19:06:07ID:???
>>565
FC4公式rpmだとphp-mysqlパッケージで別。
0576nobodyさん2005/11/15(火) 19:21:38ID:???
次に、取得したデータが文字化けするという相談が来る予感。
0577nobodyさん2005/11/15(火) 19:23:23ID:???
エラーばっかりで涙が出てきました。
PHPにはもっと寛大な心を持って欲しい。
0578nobodyさん2005/11/15(火) 19:51:01ID:???
寛大だからエラーがあっても動いてんだろ
つーかデバッグはエラー出してやれよ
思わぬ落とし穴にはまるぞ
0579nobodyさん2005/11/15(火) 20:02:35ID:???
PHPに型とか強制して、違ってたら大量エラーで叱ってくれる機能が欲しい。
0580nobodyさん2005/11/15(火) 20:15:05ID:PU11Oeig
call_user_funcで関数を呼び出してるプログラムがあるのですが、
grepで調べてみると、その関数名を持つ関数がやたらと
たくさんあります。
その場合のcall_user_funcで呼び出される優先度ってどういう
決まりがあるのでしょうか?
0581nobodyさん2005/11/15(火) 20:20:51ID:???
>>580
関数を2回定義したらFATAL ERROR。(オーバーロードもできない)。
grepでひっかかったのって呼び出しじゃないの?
0582nobodyさん2005/11/15(火) 20:23:23ID:???
あるいは
class A { function hoge() {} }
class B { function hoge() {} }
class C { function hoge() {} }
ってオチかと
0583nobodyさん2005/11/15(火) 20:24:56ID:???
if ($foo) { function hoge() {} }
else { function hoge() {} }
もありうるな(あんまないかw)
05845802005/11/15(火) 20:28:05ID:???
>>581
早速のレスどうもです。


別ファイル[ファイルX]に記述されてるのを呼び出してるんですけど見てたら
そのファイル[呼び出し元B]自体がrequire_onceで、
他のファイル[呼び出し元A]に呼ばれてるます('A`)

[呼び出し元A]の中ではrequire_onceで10個ぐらいよびだしてるので
その中のいずれかで、call_user_funcで呼び出してるファイルを
さらに呼び出してるぽいかも。
こういう階層にするのってPHPで一般的なのかな?

grepでひっかかったのは
function 呼び出し関数名(){
ってなってるのでたぶん間違ってないと思います。
本来なら、関数名だけで判断できるように同じ関数名は避けるべきっすよね?

もうちょっと調べてみますー。おかげで考えがまとまりました。
ありがとうございましたー。<m(_)m>
05855802005/11/15(火) 20:29:45ID:PU11Oeig
>>582-583
おお、書いてる間にさらにレスが!ありがとうございます。
classは使ってないぽいです。
if文の中で関数定義なんてできるんすね。
phpって結構なんでもありだなぁ・・・。
0586nobodyさん2005/11/15(火) 20:34:45ID:???
よくわからんけど、
require_once()は、スクリプトの実行時に同じファイ ルが複数回読み込まれ、評価される可能性がある場合に、
関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるため に使用します。
(マニュアルより)

も覚えとくといいかも
■ このスレッドは過去ログ倉庫に格納されています