「ログインする際の重複アドレスがないかどうか」
を昨日からずっとやってるんですが、解決しないです。
ある値がデータベースに登録済かどうかをチェックするには、データ(アドレスのカラム)の行数
をカウントするSQL文を使用するらしいんですが、、、
知りたいのは行数のカウントじゃなくて、登録されているアドレスそのものなのにどういうことなんだ?ってなって頭がぐるぐる回ってます...
「行数のカウントを取得するということは・・・・・」
「つまり・・・・・」
「したがって、・・・・・・」
その場だけの記述を覚えても理解しないと応用できないので、分かりやすく解説頂けると助かります。
sql文はPDOではなくsqliを使っています。
参考書の記述と解説がほとんどsqliでPDOではない為です。
宜しくお願いいたします。
≪追記≫
思った以上に回答してくださる方がいらっしゃいますので、質問を具体的にする為、サンプルのソースを追記します。
冒頭で、「ログインする際の重複アドレスがないかどうか」と記載しておりますが、誤りです。
「新規登録する際の重複アドレスがないかどうか」です。
宜しくお願いします。
// 重複アカウントのチェック if (empty($error)) { $sql = sprintf('SELECT COUNT(*) AS cnt FROM members WHERE email="%s"', mysqli_real_escape_string($db, $_POST['email']) ); $record = mysqli_query($db, $sql) or die(mysqli_error($db)); $table = mysqli_fetch_assoc($record); if ($table['cnt'] > 0) { $error['email'] = 'duplicate'; } } <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8'); ?>" /> <?php if ($error['email'] == 'blank'): ?> <p class="error">* メールアドレスを入力してください</p> <?php endif; ?> <?php if ($error['email'] == 'duplicate'): ?> <p class="error">* 指定されたメールアドレスはすでに登録されています</p> <?php endif; ?>
回答4件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/05/16 08:46
2016/05/16 08:52
退会済みユーザー
2016/05/16 08:56
2016/05/16 15:17
退会済みユーザー
2016/05/16 19:12