2015-02-04 2 views
1

다른 이름의 테이블에 외래 키가있는 ID를 업데이트하려고합니다. 드롭 메뉴가 있고 드롭 메뉴에 NAME_TEST 테이블의 이름이 있습니다. 나는 이름을 선택해야하지만, 내가 원하는 삽입은 다음과 같습니다이름을 id로 변환하는 방법

INSERT INTO (test) values (the value that i need is the ID of selected name)  

코드 :

<html> <h1>Update form</h1></html> 

        <?php 
        if (isset($_POST['submit'])) { 
        $connect = mysqli_connect('localhost', 'root', '', 'test'); 
        $query = "UPDATE test SET            location_name='".$_POST['new_location']."' WHERE id='".$_POST['location']."' LIMIT 1"; 
    $res = mysqli_query($connect, $query); 
    if (!$res) { 
     die("Something went wrong"); 
    } 
} 

      // This is the code to load the select options 
      $connect = mysqli_connect('localhost', 'root', '', 'test'); 
      $query = 'SELECT * FROM name_test'; 
      $res = mysqli_query($connect, $query); 
      echo "Choose setup"; 
      $options = array(); 


      while($row = mysqli_fetch_assoc($res)) { 
       $options[] = $row; 
} 
?> 
<form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>"><BR><BR> 
    <select name="location"> 
     <option value="0">--- Select an option ---</option> 
     <?php foreach ($options as $option): ?> 
      <option value="<?= $option['id'] ?>"><?= $option['name'] ?></option> 
     <?php endforeach; ?> 
    </select><br /><BR><BR> 
    <B> New name:</B> <BR> <input type="text" name="new_location"><br /><BR><BR> 
    <input type="submit" name="submit" value="Update" /> 
</form> 
+0

드롭 메뉴에서 선택한 색인이 필요하다는 의미입니까? – Haris

+0

드롭 메뉴에서 선택한 이름 –

답변

0

당신은 이것에 대한 join를 사용할 수 있습니다. 아이디어는 다음과 같습니다.

INSERT INTO t(nameid) 
    select nameid 
    from names n 
    where n.name = ?; 

t은 삽입하려는 테이블입니다. names은 이름이 id이고 이름이 테이블입니다.

+0

예, 이름의 테스트 ID에 삽입하십시오. t.names의 이름 –

+0

TEST 테이블을 업데이트하려고하지만 드롭 메뉴에서 선택한 이름의 ID를 삽입해야합니다. –

+0

$ query = "UPDATE 테스트 SET name_id = '". $ _ POST ['new_location ']. "'WHERE name_test.id = ' ". $ _ POST ['location ']."'LIMIT 1 '; –

관련 문제