お世話になります。
codeigniterでのエラーチェックで困っています。
たとえばDBに登録されているニックネームと入力されたニックネームを突合せて合致しているレコードがあれば「すでに登録されています」とエラー表示したいです。
この場合、どのようにしたらよいでしょうか?
ユーザーガイドを見てもわかりません。
コールバック関数を使ってするのでしょうか?
そのとき、POSTデータはどのように渡せばいいのでしょうか?
よろしくお願いします。
はじめたばかりでわかりません。
下記は作成したコードです。
function index(){
--略--
コントローラ側
$this->form_validation->set_rules('email', 'メールアドレス', 'check_duplicate_address');
}
function check_duplicate_address(){
//メールの重複確認
if(!$this->member->check_duplicate_address($this->input->post('email'))){
$this->form_validation->set_message('duplicate_address', 'この%s は、"すでに利用されています。');
return FALSE;
}
}
//member のモデルの中の関数
//メールアドレスの重複確認
function check_duplicate_address($email){
$sql = 'select count(id) as cnt ';
$sql .= 'from member_info ';
$sql .= 'where email = ? ';
$sql .= 'and comp_flg = "1"';
$query = $this->db->query($sql, array($email));
foreach ($query->result() as $row){
if($row->cnt > 0){
return FALSE;
}else{
return TRUE;
}
}
}
No.1ベストアンサー
- 回答日時:
すいません。
codeigniterは解りません。それとクラスの全体像が見えず、中途半端な回答になります。
check_duplicate_address
がメソッドか関数か解らないのですが、重複になっていることはありませんか?
前半のcheck_duplicate_addressは後半check_duplicate_addressの戻り値で表示処理をしようとしてる風で。
後半のcheck_duplicate_addressはDB上に$emailの登録があるかどうかを判定しているようです。
まずは、それぞれの役割に合わせ名前を別名にしてみると問題解決の糸口になるのかも。
それと
「POSTデータ」がwebのformからのpostを意味しているなら、$_POSTで受け取ることができます。結果はハッシュなので、
$email = $_POST["e_mail"];
などで参照できると思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Gmail チャットGPTの登録ができない 1 2023/03/07 02:43
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- X(旧Twitter) Hello, We received your appeal regarding your acco 1 2022/09/12 03:57
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- 英語 海外から返金 1 2022/06/30 08:20
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Q&Aサイトを作成していてURLの...
-
データベースに存在するデータ...
-
MySQLへの接続
-
MySQLのINSERT時にたまに重複に...
-
【初歩】配列の格納データ数だ...
-
INSERT,DELETEを同時に
-
mysqlの命令文をPDOに書き換...
-
JAVA SQLServerException 列名 ...
-
PHP+SQLite でSELECT文のWHERE...
-
トランザクション処理
-
エクセルVBAについて
-
SQL文の実行に失敗しました???
-
VBAをつかってクエリの情報を抽...
-
PHPでMY SQLの連想配列をリンク...
-
PHP + MySQLを使用して詳細画面...
-
MySQLでshal()関数のエラーがで...
-
SQL文2つ実行
-
SQL文が実行できません
-
エラーの意味と対策
-
PHP+mysqlでSQL文に文字数制限...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
Q&Aサイトを作成していてURLの...
-
<VB.NET>INSERT文でDBにデータ...
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
ResultSetインターフェイスでの...
-
データベースに存在するデータ...
-
PHP&MySQLでの文字列+数列の一...
-
VBA ACCESS SQL...
-
phpで複数の検索語を検索対象に...
-
like検索の複数キーワードで、...
-
MySQLのINSERT時にたまに重複に...
-
C# で発生したException.Messag...
-
PHP+PDO+MYSQL で実行されたSQ...
-
PHPのUndefined index や varia...
-
INSERT,DELETEを同時に
-
配列をループさせてUPDATE
-
VB.NET エラーになる箇...
-
php postgres Insert と updat...
-
C#でDBの特定列をUpdate
おすすめ情報