dポイントプレゼントキャンペーン実施中!

こんばんわ!
いつも助けてくださってありがとうございます。

遠征地で野球の試合があります。
野球部のスコアを(一回の裏だとか)回が終わるごとに
みんなが見るのでうちのHPに報告したいんですけど
いい方法が見つからず質問させてください。

今のところ話し合って次のように考えています。
遠征先のマネージャーのノートPC(無線LAN接続)で
掲示板PHPを流用した入力画面に1と入力(1点入った場合)すると
うちのがっこうのHPのスコアボードの一回の裏に1と表示されるように
してるんです。

ただ、これだと掲示板のプログラムを18個(一回表から9回裏まで)作らなきゃいけないし効率がよくありません。
要は、遠征先の彼女(WEB閲覧能力のみ、彼女がFTPやHTMLは不可能)に一回から9回までの入力画面を作ってあげて私たちが作ったHPの緑のスコアボードの枠の中に点が入るようにしたいんですけど
もっと掲示板のPHPなど使わず一回から9回までの入力をこなすことは可能なのでしょうか?
皆様ならこのような場合どうされますか?
ただ、今後のことも考えて現地のノートのLANでリアルタイムに得点を入れたいんです。
それでもっといい方法を考えてるところなんです。

どなたか知恵を貸していただけると助かります!!

A 回答 (3件)

こんな感じで、全部の欄を作っておいて、データを入れたところだけ変更して,毎回一つのファイルにデータを上書きするのではどうですか?



必須事項は
先にscore.txtを 試合数×9行の 「0\t0」 で作っておきます。(\tはタブ)
省略と書いてあるところは適宜書き込んでください。
検証はしてないので、スペルミスがあったら済みません。
あ、ファイル読み書きエラーもチェックしてなかった。ま、とりあえず。

---phpファイル一部---
<?
$snum = 3;//試合数
$sstr = {0=>'x','y','z' };// 入力フィールド名の先頭1文字
$sstr2 = {0=>'xxx','yyy','zzz' };// 試合名
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<caption>
入力表
</caption>
<tr><th>試合名</th><td>1回表</td><td>1回裏</td><td> ...省略...以後9回まで</td></tr>
<?
$handle = fopen("score.txt", "r");
for(j=0; j<$snum; j++){
// 試合数分のループ
print "<tr><th>" +$sstr2[j]+ "</th>";
for(i=1; i<=9; i++){
ii = i+9*j;
$s[ii] = fgetcsv($handle, 2, "\t")
if( is_array($_POST) ){
$omote = $sstr[j]+i+'o';
$ura = $sstr[j]+i+'u';
if (isset($_POST[$omote]) && $_POST[$omote] >0 ) {
$s[ii][0] = $_POST[$omote];
}
if (isset($_POST[$ura]) && $_POST[$ura] >0 ) {
$s[ii][1] = $_POST[$ura];
}
}
print "<td><input type=\"text\" name=\"$omote\" width=\"4\" value=\""
+ $s[ii][0] + "\"></td><td><input type=\"text\" name=\"$ura\" width=\"4\" value=\""
+ $s[ii][1] +"\"></td></tr>";
}
}
fclose($handle);
?>
</table>
<input type="submit" name="sub" value="入力">
</form>
<br><br>
<table>
<caption>
結果表
</caption>
<tr><th>試合名</th><td>1回表</td><td>1回裏</td><td> ...省略...以後9回まで</td></tr>
<?
$handle = fopen("score.txt", "w");
for(j=0; j<$snum; j++){
// 試合数分のループ
print "<tr><th>" +$sstr2[j]+ "</th>";
for(i=1; i<=9; i++){
ii = i+9*j;
print "<td>"+ $s[ii][0] + "</td><td>"+ $s[ii][1] +"</td>";
fputcsv($handle, $s[ii], "\t");
}
print "</tr>\n";
}
fclose($handle);
?>
</table>
    • good
    • 0

プログラムを書く自信がないなら、とりあえず掲示板の設置はできるんですよね?


普通に考えれば、掲示板は1個でいいように思えるのですが…。
ごく単純に「第2試合 2回裏 1点追加で3点」など入力すればいいのでは?

入力からスコアボードに反映されるまでの間に何かあるのかが、ちょっと解りません。

もちろん将来的にでも、最もスマートなのは、入力画面に「第○試合」、「○回」、「裏/表」、の選択欄があり、「1点追加」ボタンをクリックするとスコアボードに反映される、というのが自然でしょう。
操作ミスもありえるので取り消しように「1点減算」ボタンもあったほうがいいかもしれません。
    • good
    • 0

 そのような時は、「1回表」~「18回裏」(延長を含む)分のリストボックスなどを用意し、たとえば関数「submit_score」の引数を以下のようにすれば同でしょうか? (PHPはわからんので、CやJavaの形式で・・・)



submit_score(int score, int ening)//点数、イニングの数値
{...}

 ほかにも管理用にそのほかの引数が必要になるかと思われますが、最低限上記の機能は上記の考え方でOKだと思います。ただ、サーバー側のプログラムも少しいじらないといけないでしょうが・・・、プログラムはすっきりすると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!

ホント3試合もあって18x3個も掲示板はきついと思っていたんです。
何とか私も、方法を探しているのですが、
関数をまだものにできず、困っているところです。

お礼日時:2005/07/17 03:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!