• 締切済み

PHPとMysqlを使用して

PHPとMysqlを使用して会員登録制のカレンダーを作りたいと思っています。しかし思ったとおりの挙動に繋がりません。 やりたいことは、日付リンクをmysqlにスケジュールを登録した件だけに日付ページのリンクを反映させたいです。 しかし、何をやってもうまくいきません。 if($month >= 3){などとするとその月全ての日付にリンク<a>でくくられてしまいます。 フリーのカレンダー.phpのソースを部分的に抜き出してカスタマイズしたものです。 参考ページは登録したスケジュールの日付にだけ、ちゃんとリンクが反映されています。 mysqlでやろうとしたら、その月の日付全てにリンクがついてしまいました。 というか、日にち全てにリンクがついてしまいました。 これをmysqlに登録したスケジュール(monthとday)が該当した日付だけにリンクができるように設定をしたいのです。 もともと参考にしたカレンダーのサイトは.datに保存する形式のソースでした。 それをmysqlにスケジュールを登録して読み込む形にカスタムしたいのです。 ■対象部分と思われるリンク if(!isset($month)){ echo "<a href=$PHP_SELF?action=view&year=" . $year . "&month=" . $month . "&day=" . $day_num . " onMouseOver=this.style.color='red' onMouseOut=this.style.color='green'><b>$day_num</b></a>"; ソースは以下の通りになります。 ■参考にしたサイトのソース http://space.geocities.jp/kokorononakaniitumo/calendar_sample.txt ■反映させたいPHPのソース http://space.geocities.jp/kokorononakaniitumo/calendar.txt ■参考サイトの画像 http://space.geocities.jp/kokorononakaniitumo/sankou.jpg ■若干違いますが参考にしたカレンダーのPHP http://www.yumemaboroshi.net/cgi/us-re-detail1.php?mode=sample&s01=... ■mysql(フィールドの中身) http://space.geocities.jp/kokorononakaniitumo/mysql.txt ■リンクのない画像 http://space.geocities.jp/kokorononakaniitumo/nolink.jpg ■リンクが月の全てに反映されてしまった画像(これをmysqlに登録したスケジュールの日付(monthとdayが一致した)と一致した日付だけにリンク<a>がくくられるようにしたい) http://space.geocities.jp/kokorononakaniitumo/linkall.jpg ■mysqlの画像(monthが4、dayが19と26の二件が登録されており、つまりは4月19日と4月26日の日付だけが<a>でくくられるようにしたいのです) http://space.geocities.jp/kokorononakaniitumo/mysql.jpg

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

#回答ではありません(汗 相互リンク http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1086214105

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP+MySQLで

    PHPとMySQLにて、 データベースのテーブル[買い物]に、 「野菜」「日時」という属性を用意しておき、そこに (にんじん)(2006-10-31 09:00) (かぼちゃ)(2006-11-01 10:21) (たまねぎ)(2006-10-21 11:45) (もやし)(2006-12-22 14:00) が格納してあります。 ここから日付が、例えば、2006年の10月の行を抜き出すにはどうしたらよいのでしょうか? $y=$_GET['year'] $m=$_GET['month'] $d=$_GET['day'] として、年月日を得ます。 $y年の$m月分のデータを取得したいのですが、よく分かりません。 select * from 買い物 where 日時>$y-$m-1 and 日時<$y-$m-31 のような感じになるのでしょうか? どなたかよろしくお願いします。 MySQL4.4.4です。

    • ベストアンサー
    • PHP
  • PHPからMySQLが動かせません

    PHPからmysqlのテーブルを開こうとした際に Fatal error: Call to undefined function mysql_connect() という一文が出ました。 php.iniのextension_dirのパスは一字一句間違っておりませんし、 extension=mysql.so extension=mysqli.so の二文も追加しました。また、その二つのファイルがあることも確認済みです。 また、phpファイルの構文は以下のとおりになっています。 $link = mysql_connect('ローカルホスト', 'ユーザー名', 'パスワード'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); こちらもいろいろ調べまして、php_mysql.soとphp_mysql.soがないためではないかなどとかんぐっておりますが、そういった記述は私が調べた限りにおいては見かけませんでした。 php_mysql.soとphp_mysql.soというファイルはなくても、mysql.soとmysqli.soというファイルがあれば動くのでしょうか? 仮にphp_mysql.soとphp_mysql.soというファイルがないと動かない場合、何をインストールすればよいのでしょうか? ご回答よろしくお願いします。 また、PHPとMySQLはソースファイルを/usr/ports/distfilesディレクトリにコピーした上でポートからmake、make installしました。 マシンスペック OS…FreeBSD6.4 Apache…1.3.14 PHP…5.2.8 MySQL…5.0.92 都合上、バージョンを他のものに変更することはできません。 追記してくれということがありましたらよろしくお願いします。

  • PHP+MySQLでの配列のinsert文について

    PHP+MySQLでの配列のinsert文について はじめまして。 POSTされた配列データのDB一括挿入方法で約2週間悩み中で非常に困っております。 私の配列の理解が不足しているため、初心者の私でもわかるように解決方法をご教示いただけましたら大変助かります!何卒、よろしくお願い致します。 行いたい処理といたしまして、 [index.php] CSVアップロード(名前・メアド・金額・年月日の4項目)→※解決しました。  ↓↓↓ [check.php] CSVデータをテーブルで入力されている行数分をループして表示→※解決しました。  ↓↓↓ [finish.php] check.phpで表示した配列データをPOSTで受け取りDBに登録する。→※未解決 となります。 ソースは下記のようになります。 ※index.phpは今回無関係と思うので省略します。 ━━━━ [check.php]ここから ━━━━ ・ ・ ・ <form action="finish.php" method="post"> <? while($arr = fgetcsv_reg($fp,1024)){ ?> <? //空行以外を処理 $num = count($arr); if(!$arr ==''){ // $namae = $arr[0]; //名前 $mail = $arr[1]; //メアド $money = $arr[2]; //金額 $year = $arr[3]; //年 $month_hen = $arr[4]; //月 $month = sprintf("%02d", $month_hen); //1~9月(1桁)の場合、前に0を付加する $day_hen = $arr[5];//日 $day = sprintf("%02d", $day_hen); //1~9日(1桁)の場合、前に0を付加する // ?> <input type="hidden" name="namae[]" value="<?php echo $namae ?>"> <input type="hidden" name="mail[]" value="<?php echo $mail ?>"> <input type="hidden" name="money[]" value="<?php echo $money ?>"> <input type="hidden" name="year[]" value="<?php echo $year ?>"> <input type="hidden" name="month[]" value="<?php echo $month ?>"> <input type="hidden" name="day[]" value="<?php echo $day ?>"> ・ ・ ・ <input type="submit" value="  一括登録する  " /> </form> ━━━━ [check.php]ここまで ━━━━ ━━━━ [finish.php]ここから ━━━━ ・ ・ ・ // DB登録部分開始 if ($_POST['submit']) { $arr = array( 'reg_id', //auto_increment 'user_id', //ユーザーID(セッションで保持) 'namae', //名前 'mail', //メアド 'money',//金額 'ymd'//年月日 ); $value = array( NULL, mysql_real_escape_string( $_SESSION['user_id'] ), mysql_real_escape_string( $_POST['namae'] ), mysql_real_escape_string( $_POST['mail'] ), mysql_real_escape_string( $_POST['money'] ), mysql_real_escape_string( $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'] ) ); // DB登録部分終了 //ループ処理開始 foreach ( $arr as $value ) { $sql = "insert into receipt_issue ( $arr ) values ( $value )"; mysql_query($sql); $result = mysql_query( $sql ) ; //ループ処理終了 } } ・ ・ ・ ━━━━ [finish.php]ここまで ━━━━ というソースなのですが、データベースに登録できません。 例えば「finish.php」内に、 print_r( $_POST['namae'] ); と記述すると、 Array ( [0] => ああ君 [1] => いい君 [2] => うう君 [3] => ええ君 ) とちゃんと配列は受けとれているようです。 そもそもDB接続ができていないということもありません。 ※配列でない場合のテストでちゃんと接続・登録できていました。 いろいろ調べた中で、$value = array内の記述方法に問題があるのか・・・ と思い、色々調べて試したのですがダメでした。。。 上記の仕組みでループさせてデータベースに登録するには、どのように記述したらよろしいでしょうか? 情報に不足がございましたら、申し訳ございません。その点ご指摘いただきましたら必要な情報を再度投稿します。 何卒、お力をお貸しいただけましたら幸いでございます。 宜しくお願い致します!

    • 締切済み
    • PHP
  • PHPとMySQLについて

    社内サーバーにWebアプリをUPし、 全てデータベース管理にするため、MySQLを使用しました。 参考書を見ながら作成したため、構文に間違いはありません。 参考書は「 はじめての人のためのかんたんPHP + MySQL入門」です。 この参考書の第8章にあるWEBアプリを忠実に再現しました。 しかし、フォームに情報を入力し、登録を押しても情報が反映されません。 以上と同じように、ぶっとびねっと(フリーレンタルサーバー)でもUPし、phpMyAdminでDBを構築しましたが、 これも同じく登録情報が反映されませんでした。 無論、phpMyAdminから直接CREATEし、HPに情報を反映させるのは可能です。 その際、日本語が???となってしまいましたが、その他は正常です。 一番の問題は、なぜHPから情報を入力し、それがDBへ反映されないのかです。 .htpccessやPHP.iniの設定と何か関係があるのでしょうか? 社内サーバーに.htaccessファイルは無いそうです。 となると、php.iniだと思います。 私は初心者のため、イマイチPHP.iniが良く分かりません。 ローカルにApacheなどを落とした場合は、C:Windowsの中にPHP.iniの設定をいじればいいと思いますが、 社内サーバーの場合、サーバー上のどこかにあるPHP.iniファイルの設定を変える必要があるのでしょうか? 以上、ごちゃごちゃしてて申し訳ありませんが、 お助け下さい。

    • ベストアンサー
    • PHP
  • MYSQLに接続できず困っています(PHP)

    PHP(Ver5.2.0)でMYSQL(Ver4.1)に接続ができません。 APACHE(Ver2.0.59)です。 以下、ソースです。 <?php $link = mysql_connect('localhost', 'root', 'pwd'); if (!$link) { die('接続できませんでした: ' . mysql_error()); } echo '接続に成功しました'; mysql_close($link); ?> 以下、実行結果です。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML> PHPのみであれば、正常に動作します。 心あたりのある方は、ご教授願います。

    • ベストアンサー
    • MySQL
  • php MySQL データ登録 方法

    以前もご質問させていただいたのですが、調べてもわからず困り果てています。 PHPとMySQLは初心者です。 PHPのバージョンはPHP 5.2.12 MySQLのバージョンは 5.1 サーバーはさくらインターネットを使用しています。 コードは下記のとおりになります。 form.php <html> <body> <form action="complete.php" method="POST"> <input type="text" name="id"> <input type="text" name="password"> <input type="text" name="first_name"> <input type="text" name="last_name"> <input type="text" name="first_kana"> <input type="text" name="last_kana"> <?php print '<select name="b_year">'."\n"; $start = date('Y') -40; $end = date('Y') -16; for ($i = $start; $i <= $end; $i++) { $selected = ""; $selected = ($_POST["b_year"] == sprintf('%04d',$i)) ? "selected":""; print '<option value="' . sprintf('%04d',$i) . '" '.$selected.'>' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select> 年' . "\n"; (文字数のためb_monthとb_dayを省略) ?> <input type="text" name="number"> <input type="text" name="height"> <input type="text" name="weight"> <input type="submit" name="regist" value="登録"> <input type="reset" name="reset" value="リセット"> </form> </body> </html> complete.php <?php ・ ・ $id = mysql_real_escape_string($_POST['id']); $password = mysql_real_escape_string($_POST['password']); $first_name = mysql_real_escape_string($_POST['first_name']); $last_name = mysql_real_escape_string($_POST['last_name']); $first_kana = mysql_real_escape_string($_POST['first_kana']); $last_kana = mysql_real_escape_string($_POST['last_kana']); $year = mysql_real_escape_string($_POST['b_year']); $month = mysql_real_escape_string($_POST['b_month']); $day = mysql_real_escape_string($_POST['b_day']); $number = mysql_real_escape_string($_POST['number']); $height = mysql_real_escape_string($_POST['height']); $weight = mysql_real_escape_string($_POST['weight']); ・ ・ $query_reg = sprintf("INSERT INTO `member` (`id`,`password`,`first_name`,`last_name`,`first_kana`,`last_kana`,`b_year`,`b_month`,`b_day`,`number`,`height`,`weight`) VALUES('$id',$password,'$first_name','$last_name','$first_kana','$last_kana',$year,$month,$day,,$number,$height,$weight"); $result_reg = mysql_query($query_reg, $link) or die(mysql_error()); if ($result_reg) { $msg = '登録しました。'; } else { $msg = '登録に失敗しました。'; } ・ ・ ・ ?> <html><body><?php print $msg; ?></body></html> とフォームを入力してデータベースに登録をするという流れです。 ご質問ですが、フォームに項目を入力して登録するとデータベースに登録がされます。 しかし、数字のみ($number、$height、$weight)の場所を未入力にするとエラーが出力されます。 エラーは 「You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near」です。 MySQLは下記のように設定しています。 id varchar(20) None password varchar(255) None first_name varchar(8) NULL last_name varchar(8) NULL first_kana varchar(8) NULL last_kana varchar(8) NULL b_year int(4) NULL b_month int(2) NULL b_day int(2) NULL number varchar(2) NULL height varchar(3) NULL weight varchar(3) NULL 未入力でもエラーが表示されずデータベースに入力されたとこだけ登録されるようにするにはどうしたらよろしいのでしょうか? お分かりの方がいらっしゃいましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • php→mysqlへの接続が出来ない(初心者)

    レンタルサーバーのMySQLへPHPから接続したいのですが、うまくいきません。 ソースコードは以下の通りで、 ========ソースコード================== <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> (↑head内記述) <?php $my_con = mysql_connect("mysql5.heteml.jp","User","Pass"); if ($my_con == false) { die("失敗"); }else{ echo "成功!!"; } ?> ================================ 結果、以下のエラー表示が出ます。 =========エラー文=================== Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql5.heteml.jp' (10060) in C:\xampp\htdocs\wakuphp\test-connect.php on line 9 失敗 ================================ ちなみに、ソースコードの9行目は 『$my_con = mysql_connect("mysql5.heteml.jp","User","Pass");』で、 phpMyAdmin上で言語設定は"Japanese(ja-euc)"です。 原因が解らず困っております。有識者の方いらっしゃいましたら宜しくお願いします!

    • ベストアンサー
    • PHP
  • mysql、phpを使ってデータがあるときだけ表示させたい

    mysql、phpを使ってデータがあるときだけ表示させたい 初歩的な質問で恐縮です。 mysql、phpを使ってデータがあるときだけ、それを表示させたいと思っています。 ------------------------------------------------------------------- データベース ↓↓ name        blog      クリリン    http://www.111.jp  ヤムチャ    http://www.222.jp ブルマ ------------------------------------------------------------------- ------------------------------------------------------------------- 表示させたいこと ↓↓ クリリン  クリリン公式ブログ(リンク) ヤムチャ  ヤムチャ公式ブログ(リンク) ブルマ ------------------------------------------------------------------- ------------------------------------------------------------------- 実際にソース組んでみたやつ (何も出てこなかった。。クリリンの場合) $blog_sql = "select blog from ****"; $res = mysql_query($blog_sql); $blog = mysql_result($res,0); if ($blog > 0 ) { echo "<p><a href=\"$blog\">クリリン公式ブログ</a></p>"; } ------------------------------------------------------------------- です。 ソースの部分は若干はしょってありますが、 ifを使わないでやるとちゃんと表示されるので、細かいところは問題ないはずです。 ただ、ifを使わないとブルマの項目にも「ブルマ公式ブログ」とリンクURLが入っていない状態で出てしまうので、ブログURLが入っていないものを表示させたくない、というものです。 何かご不明な点などあればおっしゃってください! よろしくお願いします!

    • ベストアンサー
    • MySQL
  • PHPとPostgreSQLを使用した勤務管理

    こんにちは、みなさん宜しくお願い致します。 現在PHPとPostgreSQLを使用して勤務管理を作成しているのですが またまた躓き自分ではこれ以上解決出来なくなったので、再度こちらにて質問させて頂きます。 ※自分が行おうとしている処理一覧です 下記のようなレアウトのテーブルがあります。 ---------------------------------------- 日付(曜日) | 労働時間 | チェックボックス | 登録ボタン  当月15日    |  翌月15日 ---------------------------------------- となっております。 1:日付表示は教えて頂いた処理で実現する事が出来ました。 <?php $now = time(); $year = date('Y', $now); $month = date('m', $now); $day = date('d', $now); if ($day < 15) $month--; $numOfDays = date('t', mktime(0, 0, 0, $month, 1, $year)); for ($d = 0; $d < $numOfDays; $d++){ echo date("Y-m-d(D)", mktime(0, 0, 0, $month, 15+$d, $year)). "\n"; } ?> 2:労働時間を入力し、登録ボタンを押せば日付と労働時間がDataBaseに登録される様にしたい 3:出来るならば登録をチェックボックスが押されている項目だけをDatabaseに登録するようにしたいのです。 しかし自分が試した限りではcheckboxを押した項目だけを取得させDatabase に登録させるという処理が出来ませんでした。 それどころか、労働時間を入力し登録ボタンを押せば労働時間を入力した 日付と労働時間がDataBaseに登録される処理すら出来ない状態です。 ご教授をお願いしたく質問させて頂きました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLのGPLライセンスとPHPライセンス

    いつもお世話になっております。 MySQLのライセンスとPHPのライセンスについて質問です。 過去のログを見たのですがよくわかりませんでした。 フリーツールで開発を行い、製品化を行いたいと思います。 基本的にライセンス料を支払わない方向にしたいです。 そして開発したソースは依頼会社はともかく、一般人に求められても開示はしたくはありません。 以下のパターンでソース開示(誰かに要求された場合)が必要かどうかお願いします ■MySQL ・WebレンタルサーバにMySQLが入っており、PHPでショッピングサイトの情報をMySQLに登録しました。PHPのソース開示は必要でしょうか? ・社内システムでMySQLをインストールし、PHPを使用して開発しました。PHPのソース開示は必要でしょうか? ・同じく社内システムでMySQLをインストールし、C#.NETで開発しました。C#のソース開示は必要でしょうか? 上記に共通しているのは、MySQL自身は一切改造していません。 ■PHP ・PHPで開発したWebシステム(例えばメールツール)はソース開示は行わなくてよいでしょうか?