2014-12-07 4 views
-2

다음은 학생 피드백을 입력하는 코드입니다. 질문은 "질문"표에서 검색하여 여기에 표시됩니다. 답변도 같은 테이블의 "대답"열에 저장됩니다. 이 코드를 도와주십시오. 학생이 입력 한 모든 답변을 저장할 수 있도록이 코드에서 모든 변경 사항을 알려주십시오. 나는 왜 데이터베이스에 같은 테이블에 답을 저장하기 위해, database.But에서 질문을 가져 오는 후 select를 사용하고, 이해할 수없는학생 피드백 양식 (PHP)

<html> 
<head> 
<title>Feedback system</title> 
</head> 
<body> 
<table> 
<?php 
//error_reporting(0); 
$sub = $_POST["sub"]; ?> 
<center><h1 color="blue">Feedback for <?php echo "$sub";?> </h1></center><br><br> 
<?php 
//$ssn = $_POST["ssn"]; 
function abc($var) 
{ 
$host = "localhost"; 
$username = "gayathri"; 
$password = "gayathriever"; 
$dbname = "gayathri"; 


$conn = new mysqli($host, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT question FROM question where id = '$var'"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<tr><td>Question $var :".$row["question"]."</td><td><form action=\"second.php\" method=\"post\"> 
<select name=\"comm\"> 
<option value=\"5\">Yes</option> 
<option value=\"4\">Sometimes</option> 
<option value=\"3\">Rare</option> 
<option value=\"2\">Very Rare</option> 
<option value=\"1\">Never</option> 
<?php 
</select> 
</form></td></tr>"; 
    } 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
} 
?> 


<?php 
$host = "localhost"; 
$username = "gayathri"; 
$password = "gayathriever"; 
$dbname = "gayathri"; 


$conn = new mysqli($host, $username, $password, $dbname); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT question FROM question" ; 
$result = $conn->query($sql); 
$numofrows = $result->num_rows ; 
for($i=1;$i<=$numofrows;$i++) 
    { 
     abc($i); 
    } 
?> 

</td><td> 
</table> 
<form action="second.php" method="post"> 
<center> 
<input type="submit" value="Proceed To Subject Feedback" /> 
</form> 
<br> 
<br> 
<form action="select_sub.php" method="post"> 
    <input type="submit" value="Go Back To Select Subject" /> </center> 
</form> 
</body> 
</html> 
+0

예상되는 동작은 무엇입니까? 대신에 무슨 일이 일어나고있는거야? 데이터베이스 테이블은 어떤 모습입니까? – wavemode

+0

그리고 이제 비밀번호를 변경하십시오. – Strawberry

답변

0

, 당신은 단지 UPDATE 테이블에 있습니다.

당신은 당신 만 대답 로그인 한 사용자 허용 할 .If 다음 바로 사용자 ID를 얻을 수 SESSION 또는 COOKIE를 사용 GET 또는 POST 중 하나를 사용하여 답을 제공하는 사용자의 ID를 얻을 수 있습니다.

을 숙지하시기 바랍니다 코드를 다음 그냥 당신이, 알려 주시기 바랍니다 추가 질문이있는 경우 SQL 인젝션

$user_id=$_GET["id"];    //getting id from the url  
$ans=$_POST["answer"];   //form that has answer field 
$sql2="UPDATE question SET answer='$ans' WHERE id='$user_id'"; 
$result2 = $conn->query($sql2); 

에서 안전을 위해 입력을 필터링한다 solution.You 당신에게 아이디어를 제공하기위한 것입니다.