0

フィールドのログイン名がある登録フォームがあります。すべてのユーザーに一意のログイン名が必要なため、ユーザーがボタンをクリックするたびにデータベースをチェックしたいと考えています。ユーザーが入力したログイン名が既に存在する場合、別のログイン名を試すように求める警告ボックスを表示したいと考えています。次のコードを書きました。

if($login != '')
{
$query = "Select LoginName from register where LoginName='".$login."'";
$result = mysql_query($query);
if($result)
{
?>
<script type="text/javascript">
alert("Login name exist");
</script>
<?php
}
else
{
insert into database
}
}

ここでの問題は、名前が既に存在するというアラートが表示されるたびに.else部分には決して入りません. これについて私を助けてください

4

4 に答える 4

5

行が返されなくても、mysql_query($query) によって返される $result は存在​​します。クエリが無効であるか、エラーが含まれていて実行できない場合にのみ失敗します。

以下を使用してみてください。

if( mysql_num_rows($result) > 0 )

mysql_num_rows は、クエリが返した行数を返します。

注意: SQL インジェクションを防ぐために、ユーザー入力をサニタイズすることを忘れないでください。

于 2012-05-24T05:06:46.680 に答える
0

if($result['LoginName]){ } を確認します

于 2012-05-24T05:29:30.957 に答える
0

最初にデータをフェッチしてから $rows 配列をカウントし、count が 0 より大きいかどうかを確認してから、「ユーザー名は既に存在します」というエラー メッセージを表示します。

if 条件を入れて、else に挿入データを書き込む

楽しみ :)

于 2012-05-24T05:15:18.533 に答える
0

フローは次のようになります。

<?php
if($login != ''){
  $query = "Select LoginName from register where LoginName='".$login."'";
  $result = mysql_query($query);
  if($result){
    if(mysql_num_rows($result) > 0) {
?>
        <!-- LoginName already exists, do something here -->
        <script type="text/javascript">
          alert("Login name exist");
        </script>
<?php
   }
   else {
     // LoginName avaialable
     // your logic for registering user goes here
   }
 }
 else
 {
   // query not executed, handle this issue properly
 }
}
于 2012-05-24T05:21:57.920 に答える