• 締切済み
  • すぐに回答を!

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内の記述方法に問題があるのか・・・ と思い、色々調べて試したのですがダメでした。。。 上記の仕組みでループさせてデータベースに登録するには、どのように記述したらよろしいでしょうか? 情報に不足がございましたら、申し訳ございません。その点ご指摘いただきましたら必要な情報を再度投稿します。 何卒、お力をお貸しいただけましたら幸いでございます。 宜しくお願い致します!

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数810
  • ありがとう数0

みんなの回答

  • 回答No.5
  • naktak
  • ベストアンサー率36% (784/2137)

#2です。 今ロジックで処理しようとすると、このようになると思いますよ。 求めているものとは異なると考えます。 insert into receipt_issue ( Array ) values ( reg_id ) insert into receipt_issue ( Array ) values ( user_id ) insert into receipt_issue ( Array ) values ( namae ) insert into receipt_issue ( Array ) values ( mail ) insert into receipt_issue ( Array ) values ( money ) insert into receipt_issue ( Array ) values ( ymd ) ダブルクォーテーションの中に変数を記すと確かに展開を行いますが、 配列の中身を勝手にカンマ区切りで展開するわけではありませんよ。 カンマ区切りで展開したいなら、 implode(",", $arr) などとしないとできません。 また、 $sql = "insert into receipt_issue ( $arr ) values ( $value )"; echo $sql; exit; mysql_query($sql); とした際に「Resource id #6」と表示されるならば、そもそも変数名を誤っているなど が原因と思われます。 Resource id #nは、例えば今回で言えばDBにクエリを発行した際に取得できる リソースなどがそれにあたります。 つまり、格納されている内容は文字列ではありません。 http://www.php.net/manual/ja/function.mysql-query.php また、 > mysql_query($sql); > $result = mysql_query( $sql ) ; となっていますが、上のmysql_query()は不要ですね。 上記の状態が解消され、正しく文字列が出力されてきたら、SQLが誤っている状態であることが 確認できるでしょう。 そしたら、前回回答しましたが、正しいループ、正しい変数値を利用してSQL文を生成するよう 修正すればいいでしょう。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • PHP 配列について

    phpとDBでシステムを作っています DBをよみながら配列と比較しています。 ループ中の配列で2回目以降がどうしても配列の値が入りません $Baitai[$cnt]で1回目は配列の値が来るのですが 2回目以降が一部の文字bしか入りません ご教授お願いします。 while($arr_record = mysql_fetch_assoc($rs)) { foreach($arr_record as $field_name => $field_value) {            if($field_value<>"") { echo $Baitai[$cnt]; $Baitai="Baitai".$k; if($Baitai[$cnt]==$field_value) { ?>       <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai;?>" checked><?php echo $field_value;?> <?php } else { ?> <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai; ?>"><?php echo $field_value;?> <?php } } $cnt=$cnt+1;             $k=$k+1; } }

    • ベストアンサー
    • PHP
  • mysqlの結果セットを配列に

    while($row=mysql_fetch_array($res)){ echo "<form action=kousin.php method=post>"; echo "<TD bgcolor=#FFFFFF><input type='text' name=zaiko[] value=". $row["注文"] . "></td>"; echo "<input type=hidden name=store1 value=". $row["注文"] .">"; --------------------------------------------------- $zaiko[]=$_POST["zaiko[]"]; 上記のようなイメージでフォームから送った結果セットを配列として格納したいのですが、どのようにしたら良いのでしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • JavaScriptとPHPの配列

    現在、JavaScriptで配列を持っています。 str=[20,38,24,18,23,26,-,20,38.4,18,23,-,2009,01,09,15,13,24,] この配列を順序を変えずにPHP配列としてもつことは可能でしょうか? $arr(20,38,24,18,23,26,-,20,38.4,18,23,-,2009,01,09,15,13,24); 後々、この配列を用いてtextboxに値を格納したいので、 <input type="text" name="ta0"size ="2" value="<?php echo $arr[2]; ?>">s で、利用したいです。 document.write()で書く方法もあると思いますが valueに値として入れることができませんでした。 方法をご存知の方、よろしくご教授お願いいたします。

  • 回答No.4

$sql = "insert into receipt_issue ( $arr ) values ( $value )"; <ここにecho $sql ;  を入れてください。> mysql_query($sql); <ここに入れたのでは無いですか?> $result = mysql_query( $sql ) ;

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご指摘いただきましたように、 <ここにecho $sql ;  を入れてください。> の場所にecho $sql ;を入れて表示いたしましたら、 「Resource id #6」と出力されました。 これはどういう意味なのでしょう? 理解が不足しており、申し訳ございません。

  • 回答No.3

>$sql = "insert into receipt_issue ( $arr ) values ( $value )"; >の下 ですよ。select が出てくることはないでしょ?

共感・感謝の気持ちを伝えよう!

質問者からの補足

すみません、、、 直下で echo $sql ; を入れてみたところ、「Resource id #6」と出力されました。 これはどういう意味なのでしょう? 検索して調べてみましたが「エラー」という意味でもなさそうな・・・

  • 回答No.2
  • naktak
  • ベストアンサー率36% (784/2137)

$arrに入っているのはカラム名だけですよね? それをループしてもカラム数分がループされて、全く意図しない動きになりますよ。 この作りだと foreach ( $_POST["namae"] as $rowIndex => $dummy) {  $sql = "insert into receipt_issue ($arr[1], $arr[2], $arr[3], $arr[4], $arr[5]) values ( $value[1], $value[2][$rowIndex], $value[3][$rowIndex], $value[4][$rowIndex], $value[5][$rowIndex])"; みたくしないと出来ません。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答ありがとうございます。 私の記述が根本的に間違っているような気がしてきました。 もっともよいと考えれる記述方法をお教えいただけましたら大変助かります。 お手数ですが、よろしくお願い致します。

  • 回答No.1

$sql = "insert into receipt_issue ( $arr ) values ( $value )"; の下に $sqlを表示してみましょう。 insert into receipt_issue ( 'reg_id', 'user_id', 'namae', 'mail', 'money', 'ymd' ) values ( 'user_id','namae','mail','money','year' . '-' . 'month' . '-' . 'day' ) であれば正解?かと思ったのですが、'reg_id'は登録時に設定されるから不要かな。

共感・感謝の気持ちを伝えよう!

質問者からの補足

アドバイスありがとうございます。 $sqlを表示してみましたところ、 select * from ●● where ●●_user_id = '○○' と表示されました。 なお、 > values ( 'user_id','namae','mail','money','year' . '-' . 'month' . '-' . 'day' ) といただきましたが、これでPOST送信された内容を受け取れるのでしょうか? すみません、もう少し具体的にご説明いただきましたら大変助かります。 何卒、よろしくお願い致します。

関連するQ&A

  • PHPでMySQLにデーターを追加するところで壁に当たってしまいました

    PHPでMySQLにデーターを追加するところで壁に当たってしまいました。 PHP5.3&MYSQL5.1 1.フォームへ入力 2.確認画面 3.MySQLへデーター追加 1.form <html> <head><title></title></head> <body> <form method="post" action="conf.php"> <table> <tr><th>番号</th><td><input type="text" name="id" /></td></tr> <tr><th>タイトル</th><td><input type="text" name="title" /></td></tr> <tr><th>テキスト</th><td><textarea name="cont" cols="40" rows="5" /></textarea></tr> <tr><th>日付け</th><td><input type="text" name="update" size="10" /></td></tr> </table> <input type="submit" value="送信" /><input type="reset" value="リセット" /> </form> </body> </html> 2.確認画面 <html> <head><title></title></head> <body> <table> <tr><th>番号</th><td><?php echo htmlspecialchars($_POST["id"]) ?></td></tr> <tr><th>タイトル</th><td><?php echo htmlspecialchars($_POST["title"]) ?></td></tr> <tr><th>テキスト</th><td><?php echo htmlspecialchars($_POST["cont"]) ?></td></tr> <tr><th>日付け</th><td><?php echo htmlspecialchars($_POST["update"]) ?></td></tr> </table> <form method="post" action="upld.php"> <input type="hidden" name="did" value="<?php echo htmlspecialchars($_POST["id"]) ?>" /> <input type="hidden" name="title" value="<?php echo htmlspecialchars($_POST["title"]) ?>" /> <input type="hidden" name="cont" value="<?php echo htmlspecialchars($_POST["cont"]) ?>" /> <input type="hidden" name="update" value="<?php echo htmlspecialchars($_POST["update"]) ?>" /> <input type="submit" value="登録" /> </form> </body> </html> 3.MySQLへデーター追加 <?php $Con = mysql_connect("localhost","root",""); if ($Con == false) {dir ("MySQLの接続に失敗。");} if (!mysql_select_db("phpdata",$Con)) {dir ("データーベース接続に失敗。");} $sql = "insert into daimoku(id,title,cont,update) values('".$_POST["id"]."','".$_POST["title"]."','".$_POST["cont"]."','".$_POST["update"]."')";//SQL文の作成 $res = mysql_query($sql) or die(mysql_error());//クエリの実行 mysql_close($Con);//切断 ?> <html> <head> <title></title> </head> <body> <p>ご登録ありがとうございました。</p> <a href="01.php">戻る</a> </body> 以上のコードでデーターの追加が出来ません。 どなたか教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • 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 で updateができません

    はじめまして。Amazon.co.jpなどでよくある 「このレビューは参考になりましたか?」 Yes/No でレビューに対する評価機能をPHPで組みたいのですが、 update set でうまくデータ更新ができず困っております。 以下ソース 【入力画面】 ----------------------------------------------------------- <? while ( $adp = mysql_fetch_array( $result6 ) ) { ?> <form name="register" action="rev.php" method="post"> //レビュー内容 <?php $str = nl2br($adp['description']); echo $description . $str ; ?> //レビュー内容 このレビューは参考になりましたか? <input type="radio" name="vote" value="2" checked>参考になった<br> <input type="radio" name="vote" value="1">参考にならなかった<br><br> <? echo $adp['add_id'] ?> <input name="add_id" type="hidden" value="<?= $adp['add_id'] ?>"> <input type="submit" value="- 登録 -"> <input type="reset" value="リセット"> </form> <? } ?> 【完了画面】 ----------------------------------------------------------- <? require( '../config.php' ); require( '../lib.php' ); $link = db_connect(); $sql = "update adp set vote = '" . mysql_real_escape_string( $_POST['vote'] ) . "' where add_id = '" . mysql_real_escape_string( $_GET['add_id'] ) . "'"; $result = mysql_query( $sql ); echo mysql_error(); // ?> 投票完了 ----------------------------------------------------------- 要するに adpのデータベースのadd_idが同じテーブルの中の voteの値を1か2に更新したいだけなのですが、 1人で色々と試してもどうしても更新できずに 困っております。 どなたかお分かりの方がいらっしゃいましたら是非 お教えいただけますと幸いです。 足りない情報などございましたらご連絡ください。 補足させていただきます。 すみません、どうかお願いします。

    • ベストアンサー
    • PHP
  • PHP+MySQLでのINSERTについての質問です。

    insert.html(入力フォーム)で <input type="text" name="company_nm" size="80"> を <form name="form1" method="post" action="insert_kakunin.php"> <input type="submit" value=" 次 へ "> で送って insert_kakunin.php(確認画面)で <input type="hidden" name="company_nm" value="<?= $company_nm ?>"> <?php print $_POST["company_nm"]; ?> で表示させます。 それを <form name="form1" method="post" action="insert.php"> <input type="submit" value=" 決 定 "> で insert.php(DB処理)で DB接続した後に $sql='INSERT INTO Sample (company_nm) VALUES("'.$_POST['company_nm'].'"); というふうにINSERTしたいんですが、VALUESに入力した値が入りません。 print $sql; print ($_POST['company_nm']); で見ても「""」となっています。 値の渡し方を教えてください。

    • ベストアンサー
    • PHP
  • スマートフォンからMySQLサーバーにインサート

    「HTML+javascript」のスマートフォンアプリから別サーバーのMySQLと連携させることを考えています。 サーバーの情報を取得することは問題なくできたのですが、サーバーにインサートする方法で悩んでいます。 【post.html】では、mysqlにインサートはされるものの、端末にはサーバーのinsert.phpがそのまま表示されてしまいます。 【post_kai.html】でfunction Check()を試したところ、送信ボタンを押した後に端末内のfinish.htmlが表示されましたが、残念ながらインサートが出来ていませんでした。 サーバーにインサートを完了させながら、その後は端末内のfinish.htmlを表示させるためにはどうすればいいでしょうか? ****************************** 端末側 ****************************** 【post.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <input type="button" name="button" value="送信" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【post_kai.html】 <form name="form1" id="form1" method="POST" name="form1" value="form1" action="http://hoge.ne.jp/insert.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="pw" value="12zdD3fw" /> <script> function Check(){ document.form1.submit(); location.href="finish.html"; } </script> <input type="button" name="button" value="送信" onClick="Check();" /> <input type="hidden" name="MM_insert" value="form1" /> </form> 【finish.html】 <html> OKです <html> ****************************** サーバー側(mysql側) http://hoge.ne.jp/ ****************************** 【insert.php】 省略

  • PHP データベース データ更新

    データベース更新について お世話になっております。 データベースの更新ができず困っております。 ご教授いただければと思います。 PHPは初心者です。 コードは下記の用になっております。 form.php <?php ・ ・ ・ $member = $_GET[name]; ・ ・ ・ $query_member = sprintf("SELECT * FROM `member` WHERE ID='$member'"); $result_member = mysql_query($query_member, $link); if ($result_member) { $row = mysql_fetch_array($result_member); if ($row) { $m_id = $row['id']; $m_first_name = $row['first_name']; $m_last_name = $row['last_name']; $m_first_kana = $row['first_kana']; $m_last_kana = $row['last_kana']; $m_b_year = $row['b_year']; $m_b_month = $row['b_month']; $m_b_day = $row['b_day']; } } ?> <html> <body> <form action="complete.php?<?php print $m_id; ?>" method="POST"> <input type="text" name="<?php print $m_first_name; ?>" value="<?php print $m_first_name; ?>" /> <input type="text" name="<?php print $m_last_name; ?>" value="<?php print $m_last_name; ?>" /> <input type="text" name="<?php print $m_first_kana; ?>" value="<?php print $m_first_kana; ?>" /> <input type="text" name="<?php print $m_last_kana; ?>" value="<?php print $m_last_kana; ?>" /> <input type="text" name="<?php print $m_b_year; ?>" value="<?php print $m_b_year; ?>"> 年 <input type="text" name="<?php print $m_b_month; ?>" value="<?php print $m_b_month; ?>"> 月 <input type="text" name="<?php print $m_b_day; ?>" value="<?php print $m_b_day; ?>"> 日 <input type="submit" name="regist" value="編集"> </form> complete.php <?php ・ ・ ・ $m_id = $_GET[name]; ・ ・ ・ $first_name = mysql_real_escape_string($_POST['m_first_name']); $last_name = mysql_real_escape_string($_POST['m_last_name']); $first_kana = mysql_real_escape_string($_POST['m_first_kana']); $last_kana = mysql_real_escape_string($_POST['m_last_kana']); $year = mysql_real_escape_string($_POST['m_b_year']); $month = mysql_real_escape_string($_POST['m_b_month']); $day = mysql_real_escape_string($_POST['m_b_day']); $query_edit = sprintf("UPDATA `member` SET `first_name`='$first_name', `last_name`='$last_name' WHERE id='$m_id'"); $result_edit = mysql_query($query_edit, $link) or die(mysql_error()); if ($result_edit) { $msg = '編集しました。'; } else { $msg = '編集に失敗しました。'; } ?> <html> <body> <?php print $msg; ?> </body> </html> となっております。 $member = $_GET[name];はhttp://oshiete1.goo.ne.jp/qa5783266.htmlにてご教授いただいたので使用しています。 $result_edit = mysql_query($query_edit, $link) or die(mysql_error());でエラーが出力されたところデータの受け渡しができていませんでした。 どこを直せば良いのかわからず困っております。 お分かりの方がいらっしゃいましたらご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 配列をhiddenで

    こんばんは。いつもお世話になっております。 初歩的な質問かと思いますが、書籍を参考に、hiddenでのデータの受渡しの応用にと、配列でのチェックボックスを設けたのですが、上手く表示できずに悩んでおります。 書籍を片手にない知識を振り絞っているのですが、思うように結果を得る事が出来ません。お忙しい中恐縮ですが、アドバイスなど頂戴できたら幸いです。いつもすまらない質問ですみません。 confirm.php <?php if($_POST["open"]==""){ ?> <FORM name="form1" method="post" action="confirm.php"> <input type="checkbox" name="open[]" value="1" <?=$ca01?>>1 <input type="checkbox" name="open[]" value="2" <?=$ca02?>>2 <INPUT type="submit" value="送信"> <INPUT type="hidden" name="user_id" value="0001"> <?php exit; } else{ ?> <FORM name="form1" method="post" action="view.php"> <?php if(isset($_POST["open"])){ $open_box = implode(',',$_POST["open"]); if(stristr($open_box, "1")){$ca01 = "checked";} if(stristr($open_box, "2")){$ca02 = "checked";} } $open_box = implode(',',$_POST["open"]); echo $open_box; ?> <INPUT type="submit" value="決定"> <INPUT type="hidden" name="open[]" value="<?=$_POST["open"]?>"> <INPUT type="hidden" name="user_id" value="<?=$_POST["user_id"]?>"> </FORM> <?php } ?> view.php <?php $open_box = implode(',',$_POST["open"]); echo $open_box; ?>

    • ベストアンサー
    • PHP
  • mysqlのinsert文について、ご指導をお願いいたします。

    はじめまして。 プログラミング初心者です。 現在、PHP&MySQLで会員制掲示板を制作しようと奮闘しております。 会員登録フォームを作成し、下記SQL文にて会員登録を行おうとしているのですが、「エラーは出ていないのに、DBにデータが登録されない。」状況で、なにがおかしいのかわからず非常に困っております。尚、DBには正常に接続されています。 環境はVISTAにXAMPPを入れております。 私、PHP初心者のため、本のサンプルソースを加工して使用しようとしています。 下記にソースを記載いたしますので、 どうかご指導のほどお願いいたします。 (※情報が不足しておりましたら申し訳ありません。必要な情報をお教えいただけましたら幸いです。) // 接続 $link = mysql_connect( $db_host, $db_user, $db_password ); mysql_select_db( $db_name ); $result = mysql_query( 'set character set utf8' ); $sql = "select email1 from users where email = '" . mysql_real_escape_string( $_POST['email'] ) . "'"; $result = mysql_query( $sql ); // if ( $error != '' ) exit; // 会員データの挿入 $sql = "insert into member ( login_id, passwd, register_date, nickname, sex, birthday, email, pref, division, state ) values ( '" . mysql_real_escape_string( $_POST['email'] ) . "', '" . md5( $_POST['passwd'] ) . "', '" . date( 'Y-m-d H:i:s' ) . "', '" . mysql_real_escape_string( $_POST['nickname'] ) . "', '" . mysql_real_escape_string( $_POST['sex'] ) . "', '" . mysql_real_escape_string( $_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day'] . ' 00:00:00' ) . "', '" . mysql_real_escape_string( $_POST['email'] ) . "', '" . mysql_real_escape_string( $_POST['pref'] ) . "', '" . mysql_real_escape_string( $_POST['division'] ) . "', '1' )"; $result = mysql_query( $sql ); //echo $sql; // $title = '会員登録[3/4]'; ?>

    • ベストアンサー
    • PHP
  • 配列格納時の文字化け

    UTF-8文字で作ってますが 変数を配列に入れると文字化けします。 $handle = fopen($store_file,"r"); while(($rec = fgets($handle))) { $csvdata[$i] = $csvdata; <input type="hidden" name="<?php echo $csvdata[$i] ?>" value="<?php echo $csvclient ?>"> } これでデータをPOSTしたいのですが文字化けします。 echoで配列内表示しても化けてます。 配列に入れたタイミングで化けているかもしれません。 何かいけないでしょうか?

    • 締切済み
    • PHP
  • シンプルなPHPのフォームテスト

    ランダムにでた計算の答えの値を フォームによって送信して正解か間違っているかを表示する PHPプログラムを考えてみたのですが上手くいきません。 in.php ------------------------------------------ <html> <body> <?php $saki = rand(1,9); $ato = rand(1,9); echo "計算:{$saki}X{$ato}="; $seikai = $saki*$ato; echo '<form action="out.php" method="post">'; echo '<input type="text" name="kotae">'; echo '<input type="hidden" name="hidden" value="$seikai">'; echo '<input type="submit" value="回答"></form>'; ?> </body> </html> ------------------------------------------ out.php ------------------------------------------ <html> <body> <?php $kotae = $_POST["kotae"]; $seikai = $_POST["hidden"]; if($kotae == $seikai){ echo "正解です"; }else{ echo "間違いです"; } ?> </body> </html> ------------------------------------------ in.phpファイルのインプットタグhiddenの所と out.phpファイルでの$_POST["hidden"]の受け取り部分が 間違っているのだと思いますが 正しくはどのようにしたらいいのでしょうか? もっとシンプルで分かりやすい書き方もあれば お教えください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP