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

【PHP】下らねぇ質問はここに書き込みやがれpart10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/25(日) 02:03:45ID:nLUfPXhD
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0382nobodyさん2005/10/05(水) 05:19:45ID:???
マジっすかとか驚くほどのことでもないだろうが・・・
0383nobodyさん2005/10/05(水) 05:55:55ID:SZgLc6+c
【PHP Version】5.0.4
>PHPマニュアル print_r より
>print_r() と var_export() はvar_dump()と違い、 PHP 5においてオブジェクトのprotected及びprivateのプロパティも表示します。
と書いてあり、「var_dump()はpublicしか表示しないのだろう」と思って試してみた。

結果:var_dump で protected・private が出力されている。
<var_dump>
object(obj)#1 (3) {
["a"]=>
string(6) "public"
["b:protected"]=>
string(9) "protected"
["c:private"]=>
string(7) "private"
}

<print_r>
obj Object
(
[a] => public
[b:protected] => protected
[c:private] => private
)

<var_export>
class obj {
public $a = 'public';
protected $b = 'protected';
private $c = 'private';
}
0384nobodyさん2005/10/05(水) 05:56:30ID:SZgLc6+c
質問:
・var_dump()はpublicしか表示しないのだろうと思ったけど、私の勘違い?
・各関数の違いは以下の通り?
print_r : 簡素に出力。第二引数がTRUEの場合、結果を返す。
var_dump : 型などの詳細も出力。
var_export : PHPコードの形で出力。第二引数がTRUEの場合、結果を返す。
0385nobodyさん2005/10/05(水) 07:47:03ID:???
>>384
var_dump(英語)には
In PHP 5 only public, private and protected properties of objects will be returned in the output.
と書いてあるから
03863692005/10/05(水) 10:22:41ID:Qlmr5ADv
>>378
わざわざすみません。もっと勉強します。
ちなみにfirefox(mac os X)です。
osXとMAMPという環境でphpを勉強中です。
0387nobodyさん2005/10/05(水) 10:44:16ID:hgIawq/C
<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

上はsortを用いて配列をアルファベット順に並べたものですが、
配列をランダムに並ばせるものを作る簡単な方法はありますか?


つまり、やりたい事はアクセスするたびに4つの画像の順番がランダムに入れ替わり表示されるようにしたいのです。
0388nobodyさん2005/10/05(水) 10:45:58ID:???
つ array_rand
0389nobodyさん2005/10/05(水) 10:46:21ID:???
つ shuffle
0390nobodyさん2005/10/05(水) 11:29:52ID:???
コンピュータに完全にランダムの数字を作らせるのは難しいみたいね。
0391nobodyさん2005/10/05(水) 11:35:44ID:rxjtKeLJ
ストップタグって何ですか?
0392nobodyさん2005/10/05(水) 11:45:40ID:hgIawq/C
>>388-389
ありがとう
できました
0393nobodyさん2005/10/05(水) 12:27:36ID:???
>>390
擬似乱数で不都合なシチュエーションって何よ?
0394nobodyさん2005/10/05(水) 12:35:29ID:iJ3zhQF9
<?php
for($i = 0; $i < count(@$_POST["check1"]); $i++)
{
echo "<p>".$_POST["check1"][$i]."にチェックが入っています";
}
?>

<form method = "POST" action = "<?=$_SERVER["PHP_SELF"]?>"
<table>
<tr>
<td>
<input type = "checkbox" name = "check1[]" value = "PHP">PHP
<input type = "checkbox" name = "check1[]" value = "Perl">Perl
<input type = "checkbox" name = "check1[]" value = "ASP">ASP
<input type = "checkbox" name = "check1[]" value = "JSP">JSP
</td>
</tr>
<tr>
<td>
<input type = "submit" value = "送信" name = "sub1">
</td>
</tr>
</table>

ちょっと確認したいのですが。
この場合、チェック入れたものだけが配列に入って送られるで合ってるでしょうか。
仮にPHP,JSPにチェック入れたとしたら、配列番号0には"PHP"が、配列番号1には"JSP"といった
具合に入れられて送られるといったイメージで合ってますか。
何か勘違いしていたら指摘していただけるとうれしいです。
0395nobodyさん2005/10/05(水) 12:40:36ID:???
>>394
合ってる。
次からは、まずprint_r($_POST)とかしてみてから書き込もうな。
0396nobodyさん2005/10/05(水) 12:44:55ID:???
>>394
つ foreach
03973942005/10/05(水) 12:47:08ID:iJ3zhQF9
>>395
回答ありがとうございます。
PHP初めてなもので、このイメージで合ってるのか不安だったので質問しました。

配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね。
どうもアドバイスありがとうございます。

>>396
PHPもforeach使えるんですね。覚えときます。どうもありがとうございます。
0398nobodyさん2005/10/05(水) 13:18:45ID:KahEav2g
jpgraph + PHP4 を使用しています。
グラフで、左Yのスケールと右Yのスケールが違う複合グラフは作成出来るのでしょうか?
例えば、左Yのメモリは最大値100で棒線グラフ。
右Yのメモリは最大値10000で折れ線グラフといった感じです。
0399nobodyさん2005/10/05(水) 13:25:55ID:???
>>397

>配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね
そういう意味ではなく、print_r($_POST) してみればワザワザ聞かなくても判るでしょ?
という意味だろ。
0400nobodyさん2005/10/05(水) 13:31:47ID:???
phpスクリプトの不具合に対する丸投げに近い質問(というか要望)を投げたいのですが、
ダメでしょうか?
0401nobodyさん2005/10/05(水) 13:44:26ID:???
内容によるんじゃない?
取り敢えず書く。
叩かれるのを恐るべからず。
0402nobodyさん2005/10/05(水) 13:57:32ID:???
ありがとうございます。

http://nekomimi.s91.xrea.com/_database_test/stock/extract_php.zip
”extract.php”
これはWeb制作板のCGI探索スレで作っていただいたスクリプトなんですが、
作成者さまのPCが飛んでしまったということでサポート対象外になってしまったので、こちらに投書させていただきます。

概要としては、csvファイルの「ランダムに選択された行」から、「指定した列の文字列」を抽出し、表示するというものです。
csvファイルは1行1データという形で収束されています。
このスクリプトで若干不具合があり、
・csvの行が10行以上ある場合、それ以降の行が選択候補から除外される(9行までしか認識しない)
・逆に、9行未満の場合、文字列が表示されない場合がある
というものです。

希望としては、
・行が何行であってもその中から選択し、確実に文字列表示する
というようにして頂きたい次第です。

実際に動いているイメージとしては、このページのようになります。
http://nekomimi.s91.xrea.com/_database_test/stock/
0403nobodyさん2005/10/05(水) 13:58:54ID:???
別にいいのでは?
ボロカスに言われるかもしれないけど、それなりに相手してくれると思うよ。
矢継ぎ早に同じレベルの質問を繰り返すと嫌われるかもしれないけれど。
ボロカスに言われても、指摘内容は正しいことが多いから、ムカつかずに今後に生かせばいい。
04043942005/10/05(水) 14:05:38ID:???
>>399
そうか。
print_r($_POST)すれば配列の中身が見れるから、それをしていたら質問するまでもなかったよねという意味でしたか。
配列だったら、こう書いたほうが便利だよといった意味かと思いました。

まだ基礎的なコードいじって学習してる段階なのでechoばっかり使ってました。
最初の方にちらっとprint_r関数も出てきてたなあ程度だったのでそこまで考えが回らなかったようです。

まあ、もやもやしたイメージが確かなものになったので感謝です。ありがとう。
0405nobodyさん2005/10/05(水) 15:13:04ID:???
>>402
<?
#データファイル
$data_file = "dataedit.csv";
#取り出す列-1(「$row = array("0", "1", "2")」とすれば1列目と2列目と3列目を取り出します。)
$row = array("0","3");
$num = count($row);
$data = file($data_file);
for($j = 0; $j < $num; $j++)
{
$result = $data[array_rand($data)];
$val = explode("\t", $result);
echo $val[$row[$j]] . "<br>";
}
?>
0406nobodyさん2005/10/05(水) 15:13:52ID:???
>>402
試してないけど

<?
$data = ---- の行以降を以下に変更

$tmp = file($data_file);
$rand_keys = array_rand($input, 10);
foreach($rand_keys as $i) {
 $rec = explode("\t", $tmp[$i]);
 foreach($row as $j => $k) {
  echo $rec[$k] . "<br>";
 }
}
04074062005/10/05(水) 15:16:15ID:???
あ、かぶった

1行訂正
foreach($rand_keys as $a => $i) {
04084052005/10/05(水) 15:18:29ID:???
>>405ではfile_get_contentsをfileに直したけど
$tmp = explode("\t\n", $data);
を
$tmp = explode("\n", $data);
にすれば不具合はなくなるのではないかと思う
0409nobodyさん2005/10/05(水) 15:24:21ID:???
つか、fgetcsv($fp,1024,"\t",'')とかでやったほうが効率的だと思う
0410nobodyさん2005/10/05(水) 15:37:15ID:Cp2lANiy
サーバ:Linux
PHPバージョン:4.3.8
APACHE:1.3.28
DBサーバ:Windows2000Server・SQLServer2000

LinuxのPHPからDBサーバにアクセスを行い、データを取得したいのですが
方法が分かりません。
マニュアルには、プラットフォームが違う場合はコンパイル時に
「Sybase拡張モジュール」を使用して下さいとあるのですが、
Sybaseをインストールしなければならないのでしょうか。
04113832005/10/05(水) 16:02:58ID:???
>>385
疑問が解けたよ Thx!

(英語版のマニュアルも見るべきだな orz )
0412nobodyさん2005/10/05(水) 16:04:46ID:Wy1EjQwZ
Smartyの質問なんですがよろしいでしょうか?

{$user.id} みたいな変数(連想配列)は普通に展開されて表示できますが、
{include file="header.tpl" user_id="$user.id"}
のような感じでやると、header.tplには$userが渡されているようです。
$user.idを渡したい場合はどうすればいいのでしょうか?
0413nobodyさん2005/10/05(水) 16:48:26ID:iJ3zhQF9
今現在php.iniの設定が

post_max_size = 8M
upload_max_filesize = 2M

なのですが、この値って

post_max_size = 1G
upload_max_filesize = 2G

のように適当にG買いとも大丈夫なんでしょうか。
書き込める容量とかにも制限があるんですかね。
1G,2Gくらいなら余裕で書いちゃってもOKでしょうか。
04144022005/10/05(水) 16:50:56ID:???
>>405>>408
>>406>>407
>>403>>409
ありがとう御座います。
とりいそぎ>>405さんのソースをうpさせてもらいましたところ、希望する通りの表示が確認できました。
他の方法も興味があるのでいろいろ試させてもらいますが、原理を把握するのに少し時間がかかりそうです…。すみません。
ご教示頂いて本当に有り難うございます。
0415nobodyさん2005/10/05(水) 16:52:52ID:???
メモリの使い方によるんじゃね?レン鯖でやられたらたまんねぇな。
04164132005/10/05(水) 16:56:15ID:iJ3zhQF9
今、いろいろ調べてたら

post_max_size > upload_max_filesizeじゃないと、upload_max_filesizeが全く意味をなさないみたいなことを書いてました。

もし、2Gまでアップロード可能にしたければ

post_max_size = 2G
upload_max_filesize = 2G

って書くべきなんですね。

でも、ここに書ける容量の限界ってどのくらいなんでしょうか。

>>415
メモリの使いかたによっては書けると。
物には限度というものがあるとは思うのですが。書こうと思えばいくらでも設定可能なんでしょうかね。
04174132005/10/05(水) 16:59:20ID:iJ3zhQF9
メモリの使い方を考えないといけないんですね。

よくよく見てみたら

memory_limit > post_max_size > upload_max_filesize

じゃないとだめみたいですね。
こういうことしようと思えば、自サーバで、回線も高品質でメモリいっぱい積んどかないときついのかな。
0418nobodyさん2005/10/05(水) 17:01:29ID:???
>>410
http://jp2.php.net/manual/ja/faq.databases.php#faq.databases.mssql

UnixODBC利用して、ODBCで話してもいいと思うけど。
0419nobodyさん2005/10/05(水) 17:15:40ID:???
これスレ全然くだらなくないな..
0420nobodyさん2005/10/05(水) 18:08:01ID:???
本来の質問スレのスレタイに質問という字がないのでこちらに人が集まる
04214182005/10/05(水) 18:49:26ID:???
正確な表記はunixODBCだな。
0422nobodyさん2005/10/05(水) 19:53:24ID:???
助けてください。

PHPで作ったライブラリ(クラス群)を第3者に提供する必要がでてきたのですが、
そのままですとソース丸見えになってしまいます。

そこで中身を見れなくするために、
コンパイルしてオブジェクトの形で提供したいのですが、
そんなこと可能なのでしょうか?

APCはちと違うような気がするし、Encoderもありましたが有償ですし。

もし不可能ってことになるとC言語でライブラリ作成する必要がでてきて死にそうなんです。

どなたかお知恵を・・・
04234222005/10/05(水) 19:58:44ID:???
環境を書き忘れました。
FedoraCore4
Apache2
PHP5
です。
0424nobodyさん2005/10/05(水) 20:01:34ID:???
>>423
C言語ガン( ゚д゚)ガレ!
0425軟式PHP2005/10/05(水) 20:08:13ID:???
>>422
PHP SCREWってのはどうよ。使ったことないけど。
0426nobodyさん2005/10/05(水) 20:23:17ID:???
>>422
>>425の手もあるけど、正直お勧めしない。
金とるんならNDAでも結んでおくか、Cで書くしかない。
0427nobodyさん2005/10/05(水) 20:26:30ID:???
>>422
ttp://www.asial.co.jp/products/ioncube/
↑これ使えばいいじゃん。

第三者に提供ってことは商売だろ? だったら投資を惜しむな。
商売じゃないんだったら、そんな依頼請けるな。
0428nobodyさん2005/10/05(水) 20:43:27ID:???
>>422
http://pecl.php.net/package/bcompiler

ただ、俺も>>427に強く同意するがな。
04294222005/10/05(水) 21:02:41ID:???
>>427
そのプロダクトいいですね。
上に聞いてみます。
今後PHP案件がどんどん増えればいいんですけどね。

まだ正式な契約はしてないので、
Cでゴリゴリやるとなると工数再見積になると思います。

あ〜、めんどくせ。
0430nobodyさん2005/10/05(水) 21:42:55ID:???
>>418様
サーバ環境が間違ってました。
サーバ:FreeBSD4-stable
FreeBSDでFreetdsとunixODBCを使用し、
DBにアクセスは出来たのですが、select分で取得した
値の日本語が文字化けします。
サーバがLinuxで、教えて頂いたURLの
「必要なLinux用ライブラリのフリーな実装」を利用すれば、
日本語の文字化けもなく、問題なく利用できるのでしょうか・・・。
0431nobodyさん2005/10/05(水) 22:11:21ID:???
devil();
0432nobodyさん2005/10/06(木) 00:32:54ID:???
ファイルに

bbb
ccc
ddd

とある場合に先頭にaaaを追加して

aaa
bbb
ccc
ddd

としたいのですがbbb〜dddを読み込まずに実現する方法を教えて頂きたいです。
ファイルの先頭に挿入書込がしたいということです。
よろしくお願い致します
0433nobodyさん2005/10/06(木) 00:46:30ID:???
>>432
無いよ。
PHPの関数や命令文つーのは最終的にOSが提供している機能を使うんだけど
OS側の機能にそういう物が存在しない。
0434nobodyさん2005/10/06(木) 03:31:59ID:taikAwmT
PHPを使ってhtmlページを解析し、特定部分を抽出したいと考えています。
しかしいまいちアルゴリズムが思い浮かばないのでアドバイスをお願いしたいです。
はじまりから終わりまでを特定の文字列(正規表現の一致)で指定して

はじめ部分指定〜おわり部分指定

という感じでこれら指定部分に挟まれた部分を抽出したいと思っています。
よろしくお願いいたします。
0435nobodyさん2005/10/06(木) 03:41:34ID:???
>>434
それでいいから、思うように書いてみ?
だめだったらまたこればいいさ。
0436nobodyさん2005/10/06(木) 04:07:20ID:???
ホントにくだらないですが、どうして
データ管理をマイシークェルとかいうデータベースを使うのですか?
04374342005/10/06(木) 06:40:55ID:taikAwmT
わかりました質問を変えます。
正規表現で一致したある部分を先頭とし、もうひとつ同様にある部分を終わりとする、そしてそれらで指定した箇所を抽出する、そういったことが可能な関数または手法
あるいは
正規表現で一致したある部分から前方を削除し、もうひとつ同様にある部分から後方を削除する、そういった関数または手法
はありませんか?よろしくお願いいたします。
0438nobodyさん2005/10/06(木) 07:24:47ID:???
>>436
>>432みたいな苦労をしなくてすむ
データの追加はデータを放り込むだけ
読み出す時は必要な分だけを指定した順番で並び替えて送ってくれる

>>437
preg_match()
preg_match_all()
・
・
http://jp.php.net/manual/ja/ref.pcre.php
0439nobodyさん2005/10/06(木) 07:31:10ID:???
>>437
まったくしょうがねえなぁ
<?php
$text = "ほげほげはじめ部分指定ほげほげほげぬ\nほげほげほげる\nほげほげほげぽおわり部分指定ほげほげ";
$start = "はじめ部分指定";
$end = "おわり部分指定";
preg_match("/$start(.*?)$end/s", $text, $matches);
$result1 = $matches[0]; // 開始部分・終了部分も含む
$result2 = $matches[1]; // 開始部分・終了部分は除外
?>
04404342005/10/06(木) 08:02:00ID:???
>>438 >>439
どうもありがとうございます。
助かりました。
0441nobodyさん2005/10/06(木) 08:26:46ID:???
>>432
読み込みなんぞfile_get_contentsで一気にできるだろ
0442nobodyさん2005/10/06(木) 08:37:38ID:???
MPEGなどの動画から任意のフレームの静止画像をJPEGなどの形式で取り出し保存する方法を教えてくれた人は神。
04434322005/10/06(木) 09:04:36ID:???
>>433
>>438
>>441

レスありがとうございます。
無理ですか。
bbb〜dddが500KBくらいあるので、読み込まずに済ませられるならいいなと思ったんですが。
素直に読み込むか、これを機にDBの勉強をしてみようと思います。
ありがとうございました。
0444nobodyさん2005/10/06(木) 09:21:31ID:???
>>442
板違い
0445nobodyさん2005/10/06(木) 09:47:11ID:???
>>444
まあそう言わずにPHPでお願いします。
0446nobodyさん2005/10/06(木) 10:49:15ID:NRrV93R6
>>442
ひとまず、MPEGの仕様を読むんだな。話はそれからだ。
0447nobodyさん2005/10/06(木) 10:57:49ID:RhL8bp3P
>>442
動画の再生やコマドリにはコーデックを用いるのが通常。
コーデックはライブラリとして提供される。
頑張れ。

あとコマンドラインからコマを抜き出すツールがあればそれを呼び出すってのも手
0448nobodyさん2005/10/06(木) 11:51:33ID:obhW270H
<?php
$a = $_FILES["files"]["tmp_name"];
$fp = fopen($a,"r");
while($nakami = @fgetcsv($fp,1000))
{
$ID = $nakami[0];
    〜中略〜
   $ID48 = $nakami[47];

   echo $ID;
   〜中略〜
   echo $ID48;
   }
   fclose ($fp);
?>

CSVをアップロードして、出力される48個の文字列に
mb_convert_kana処理(半角カナを全角にしたり)をしたいです。どうすればいいんでしょうか?
0449nobodyさん2005/10/06(木) 12:04:09ID:???
>>448
$ID = $nakami[0];
これは無駄というか有害な処理
配列のままの方が扱いやすい

答え
配列のままでarray_map()使う
0450nobodyさん2005/10/06(木) 12:09:21ID:???
>>448
while($nakami = @fgetcsv($fp,1000))
{
foreach($nakami as $value)
{
echo mb_convert_kana("K", $value);
}
}
fclose($fp);
04514482005/10/06(木) 12:17:39ID:obhW270H
>>449,450
早速のレスありがとうございます!
今から実験してみます。もしうまく行かなかったらまた相談させてください。
よろしくお願いします。
04524482005/10/06(木) 12:59:37ID:obhW270H
>450
450さんのコードでCSVの中身を出力することができました。これすごいです。(自分のは120行くらいあったので...)
ただ、配列の中の特定の値だけをテキストエリアに出力したかったりするのですが、このwhileでforeachな感じでもそういうことってできますかね?

>449
449さんの仰る通り、リファレンスを読んでいたら、array_map()が使えそうな気がしたんですが、どうもうまく扱えませんでした。
CSVをアップしてmb_convert_kanaで成形して、出来れば各項バラバラに出力したいだけなのですが...。

0453nobodyさん2005/10/06(木) 13:29:06ID:???
>>452
array_mapを使うとこんな感じかな。今回の場合だと >>450 氏の方法と大して変わらんと思うが。
function kanaconv($value) {
 return mb_convert_kana($value, "K");
}

while($nakami = @fgetcsv($fp,1000))
{
 $nakami = array_map("kanaconv", $nakami);

 foreach($conv as $value)
 {
  echo $value;
 }
}

元々のやりたいことが特定の列だけを変換、出力したいのならこれで充分なはずだけど。
while($nakami = @fgetcsv($fp,1000))
{
 $value = mb_convert_kana($nakami[列番号], "K");
 echo "<TEXTAREA>$value</TEXTAREA>";
}
04544532005/10/06(木) 13:30:27ID:???
>>452
ごめん間違えた。
foreach($conv as $value)
 ↓
foreach($nakami as $value)
0455nobodyさん2005/10/06(木) 13:41:58ID:???
特定の列を抜き出したい場合はこういうのもありかと。
$arr_key = array(1,3,5,7,9); // 取り出したい列の番号 0起算
$arr_data = array(1,2,3,4,5,6,7,8,9,10);
foreach($arr_key as $key){
 echo $arr_data[$key]; //2,4,6,8,10が出力
}
04564482005/10/06(木) 14:28:31ID:obhW270H
>>453,455
すばらしいです!すごい..,。

>453さん

while($nakami = @fgetcsv($fp,1000))
{
 $value = mb_convert_kana($nakami[列番号], "K");
 echo "<TEXTAREA>$value</TEXTAREA>";
}

これ感動です。すごい手っ取り早い。
実際取り出したい値は1個ではないのですが、その場合は
455さんのパターンでいけばいいですかね。

本当に感謝します。ありがとうございました。
0457nobodyさん2005/10/06(木) 14:33:30ID:???
Webブラウザ上で実行できる「テキストの文字列変換、演算処理」といった作業ができるスクリプトが欲しいのですが、
質問ではなく作成依頼といったほうが良いかもしれません。
話聞いてくれます?
0458nobodyさん2005/10/06(木) 14:39:36ID:/yy7ybJN
今、PHPの本のサンプルコードを打ち込んで学習しているところなのですが

フォームにデータを打ち込んで、登録済みかチェックするボタンを押すと、指定のデータが存在するのか調べて
結果を返すといった内容のコードなのですが

一応、コードは丸写しして、test.phpという名前で保存してですね。
後は、MySQLにデータを入れれば準備OKなのかなというところなのですが、どのようにしてMySQLにデータを入れればいいのか
その初期の段階でつまずいていて困ってるんです。

参考書によると
MySQLのデータベース「testdb」のテーブル「t_userid」の項目「id」に問い合わせするようで。
テーブル「t_userid」を作成するSQLは、「登録チェック用テーブル作成SQL」(t_userid.sql)にあります。

とあるので、さっそくt_userid.sqlを付属CD-ROMからコピーしてデスクトップに持ってきて
とりあえず、test.phpと同じ場所に入れればいいのかな。と思いやってみたのですが

Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
こんなエラーが出て。失敗と。

結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか。

一体どのようにt_userid.sqlを料理したらいいのという段階でわからなくて困っているのでどなたか方向でも教えていただけると助かるのですが。

ちなみにt_userid.sqlの中身はこんな感じです。下のスレ番号に書きます。
0459t_userid.sqlの中身です2005/10/06(木) 14:40:37ID:/yy7ybJN
/*テーブル作成*/
CREATE TABLE t_userid
(

)
0460nobodyさん2005/10/06(木) 14:42:01ID:???
>>457
「Webブラウザ"上"で実行できる」なら
JavaアプレットかJavaScript、Jscript、VBScriptの話になると思う。
0461t_userid.sqlの中身です2005/10/06(木) 14:43:34ID:/yy7ybJN
すみません。記述途中で書き込むボタンを押してしまいました。
↓が、ないようです。

/*テーブル作成*/
CREATE TABLE t_userid
(
id varchar{10} NOT NULL,
PRIMARY KEY (id)
);

/*データ追加*/
INSERT INTO t_userid(id) VALUES('aaa1111111');
INSERT INTO t_userid(id) VALUES('bbb2222222');
INSERT INTO t_userid(id) VALUES('ccc3333333');
0462nobodyさん2005/10/06(木) 14:44:09ID:kpXXJeyk
>>458
とりあえず、PHPよりもMySQLについて勉強した方がよいかと思うのですが…。

0463nobodyさん2005/10/06(木) 14:45:27ID:???
>>458
>結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか
はい。
何かの本を参考にしているようですし、その本のどこかに解説もあると思いますよ。

0464nobodyさん2005/10/06(木) 14:48:03ID:???
>>458
PHPの範疇じゃないので、MySQL絡みを勉強すべし
http://dev.mysql.com/doc/mysql/ja/mysql.html

shell> mysql database < script.sql

無償有償のその他のクライアントツールでもできる。
04654582005/10/06(木) 14:53:28ID:/yy7ybJN
>>462-464
アドバイスありがとうございます。

なんか良く見たらデータベースの章を見てください。とあるので、そこ読んだらできるかもしれません。
shell> mysql database < script.sql
こういったコマンドを打ってデータベースを作成するってことなんですかね。これがSQL文とかいうやつですかね。

なんか、データベースの章をちらっとみた感じでは。
コマンド打つ以外にも、phpMyAdminとかいう便利なツールもあるようで
それを使えば簡単に作成できるのかな。

ちょっとやってみます。
0466nobodyさん2005/10/06(木) 14:58:59ID:???
>>458
SQL勉強しておいで
0467nobodyさん2005/10/06(木) 15:00:35ID:???
>>458
mysql弄るならnavicatいいよ
04684582005/10/06(木) 15:43:44ID:/yy7ybJN
>>466
PHPの参考書をスムーズに終わらせたいところですが
MySQLと連動して使うなんてあたりまえに使う機能だから避けて通れませんもんね。
しょうがないので、MySQLの勉強します。今データベースの章読んでるところです。

>>467
MySQLをいじれるツールっていろいろあるんですね。
とにかく、基礎知識仕入れてからいろいろ試してみようと思います。
0469nobodyさん2005/10/06(木) 15:43:55ID:???
>>467
良いけど、$160は一般ホビーユーザには躊躇する値段。
0470nobodyさん2005/10/06(木) 15:56:08ID:???
>>458
とりあえずMySQLにデータを作成しないとサンプルの実行はできないだろうから、
皆にレスをもらったことを参考に進めればいいんだろけど、最初のカキコの
エラーメッセージは多分MySQLとは関係ないと思われ。

>Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
だから、12行目がPHPの文法としておかしいはず。入力ミスと思うからじっくりと見直してみそ。
ひょっとして本のサンプルが間違っている可能性もあるかもしれんが。。。
0471nobodyさん2005/10/06(木) 16:05:41ID:???
>>469
評価版で1ヶ月も使えばかなり動かし方解るから
それだけでも良いと思うけど
0472nobodyさん2005/10/06(木) 16:24:29ID:???
>>467
わざわざ金など誰が払うか
04734582005/10/06(木) 16:40:38ID:/yy7ybJN
>>470
よく見直してみたら、PHPスクリプトの末に書く ; を入れ忘れてたことが判明しました。。
直してみましたが、また
Parse error: parse error, unexpected '/' in c:\program files\apache group\apache\htdocs\test.php on line 51
このようなエラーが、また、タイプミスっぽいのですが、ぱっと見た感じ、どこが悪いのかわからなかったので
後で直すか、どうしてもわからなかったらCD-ROMにサンプルコードが入ってるので
それをそのまま移すことによって解決しようかと思います。

データベースの章をさーっと読みましたが、どこにもMySQLにデータを作成する方法という肝心な知りたいことがかかれてませんでした。
しょうがないのでphpMyAdminを解説しているページを読んだら、このツールを使った作成方法が書いてあるので
これを読めばやっとMySQLにデータを作成することができると思われます。

phpMyAdminのフォルダをtest.phpが置かれているところと同じフォルダに入れて
今、config.inc.phpの設定のところに来てるのですが

config.inc.phpをメモ帳で開いてみたところ、おそらく改行部分と思われるところが↑になっており
改行のない一続きの文になっていて、なにがなにやらさっぱりわかりません。
これは文字コードの関係でしょうか。
↑を\nに置換しようかと思ったのですが、↑は↑とは違うようで、置換のフォームのところにコピペしようと思ったのですができませんでした。
どなたかこれを解決するにはどのようにすればいいと思われますでしょうか。
何か特別なことができるアプリで開いたほうがいいのか、文字コード変換するアプリで処理すればいいのか。果たして設定ファイルの
文字コードなんか勝手に変えちゃっていいものなのか。わからず困ってます。
0474nobodyさん2005/10/06(木) 16:52:53ID:85el6NxV
51行目付近の/
0475nobodyさん2005/10/06(木) 16:54:55ID:???
>>473
まずフリーのエディターをダウンロードする(少なくともUTF-8,EUC-JP対応)
phpエディタでも使ってみたら
ttp://phpspot.net/php/phpeditor.html
0476nobodyさん2005/10/06(木) 17:09:17ID:/yy7ybJN
皆さんアドバイスありがとうございます。大変助かってます。

>>474
51行数えてみてみたんですが、/になんの間違いもないように見えるんですよね。
51付近といえば

echo "<tr>";
echo "<td><input type = \"text\" name = \"id\"></td>;
echo "</tr>";
echo "<tr>";
echo "<td><input type = \"submit\" value = \"登録済みか調べる\" name = \"sub1\"></td>";
echo "</tr>";

こんな感じですが、どこが間違ってるのかさっぱりわかりませんでした。/もちゃんとつけるべきところについてるし。
まあ、どうしてもわからない場合は、CD-ROMから丸ごとコピーして動かしてみます。
それでも動かなかったら、本が間違ってるということで。

>>475
さっそくphpeditorダウンして使ってみました。
単純にファイルを開くから、config.inc.phpを開けばいいのかと思ったのですが、phpプロジェクトファイルではありません。
と言われてひらくことすらできず。
まあ、とりあえず、phpeditorのヘルプファイル読んでみます。
それでもできなければUTF-8,EUC-JP対応のエディタ探して開いてみます。


0477nobodyさん2005/10/06(木) 17:15:55ID:???
echo "<td><input type = \"text\" name = \"id\"></td>;

echo "<td><input type = \"text\" name = \"id\"></td>";
0478nobodyさん2005/10/06(木) 17:17:39ID:???
>>476
2行目の末尾の " が漏れてるのが原因だね。
紹介されてた phpeditor など構文チェックしてくれるエディタを使用すると、
この類のエラーはすぐ判る。
他にも構文チェックしてくれるエディタはあるんで、色々と触ってみて
自分が使いやすいと思ったものをチョイスすればいい。
あせらずにゆっくりと。。。
0479nobodyさん2005/10/06(木) 17:26:42ID:???
>>476
そっちじゃなくてスタンドアロン版にしておけ
”の閉じ忘れなんかも色分けしてくれるのでミスが減るはず
04804582005/10/06(木) 18:18:44ID:/yy7ybJN
>>477-479
アドバイスありがとうございます。
間違いはないんだけどなあと思ってたのですが、やっぱりタイプミスだったんですね。
よく見たら、片方はちゃんと"ついてるから、よーく見比べたら発見できそうでしたね。
ただ、こんなミスもすぐに発見できるようなエディタ探したほうが効率いいに決まってるので、吟味して選ぼうと思います。
C#とか普通のアプリ作ってても、ミスをすぐ指摘してくれる統合開発環境とかあるのとないのじゃ生産性にえらい差がでますもんね。

phpeditorってそれだけじゃなくてスタンドアロン版とかあるんですね。
そっちダウンしてやってみます。
04814582005/10/06(木) 18:29:50ID:/yy7ybJN
>>479
スタンドアロン版ダウンしまして、さっそく、config.inc.phpを開いたところ、無事改行されて表示されました。
スタンドアロン版は、単純にメモ帳みたいに開くことができるんですね。
これでphpのコードも書いて試用してみます。
どうもありがとうございました。
さっそく、設定変更します。
■ このスレッドは過去ログ倉庫に格納されています