2011-07-08 23 views
0

PHPスクリプトとMySQLで助けが必要

私は管理者用の調査機能を作成しています。管理者は、調査の質問の数を求められます。これに基づいて、調査情報を含むテーブルに行が作成されます。質問の数に基づいて、同じ数の行が質問表に作成されます。これには、各質問IDの回答に対する4つの列があり、質問表の同じものに対して対応する行数が作成されます。

私はループで管理されたUIにフォームを提供しようとしています。管理者が質問と回答を1つずつ入力し、質問表が毎回更新されるようにします。

survey table (sur_id [auto increment column],sur_subject,Sur_frm_dt,sur_to_dt,sur_is_active) 
    question table (sur_id, q_id [auto increment column] , q_txt,ans1,ans2,ans3,ans4) 

ページは、調査の詳細を要求していない:調査対象、日付、およびQUES のない、行が作成され、質問の数が質問を作成ページに渡されるアンケートtable.The調査IDで生成されます。 $sidは調査IDで、$ noqは質問数です。

コードは次のとおりです。初心者のロジックやスクリプトを気にいけないしてください:私はあなたのコードで見ることができています

$sid = intval ($_GET['ids']); 
$noq = intval ($_GET['qn']); 
for($noq !=0;$noq >=1;$noq--) 
{ 
    $q = "insert into sur_ques (sur_id) values ('$sid')"; 
    $ex = mysql_query($q); 
    $rs = mysql_affected_rows(); 
    if($rs ==1) 
    { 
     echo" Questions Rows Created Corresponding to Survey Subject"; 
    } 
?> 

<form name="form1" method="post" action="<?php echo($PHP_SELF); ?>"> 
    <table width="500" border="0" cellspacing="1" cellpadding="0"> 
     <tr><br><b>Ques No-<?php echo"$noq";?></b></tr><br> 
<tr><textarea name = "q" rows ="10" cols = "70" wrap = "hard" ></textarea></tr><br> 
<tr><td><b>Ans 1:</b></td><td><input type="text" name="a1" size="37" /></td></tr> 
<tr><td><b>Ans 2:</b></td><td><input type="text" name="a2" size="37" /></td></tr> 
<tr><td><b>Ans 3:</b></td><td><input type="text" name="a3" size="37" /></td></tr> 
<tr><td><b>Ans 4:</b></td><td><input type="text" name="a4" size="37" /></td></tr> 
</table> 
    <input type = "submit" name="qa" Value = "Add Q&A" /> 
    <input type ="reset" Value="Reset" /> 
</form> 

<? 
    if ($_POST['qa']) 
    { 
     $id = mysql_insert_id(); 
     $result = mysql_query("update ques set q_txt = '$q', ans1 = '$a1' ans2 = '$a2' ans4 = '$a4' ans4 = '$a4' where q_id = '$id'"); 
     if($r = mysql_num_rows($result)) 
     { 
      echo" Question and answers updated"; 
     } 
    } 
    else 
    { 
     break; 
    } 

} 
?> 
+0

コードフォーマットツールを使用してコードをラップします。それは読みやすくするでしょう。 – Trevor

+0

@kushようこそ!問題を解決するためにGoogleにお問い合わせいただく必要はありません。それで助けてください。あなたが問題/質問を投稿している場合は、助けが必要であることを理解しています。このようなフレーズは、質問だけを濁す。 –

答えて

1

1当面の問題は、あなたがそれが代入演算子$noq != 0する必要がありますループのためのあなたの比較演算子を使用していること$noq = 0でなければならないことですまたは何か他の値 - Trevor 0秒前

+0

この$ noq!= 0で行がデータベースに挿入されています。 – kush

+0

forループの前にifステートメントを実行し、$ noq!= 0であるかどうかを調べます。ゼロでない場合は、$ noq変数をループの開始値として使用します。 – Trevor

0

私はあなたがサーバー側とクライアント側を混在させていると思います。投稿したコードは、誰かがページを開いた瞬間に処理されます。

訪問者が送信ボタンを押した瞬間に個々の質問を更新したい場合は、フォームを同じまま/処理している間に、特定のフォームの情報を処理するサーバーに送信する必要がありますリロードしないでください。

それが今であるので、あなたがあなたのページを開くたびに、新しい行がGET変数に基づいていますが、投稿されることはありませんので、何行がこれまでに更新されていない追加され、私は$PHP_SELFはどこでも定義された参照ドント私はあなたが意味すると仮定/希望$_SERVER['PHP_SELF']

+0

ありがとう....その大きな助け。 – kush

関連する問題