2014-10-05 2 views
-1

사용자가 자신의 약력을 업데이트 할 수있는 멤버 영역을 만들었습니다. 문제는 사용자가 제출하는 정보가 데이터베이스의 행을 업데이트하지 않는다는 것입니다.데이터베이스의 사용자 테이블 업데이트

회원의 지역

<body bgcolor="#E6E6FA"> 
<a href="logout.php"><button>Log Out</button></a><br><br> 
<input type="text" name="age"placeholder="Enter a your age."><br> 
<input type="text" name="bio"placeholder="Enter your bio."> 
<input type="submit" name="submit" value="Submit your details!"> 

PHP 여기에서 잘못되고있는 것이 무엇인지에 대한

<?php 
if(isset($_POST['submit'])){ 
    $con=mysql_connect("localhost","root","****","****"); 
    // Check connection 
    if (mysql_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $age = mysql_real_escape_string($_POST['age']); 
    $bio = mysql_real_escape_string($_POST['bio']); 
    $name = mysql_real_escape_string($_SESSION['username']); 

    mysql_query($con,"UPDATE accs SET age='.$age.' WHERE name='.$name.'"); 
    mysql_query($con,"UPDATE accs SET bio='.$bio.' WHERE name='.$name.'"); 

    mysql_close($con); 
}; 
?> 
</body></html> 

어떤 아이디어? 난 당신이 session_start(); 누락 생각하면 일시적으로는 $_SESSION['username'];을 사용하는 echo $age; echo $bio; 수 있듯이, 결과를 확인 - HTML 페이지에서

+0

세션이 열려 있습니까? mysql_query()를 수행하기 전에 $ name 값이 있습니까? –

+0

오류가 있습니까? – hakazvaka

답변

0

는 양식은 <form></form> 태그 당신의 PHP 페이지에서

<form method="post" action="update.php"> 
<input type="text" name="age" placeholder="Enter a your age."> 
<br> 
<input type="text" name="bio" placeholder="Enter your bio."> 
<input type="submit" name="submit" value="Submit your details!"> 
</form> 

내부에 있어야한다 PHP 코드의 맨 위에.

또한 mysql_query은 mysql_ * 대신에 사용할 것을 강력하게 권장하는 mysqli 인 연결 ($con)이 아닌 SQL 명령 만 필요합니다.

부수적으로 데이터베이스의 사용자 이름을 업데이트 조건으로 사용하지 마십시오. 아직 소개되지 않은 경우 테이블에 ID 열을 추가 할 수 있습니다.

0

a) 적절한 제출 양식을 작성하십시오. 양식 필드 주위에 양식 태그를 사용하십시오.

b) $ _POST 배열을 검사하여 양식이 올바르게 제출되었는지 확인하십시오.

var_dump($_POST); 

c) 삽입 할 입력란에 값이 있는지 확인하십시오. mysql_query() 전에 var_dump()를 실행하여 현재 진행중인 작업을 확인하십시오.

var_dump($age, $bio, $name); 

D) 당신이 쿼리를 결합하여 하나를 호출 : 당신이 요청을 처리하는 페이지 그 자체를 사용하려는 경우, 다음 양식의 액션 속성을 비워

mysql_query($con, "UPDATE accs SET age='.$age.', bio='.$bio.' WHERE name='.$name.'"); 
0

. 예 :

<form method="post" action=""> 
<input type="text" name="age"placeholder="Enter a your age."><br> 
<input type="text" name="bio"placeholder="Enter your bio."> 
<input type="submit" name="submit" value="Submit your details!"> 
</form> 
관련 문제