• ベストアンサー

PHP + PDOでデータ登録

PHPでデータの登録を行っています いろいろ調べながら試行錯誤しています 登録できる条件があります 1.番号が重複じゃない 2.番号、氏名、住所が空白でない場合です 現状 1.2両方できていてデータも追加されるのですが、 2の条件、空白だった場合エラーメッセージを表示したいのですが表示されず困っています <?php $err = ""; if(empty($_POST['ID'])) $err.= "<br><br>番号入力してください。<br><br>"; if(empty($_POST['NAME'])) $err.= "<br><br>氏名入力してください。<br><br>"; if(empty($_POST['ADDR'])) $err.= "<br><br>住所を入力してください。<br><br>"; if(empty($err)) { $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "****"); $st = $pdo->prepare("INSERT INTO tbl_test VALUES(?,?,?)"); $st->execute(array($_POST['ID'], $_POST['NAME'],$_POST['ADDR'])); if($st->rowCount()>0) { header('Location: http://localhost/top.php'); }else{ print "既に登録している番号です"; } echo $err; } ?> 重複したときは"既に登録している番号です"と表示されるのですが、空白だった場合$errが表示されません

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

すくなくとも「echo $err」の位置は変 if(empty($err)){ ・・・・ } の外側もしくは、elseなどで処理しないと 「もし空なら」のブロックの中で表示しようとしても 空かヒットしないかのどっちらかでしょ それと、しつこいようですがINSERTは「IGNORE」で行わないと エラーになるので思った処理にならないかもしれませんよ

noname#197690
質問者

お礼

返事遅くなりすいません。 指摘通り「IGNORE」にしてif文の外側にしたら出来ました。ありがとうございます。いつも助かっています 質問攻めですいません エラーメッセージをエラーが出たら入力フォームにメッセージを返すことは可能ですか? 可能ならいい参考になるものないですかね?

noname#197690
質問者

補足

JavaScriptを使わないなら$_SESSIONしかやり方ないですか?

関連するQ&A