0

ユーザーがフォームの送信ボタンをクリックするたびに、新しい情報をデータベースに入力しようとしています。それは完全に機能しますが、一度しか機能しません。したがって、データベースに1行が入力され、その後、ユーザーがフォームに再度入力して送信をクリックすると、前の行を削除するまでデータベースに情報が入力されないため、データベースが空の場合に機能します。これは、データベースに入力するための私のコードです。さらに情報が必要な場合は、私があなたを評価します。

if($_POST['submit']){
    $query = mysql_query("SELECT * FROM chanels WHERE cname = '$cname'");
    $numrows = mysql_num_rows($query);
    if($numrows == 1) {
         echo "You Channel has already been added. Go back your <a
               href='./memberpage.php'>Station Page.</a>";
    }else{
          if($_POST['description']){
               $description = $_POST['description'];
               if(strlen($description) < 250 ){
                   $code = $_GET['code'];
                   $category = $_POST['category'];
                   mysql_query("INSERT INTO chanels VALUES 
                              ('','$code','$cname','$category','$description',''
                              )");
                   echo "You Channel has been added. Go back your <a 
                                 href='./memberpage.php'>Station Page.</a>";

               }else
                   echo "Your description must be less than 250 characters!";
         }else
             echo "You must enter a description!";  
    }
}
4

2 に答える 2

1

cnameのレコードが存在する場合は、何もしないという条件付き指定があります。これは、挿入が1回だけ実行されることと関係があると思います。cnameが何であるか、送信ごとにcnameが異なるかどうかはわかりませんが、そうでない場合は、else条件に入ることができません。

$query = mysql_query("SELECT * FROM chanels WHERE cname = '$cname'");
$numrows = mysql_num_rows($query);
if($numrows == 1){
     echo "You Channel has already been added. Go back your <a href='./memberpage.php'>Station Page.</a>";
}
于 2012-08-06T19:50:48.850 に答える
1

ifelseステートメントによって機能が制限されています。

行があるため、1行追加できます

if($numrows == 1){

1つの行を追加した後、ifステートメントの条件が満たされます($ numrows = 1)。この時点で、実際にデータベースに行を追加するelseステートメントは実行されません。

于 2012-08-06T19:51:20.393 に答える