以下「占いサイトを作ろう」をまねしてサイト作成中ですが、
項目3のところでつまずきました。
http://dcs-nagoya.com/php/170/

1、MySQL と2、html 作成まではできたのですが、
3、生年月日を受け取るrcv_post.phpを作成。がどうしてもできません。

ネットで調べてPHPスクリプトをつくって何度も試しましたが、
全く上手くいきません。MySQLのエラーが表示されます。

検索結果に 日を足して(60超ならマイナスする)計算まで設定したいのですが、
どなたかご教授お願い致します。

●1、2はサイトの記載どおり、ロリポップを使用
●PHPはバージョン5.2

このQ&Aに関連する最新のQ&A

A 回答 (3件)

参考になればと思いますが。

。。

SQLを以下のようにして、処理をしたらいかがでしょうか?
#ただし、フォームの日付を$dayに格納しておきます。
$res_result = mysql_query("SELECT (`$month` + $day) as result from animal where year = $year");

//問い合わせ結果を表示。
while($dat=mysql_fetch_array($res_result,MYSQL_ASSOC)){
$result = $dat["result"];
}
mysql_free_result($res_result);

ご質問の値の抽出ですが、
まず、SELECT文のところを少しいじって、欲しい値をresultというキーで取得するように
しています。( as result の部分ですね)
そして、問い合わせの結果を表示部分で、連想配列に入っている値を取得しています。
これで欲しい値が手に入ります。また、SELECT文の中で日付の加算もしています。
#$resultには、70の値が入っていると思います。
    • good
    • 0
この回答へのお礼

長々とつきあってくださりありがとうございました。
おかげさまでうまくいきました。

お礼日時:2011/05/08 00:07

No.1です。



まず、エラーになっているのは、MySQLのエラーではなく、
PHPのスクリプトの文法エラーです。
21行目を確認してください。
#行末に「;」がないとか。。。

SQLですが
貼っていただいたURLの画像から推測すると
SELECT 月 FROM テーブル名 WHERE year = "選択された年"

例えば、2000年1月なら
SELECT 1 FROM テーブル名 WHERE year = "2000"

のようになると思います。

この回答への補足

苦戦すること数日、なんとかDB検索、表示することができました。
上記、SELECT の説明、とても役に立ちました。ありがとうございます!

まだ問題があるのですが、相談にのっていただけますか?

■抽出したデータを数字のみ表示(取得)したいのですが、以下のように表示されます。
(下の例の場合、"53" 以外は不要です)

------------------------------------------------------------------------------

※実際ブラウザに表示される内容→ array(1) { [0]=> string(2) "53" }

-----------------------------------------------------------------------------

※PHPで書いている文↓

$res_result = mysql_query("SELECT `$month` from animal where year = $year");

//問い合わせ結果を表示。
while( $row = mysql_fetch_array( $res_result, MYSQL_NUM ) ){
var_dump( $row );

-----------------------------------------------------------------------------

※$monthと$yearには、それぞれフォームで受け取った値を入れています。


■取得した後この数字を使って計算をします。
取得した数字(例"53")に日にち(例"17"※これもフォームで値を送信します)を足した数("70")にしてから表示したいのですが、どのような方法があるでしょうか?



完成まであと一歩です。
おかげさまで、作成するのが楽しくなってきました。

よろしくお願いします。

補足日時:2011/04/30 01:51
    • good
    • 0

まず、MySQLのエラー文はどのようなものが出ているのですか?



MySQLにログインできていますか?
また、ログインできているのであれば、
スクリプトに書いてあるSQLが正しいか確認してください。
#phpAdmin等でSQLの確認はできると思います。

この回答への補足

ご丁寧なご指摘ありがとうございます。

●MySQLのエラー文は以下のものです。
Parse error: syntax error, unexpected T_VARIABLE in~on line 29
どう考えても、記入しているSQL文があやしいです。


■データベースの抽出(SQL文)記載方法がわかりません。
http://dcs-nagoya.com/php/170/ 
にあるように、年+月の条件で検索される数字を抽出したいのですが、
SELECT文でどのような指定をしたらいいのでしょうか?
実際のphpの文を教えていただけると助かります。

(表はこのサイトに記載があるものとまったく同じものです↓)
http://dcs-nagoya.com/wp-content/uploads/2009/10 …


■また、抽出した数字に日にちを足して計算する方法もわかりません。
「受け取った生年月日をもとにMySQLからSELEECT文を使い数字を抽出します。
その数字と日にちを足します。」の部分です。


全くの素人なのでいろいろお伺いしてすみません。
よろしくお願いします。

補足日時:2011/04/25 20:48
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q携帯専用ホームページの作り方

携帯専用ホームページの作り方をご存知の方は教えてください。
無料レンタルホームページ(ポケスペ・魔法のiらんどなど)ではなく、全て自分で作る携帯専用ホームページの作り方を教えてください。あと、その場合費用はかかるのでしょうか?
よろしくお願い致します。

Aベストアンサー

PC向けサイトをHTMLタグで記述して、制作することができますか?
でしたら、その知識を利用して、iモード向けのサイトを作成すれば良いと思います。
個人で手打ち制作でキャリア別振り分けは、作る時は良くても(結構手間がかかりますが)更新が面倒になります。
個人運営の携帯サイトなら、プロバイダまたはレンタルサーバーなどでCGIが使えない場合は、掲示板などはレンタルで十分だと思います。
レンタルサーバーを借りるなら、そのレンタル料が費用としてかかります。
無料スペースの場合は、広告表示の問題があるため、携帯電話に対応しているか、どういう条件になっているかなどを確認してください。
(iswebなどではiフォルダなどにアップロードする等)

最近の携帯電話はともかく、旧来のものでは、表示できるページのサイズに制限があります。
サイトを制作する前に、ターゲット(利用者の年齢や利用携帯機種など)をきちんと設定した方が良いと思います。
携帯電話の機種によって、使えるタグや画像ファイルなどが異なってきます。
PCに比べて動向など変化しやすいせいもあると思いますが、携帯向けサイトのハウツー本はあるようでありません。
以前買ったことがありますが、あっという間に時代遅れになった上、大雑把な考え方は参考になりそうですが、技術やTIPSとしてはあまり参考になりません。
携帯向けのCGIを無料配布しているサイトがいくつかありますが、PC向けのCGIを設置したことのない又は不慣れな場合は、カウンタ・掲示板などの利用はレンタルをおすすめします。
なお、これらは個人運営のサイトのつもりで、書いています。

「しらぎくさいと>携帯電話向けコンテンツの書き方」
http://www.marguerite-site.com/Nihongo/HowToMakeYourWeb/Mobile/index.html

サイト制作に慣れた人ならば、また別のサービスをおすすめしますが、無料で、自作CGIなどの設置をしない場合には「FC2WEB」などが良いかもしれません。

[FC2WEB無料ホームページ]
http://www.fc2web.com/
[FC2無料ケータイHP]
http://k.fc2.com/

参考URL:http://www.nttdocomo.co.jp/p_s/imode/make/index.html

PC向けサイトをHTMLタグで記述して、制作することができますか?
でしたら、その知識を利用して、iモード向けのサイトを作成すれば良いと思います。
個人で手打ち制作でキャリア別振り分けは、作る時は良くても(結構手間がかかりますが)更新が面倒になります。
個人運営の携帯サイトなら、プロバイダまたはレンタルサーバーなどでCGIが使えない場合は、掲示板などはレンタルで十分だと思います。
レンタルサーバーを借りるなら、そのレンタル料が費用としてかかります。
無料スペースの場合は、広告表示の...続きを読む

Qphpやmysqlで作る簡易掲示板作成について

php mysqlに関してド初心者です。簡易掲示板を作成する課題があるのですが、どう調べてもわからない箇所があり、まいっています。1つは編集、削除の際にパスワードの入力を求める。具体的にはパスワード入力ができるようにしたformを表示し入力させる。2つめは入力されたパスワードと書き込み時に保存したパスワードを比較し、一致の場合のみ編集削除が動作するようにする。というものです。どう書けばいいのかさえわかりません。教えて頂けたら有り難いです

Aベストアンサー

#2です

別途おなじような質問をなげているようですが
この回答が役にたたなかったなら別にそれでいいので
ベストアンサーなし質問を閉じてから
別途質問をたてるのがマナーじゃない?

Qホームページの作り方

ホームページを作りたいのですが、全く分かりません。そこで初心者でも分かる作り方を教えてください。それか作り方が乗っているホームページを紹介してもらえないでしょうか?よろしくお願いします。

Aベストアンサー

全くの初心者なら、
楽天(http://isweb.www.infoseek.co.jp/)や、
ガイアックス(http://www.gaiax.com/)や、
カフェスタ(http://www.cafesta.com/index.jsp)
などが良いと思いますよ!
でも、ページのイメージなどは限られてしまいます。

自分で全てページを作りたいのなら、
やっぱり他のサーバーなどを借りるのがいいですね。
http://muryou3.fc2web.com/home.htmlなどを見て、
参考にしてください。

あとhttp://tohoho.wakusei.ne.jp/www.htmのサイトは、
とても有名で少しはHp作成に関して理解できますよ。

QPHP,MYSQL 検索フォームを設置した場合のページリンク作成方法がわかりません。 初心者です。

掲示板を作ろうと思い、レコード全件表示+指定件数区切り+ページリンクのロジックは理解していますが、これに検索フォームを付けた場合のページリンクの記述が分かりません。

他にもこのコードの問題点があったらお願いします。
php初心者です、宜しくお願いします。

<?php
require_once("function.php");    


//現在ページ
if(isset($_GET["page"]) && preg_match("/^[1-9][0-9]*$/", $_GET["page"])){
$page = (int)$_GET["page"];
}else{
$page = 1;
}


//1ページ内表示記事数
$limit = 5;

//各ページ表示位置
$offset = $limit * ($page - 1);


//検索ワード下処理
$_POST = vari($_POST);
$keyword = isset($_POST["keyword"]) ? trim($_POST["keyword"]) : "";
$word = explode(" ",mb_convert_kana($keyword, "s"));
$word = array_filter($word, function ($str){
return $str != "";
});
sort($word);

//全件表示クエリ

if(empty($word)){
try{
$db = db_connect();
$stmt = $db->prepare(sprintf("SELECT sql_calc_found_rows * FROM test ORDER BY No DESC LIMIT %d, %d", $offset, $limit));
$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$ctmt = $db->query("SELECT FOUND_ROWS()");
$total = $ctmt->fetchColumn();


$last = ceil($total / $page);
}catch(PDOException $e){
echo $e->getMessage();
exit;
}


//検索処理クエリ
}else{

try{
$db = db_connect();

//条件構成
$where = "";
foreach($word as $key => $value){
$where .= sprintf(" AND comment like :comment%d", $key);
}

//prepare実行
$stmt = $db->prepare(sprintf("SELECT sql_calc_found_rows * FROM test WHERE 1 ".$where." ORDER BY No DESC LIMIT %d,%d", $offset, $limit));


//検索ワード数分ループ
for($i = 0; $i < count($word); $i++){
//検索ワード内%,\エスケープ
$like = preg_replace("/([_%\\\\])/u", "\\\\$1", $word[$i]);

$stmt->bindValue(":comment".$i, "%".$like."%", PDO::PARAM_STR);
}

$stmt->execute();
$rows = $stmt->fetchAll();

$ctmt = $db->query("SELECT FOUND_ROWS()");
$total = $ctmt->fetchColumn();

$last = ceil($total / $page);

}catch(PDOException $e){
echo $e->getMessage();
exit;
}
}

?>

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>

<div id="text">
<h1>コメント一覧</h1>

<FORM method="POST" action="">
<INPUT type="search" name="keyword" value="<?= $keyword; ?>">
<INPUT type="submit" value="検索">

<?php foreach($rows as $row): ?>
<li>
<?= htmlspecialchars($row["comment"]); ?>
</li>
<?php endforeach; ?>

/////以下は検索フォーム無し全件表示の場合のコードです。 検索フォームを設置した場合はこれをどうしたらいいのでしょうか。//////


<?php
$prev_page = $current_page - 1;
$next_page = $current_page + 1;
$disp = 3;


//先頭ボタン
echo "<a href='?page=1'>First</a>|";


//前ボタン
if($current_page == 1){
echo "Prev|";
}else{
echo "<a href='?page=".$prev_page."'>Prev</a>|";
}


//各ページボタン
for($i = $current_page - $disp; $i <= $current_page + $disp; $i++){
if($i > 0 && $i <= $last_page){
if($current_page == $i):
echo $i;
else:
echo "<a href='?page=".$i."'>$i</a>";
endif;
}
}


//次ボタン
if($current_page == $last_page){
echo "Next|";
}else{
echo "<a href='?page=".$next_page."'>Next</a>";
}


//最後尾ボタン
echo "|<a href='?page=".$last_page."'>Last</a>";
if($last_page > 1){
echo "<a href='?page=".$last_page."'>Last</a>";
}else{
echo "Last";
}

?>
<a href="">全件表示</a>
</div>
</body>
</html>

掲示板を作ろうと思い、レコード全件表示+指定件数区切り+ページリンクのロジックは理解していますが、これに検索フォームを付けた場合のページリンクの記述が分かりません。

他にもこのコードの問題点があったらお願いします。
php初心者です、宜しくお願いします。

<?php
require_once("function.php");    


//現在ページ
if(isset($_GET["page"]) && preg_match("/^[1-9][0-9]*$/", $_GET["page"])){
$page = (int)$_GET["page"];
}else{
$page = 1;
}


//1ページ内表示記事...続きを読む

Aベストアンサー

最初に検索ワードをPOSTで流して後はページャーがGETで渡しているのであれば
検索ワードの引き継ぎは一般にセッションを使います
場合によってはクッキーでもできるかもしれません。

ページングに必要な要素は
・現在地
・1ページ要素数
・全体要素数
です。現在地はその前後を計算し、ページャーでGETで受け渡せばよいでしょう

sql_calc_found_rowsについては、データが増えるとボトルネックになる可能性が高いそうなので
処理的には検索ワードを絞るWHERE句をつくっておいて
全体要素数と、現在地と1ページ要素数から抜き出す現在ページをそれぞれ取りだすところで
同じ条件をつかって2度SQLを発行した方がよいかもしれません。

ちなみにプログラム側でもつoffsetとlimitをsprintfで渡すのは合理的ですが
prepare処理にまかしてしまう方がすっきりするかも

SQL的には前方後方一致(LIKE '%keyword%')はインデックスされないのでスピードに苦しむ可能性もあります

Qビーズのフクロウの作り方が載っているホームページや本を教えて欲しいです

ビーズのフクロウの作り方が載っているホームページや本を教えて欲しいです。

立体のビーズのものでかわいらしいものを探していますが、なかなか見つかりません。
ビーズモチーフっていうのかな?、アイロンビーズとは違い、立体のものです。

古い質問の中に、同じようにフクロウを探している質問がありましたが、回答に載っているホームページの中ではフクロウは見つかりませんでしたし、作り方は載っていないようです。

形を見ただけでは、よく作れないので、作り方が載っているようなホームページか本があればうれしいです。

知っている方がいらっしゃいましたら、よろしくお願いします。

Aベストアンサー

「ビーズ ふくろう 作り方」で検索しただけですが、以下あたりはどうでしょう?

http://poochnavi.com/beads/recipe/fukurou/rec01.html

Q下記の様な会員サイトをPHP+Mysqlで作成しようとしております。

下記の様な会員サイトをPHP+Mysqlで作成しようとしております。
http://reroom.jp/

機能としては、上記のサイトとまったく一緒で、
会員登録が出来て、好きな人(ページ)をフォローし、それぞれマイページが持てるといったサイトです。

そこで、制作で参考になるようなサイトか、
サンプルがあって、そのまま流用出来るようなサイトを教えていただけないでしょうか?

PHP初心者の為、分かりやすいサイトが希望です。
ちなみにwebデザイナーなので、HTML&CSSは理解しております。

よろしくお願いいたします。

Aベストアンサー

CMS オープンソースで検索すれば、PHP+MySQLを利用したコンテンツ管理システムが色々と見つかると思います。要望としてはSNSでしょうか。
PHPが不慣れでも書籍が、1,2冊出ているものなら、CMSを利用されるのが一番いいと思います。

Qホームページの作り方☆

 ホームページの作り方がわかる、無料のソフトを教えて下さい。
 学生の時に一度作ったのですが、確か「じゅんこ」という名前のページで、作り方が書かれていたように思うのですが・・・。先生も「じゅんこさんのホームページで各自調べて作りましょう。」と言っていました。もちろん、そのじゅんこさんというのは、クラスメイトでもなく、全く知らない人です。
 もちろん、他の方法でもいいので、作り方を教えて下さい。お願い致します。

Aベストアンサー

インターネットエクスプローラーをお使いでしたら、下記アドレスが参考になるかと思います。
フリーのHP作成ソフトの導入方法とHPの作り方について詳しく解説されています。

参考URL:http://www.susono.com/~tkzw4a/

QPHP+MYSQLで携帯サイトを作成する場合

毎回人頼みな質問ばかりで申し訳ないです。
携帯電話からフォーム入力された情報をMYSQLに登録し、MYSQLからデータを引っ張ってきて処理し、表示するような仕組みを作りたいのですが、携帯サイトの文字コードはSJIS、MYSQLの文字コードはEUCです。
MYSQLにデータを登録する際や、MYSQLからデータを引っ張ってきた際にどのような処理を行えばよいでしょうか?
また、PHP+MYSQLでの携帯サイト構築や、PHPの文字コードの扱い方などに詳しい書籍等がありましたらご教示頂けるとありがたいです。

当方無知なため、他人頼みな質問で申し訳ありませんがお返事お待ちしております。

Aベストアンサー

ANo.1です。

.htaccessで設定する場合は php_value か php_flag を使います。
http://www.php.net/manual/ja/configuration.changes.php

本件の場合は以下の記述が必要です。
php_value output_handler mb_output_handler
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding (任意)

実際に設定が変更されたかどうかはphpinfo()で確認してみてください。
稀に.htaccessを使っても設定を変更できない仕様のサーバがあったりします。

余談ですが「.htaccess php 設定」をキーワードにYahooで検索した最初の結果が下記URLです。
http://www.shigeweb.jp/php/project_p/?section=setup&page=htaccess
こういうサイトに頼るのことは全く悪くありませんが、今後どんどん疑問の内容が高度になっていくでしょうから、ご自身の検索の方法を工夫してみる、マニュアルを有効に利用できるようにするなど、もう少し別の努力も必要になってくると思います。

ANo.1です。

.htaccessで設定する場合は php_value か php_flag を使います。
http://www.php.net/manual/ja/configuration.changes.php

本件の場合は以下の記述が必要です。
php_value output_handler mb_output_handler
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.internal_encoding (任意)

実際に設定が変更されたかどうかはphpinfo()で確認してみてください。
稀に.htaccessを使っても設定を...続きを読む

Qブログまたはホームページの作り方について

ブログまたはホームページの作り方について

小説を書け 簡単に作れ ヤフーやグーグルで検索したら出てくる?(携帯サイトで出ても出なくてもいいですがパソコン インターネットで出るのがいいです)
ブログまたはホームページの作り方を教えてください
またそのような事ができるサイトを教えてください

Aベストアンサー

>小説を書け 簡単に作れ ヤフーやグーグルで検索したら出てくる?

どこのサービスでも小説は書けるし、簡単に作れるし。
YahooやGoogleの検索結果に出したいのなら、自分でそれらの検索サイトに、検索対象にしてくれるように申請を出せば検索結果に出て来るけど、申請しなけりゃ出るかどうかは運任せ。

[参考]FC2 -無料ホームページ アクセス解析 ブログ 動画 レンタルサーバー SEO 対策 等 -
http://fc2.com/

QPHPで以下のような占いプログラムを作るには

 PHPを使って以下のような占いプログラムを組みたいのですが、なかなか思うようにいきません。部分的でもいいので、どう記述すればいいのか教えてください。

1,名前をテキストボックスに入力し、血液型をラジオボタンで選択後、送信ボタンを押す
2,入力した名前と血液型を表示し、占いの結果(大吉・中吉・小吉・凶のいずれかの画像)を表示。その下に各運勢に対応したメッセージと今日の日付、ラッキーナンバー、ラッキーカラーを表示
3,日付が変わるまで、同じ血液型を選択した場合は上記の結果が変わらない
(A型を選んで大吉が出た場合、日付が変わるまでは何度やっても大吉が出る)

 フォームから受け取った名前の表示くらいはすぐに分かったんですが・・・・・・配列を使えばいいんでしょうか?
 ちなみに画像などの素材はすでに用意できています。

Aベストアンサー

rand()とsrand()の組み合わせになるでしょう。
http://jp.php.net/manual/ja/function.rand.php
http://jp.php.net/manual/ja/function.srand.php

日付によりランダム値を固定するために
日付のIDをとります。
本日の0時現在のUNIX時間を取るのがわかりやすいので
こんなかんじ
$dateid=date(mktime(0,0,0,date("m"),date("d"),date("Y")));

血液型は$_GET["blood"]でえられるとして血液型IDとして
$bloodidをとるとするとsrand($dateid+$blood)すれば、
日付けと血液型が一致すると一定のランダム値を返します。

総じてこんな感じで・・・
<?PHP
$uranai=Array("大吉","中吉","小吉","凶");
switch ($_GET["blood"]){
case "o":
$bloodid++;
case "a":
$bloodid++;
case "b":
$bloodid++;
default:
$bloodid++;
}
$dateid=date(mktime(0,0,0,date("m"),date("d"),date("Y")));
srand($dateid+$bloodid);
$randval = rand(0,3);
print $uranai[$randval];
?>

srandの引数に関しては適当に工夫してください

rand()とsrand()の組み合わせになるでしょう。
http://jp.php.net/manual/ja/function.rand.php
http://jp.php.net/manual/ja/function.srand.php

日付によりランダム値を固定するために
日付のIDをとります。
本日の0時現在のUNIX時間を取るのがわかりやすいので
こんなかんじ
$dateid=date(mktime(0,0,0,date("m"),date("d"),date("Y")));

血液型は$_GET["blood"]でえられるとして血液型IDとして
$bloodidをとるとするとsrand($dateid+$blood)すれば、
日付けと血液型が一致すると一定のランダム...続きを読む


人気Q&Aランキング