2013-09-30 1 views
0

이것은 내가하는 일입니다 .. 나는 데이터베이스가있는 eprofile을 가지고 있습니다. 데이터베이스는 personal_data 및 국적 인 2 개의 테이블로 구성됩니다. 첫 번째 사용자는 이전 사용자의 개인 정보를 볼 수 있습니다. 그런 다음 업데이트/편집 페이지를 만들 수 있습니다. 국적은 드롭 다운 메뉴의 국적이므로 다른 테이블에 있습니다. 사용자는 새로운 정보를 삽입 한 후 제출 버튼을 클릭하고 데이터베이스의 업데이트 프로세스가 발생하는 process.php로 이동 한 후 자신의 개인 정보를 변경할 수 있습니다. 내 문제는, 내가 어떻게/또는 업데이 트 쿼리에서 personal_data 및 국적 두 테이블을 연결하는 방법을 정의 모르겠다. 국적내 eprofile 웹에 대한 업데이트 프로세스 페이지를 만들려고합니다.

코드

<?php 
      $query = "SELECT nationality_type FROM nationality"; 
      $result = mysql_query ($query); ?> 
      <select name="personal_nationality" > 
      <?php while($row = mysql_fetch_array($result)){ ?> 
      <option value="<?php echo $row['nationality_type']?>" <?php if ($personal_nationality == $row['nationality_type']){ ?> selected <?php } ?>> 
      <?php echo $row['nationality_type']?></option> 
      <?php }?> 
      </select> 

process.php 코드

전 정보 (테스트)를 변경하려고이 오류 -Notice 표시이다
<?php 

    $host="localhost"; // test local 
    $username="lasadmin"; // Mysql username 
    $password="lasadmin"; // Mysql password 
    $db_name="eprofile"; // Database name 
    $db = mysql_connect($host, $username, $password); 
    $link = mysql_select_db($db_name,$db); 


$personal_designation = $_POST['personal_designation']; 
$personal_department = $_POST['personal_department']; 
$personal_job_grade = $_POST['personal_job_grade']; 
$personal_emp_group = $_POST['personal_emp_group']; 
$personal_current_company = $_POST['personal_current_company']; 
$personal_work_location = $_POST['personal_work_location']; 


mysql_query("UPDATE personal_data SET personal_designation = '".mysql_real_escape_string($_POST["personal_designation"])."', personal_department = '".mysql_real_escape_string($_POST["personal_department"])."', personal_job_grade = '".mysql_real_escape_string($_POST["personal_job_grade"])."', personal_emp_group = '".mysql_real_escape_string($_POST["personal_emp_group"])."', personal_current_company = '".mysql_real_escape_string($_POST["personal_current_company"])."', personal_work_location = '".mysql_real_escape_string($_POST["personal_work_location"])."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 


$personal_full_name = $_POST['personal_full_name']; 
$personal_title = $_POST['personal_title']; 
$personal_date_birth = $_POST['personal_date_birth']; 
$personal_marital_status = $_POST['personal_marital_status']; 
$personal_nationality = $_POST['nationality_type']; 


mysql_query("UPDATE personal_data SET personal_full_name = '".mysql_real_escape_string($_POST["personal_full_name"])."', personal_title = '".mysql_real_escape_string($_POST["personal_title"])."', personal_date_birth = '".mysql_real_escape_string($_POST["personal_date_birth"])."', personal_marital_status = '".mysql_real_escape_string($_POST["personal_marital_status"])."', nationality_type = '".mysql_real_escape_string($_POST["personal_nationality"])."' WHERE LAS_login_id = '".mysql_real_escape_string($_POST["LAS_login_id"])."'"); 


?> 

: 정의되지 않은 인덱스 : nationality_type을 C에서 : \ wamp \ www \ eprofile \ process.php on line 26

이것은 26 행 코드입니다.

$personal_nationality = $_POST['nationality_type']; 

문제점은 무엇이며 무엇을 해결할 수 있습니까? 정의 된 인덱스에서 무엇을해야합니까 ??

+0

어떻게 LAS_login_id 및 nationality_type을 정의 할 수 있습니까 ?? 난 PHP에서 = 새로운 =) 여전히 학습 btw, LAS_login_id는 테이블 personal_data에 대한 기본 키입니다. – afifi

답변

0

을하는 데 도움이 함께 $ _POST 변수로받는 콘텐츠를 이스케이프하는 것이 좋습니다. 추가 변수에 복사 할 필요가 없습니다. (우리가 다른 것을 사용하지 않는다면)

두 번째 문제는 $ LAS_login_id가 초기화되지 않았고 값이 없으므로 UPDATE 문이 아무것도 업데이트하지 않는다는 것입니다.

//simple update 
mysql_query("UPDATE mytable SET 
myvalue = '".mysql_real_escape_string($_POST["my_value"])."' 
WHERE mycriteria = '".mysql_real_escape_string($_POST["my_criteria"])."'"); 

또한 색인으로 nationality_type이 정의되지 않은 배열이 있어야합니다.

+0

tq, 작동 중^_ ^ – afifi

0

두 가지 문제가 있습니다 ...

첫 번째 것은 UPDATE SQL 쿼리에 있습니다.

WHERE LAS_login_id= '$LAS_login_id' 

어디에서 $ LAS_login_id를 찾았습니까? 당신은 내가 볼 수있는 모든 위치를 정의하지 않습니다 ...

두 번째 문제는 위의 코드에 포함되지 않은 색인 nationality_type ...

는 희망이 처음

+0

내가 어떻게 보여줄 수 있습니까? 내가 LAS_login_id와 nationality_type을 어떻게 정의 할 수 있습니까? btw, LAS_login_id가 personal_data 테이블의 기본 키입니다. – afifi

+0

내 질문을 편집합니다. 도와 주실 수 있습니까? 죄송합니다 .. 처음으로이 질문 웹 사용 ... – afifi

관련 문제