2016-10-26 3 views
0

POST를 통해 삽입하려면 HTML 양식의 선택 상자가 두 개 이상 있어야하지만 사용자는 더 많은 선택 상자를 추가 할 수 있습니다. 이제 각 삽입 된 ID마다 각 n 사이의 관계를 표시해야합니다. 우리가 1,4,9,6 ID를 삽입 한 것처럼제출시 두 개의 선택 상자의 ID를 상호 작용하는 방법

enter image description here

. 그래서 나는 같이 두 개의 열에서 테이블에 삽입합니다 :

(1-4) (1-9) (1-6) (4-9) (4-6) (9-6) 
+0

두 열을 데이터베이스의 두 열, 즉 Col 1 Col 2 – nik

+0

에 삽입하고 싶습니다. 내 업데이트 된 답변 – DJDave

답변

0
$text = $_POST['text']; 

$textname = explode(",", $text); 

if ($textname > 0) { 
    for ($i = 0; $i < count($textname); $i++) { 
     "Piece $i = $textname[$i] <br />"; 
     ..... insert query.... 

나는 $ 내가 ... 어떻게 코드에서 해당 배열이를 삽입 할 조각에서 POST 값을 받고 있어요

+0

을 확인하십시오. Danila, 인식 할 수 없을 때까지 내 대답을 편집했습니다. 포스터가 원하는 것이 무엇인지 명확하지 않으며 우리 사이에이를 분명히 할 수 있습니다. 나는 그가 원하는리스트를 만들기 위해 $ _POST 배열을 처리 할 수 ​​있다고 가정했다. – DJDave

0

여기에 내 원래의 대답, 내가 생각하는 것, 질문의 요점 - 어떻게 생성하는 예 (1-5) (2-3) (2-5) (3-4) (3-5) (4- 5) 1,2,3,4,5. 나는 값이 다음

$arrIDs = array(1,5,9,17); 
foreach($arrIDs as $ID1) { 
    $arrUsedIDs[] = $ID1; 
    foreach(array_diff($arrIDs, $arrUsedIDs) as $ID2) { 
     echo("INSERT INTO similar_ailment (ailment,ailment1) VALUES($ID1, $ID2)"); 
    } 
} 

을 삽입하는 데 사용할 것을 제안 원래 예로하지 연속 경우 s는/그는

$arrIDs = array(1, 2, 3, 4); 
$intUpperLimit = max($arrIDs); 
foreach($arrIDs as $ID) { 
    for($i = $ID + 1; $i <= $intUpperLimit; $i++) { 
    echo("INSERT INTO tblPairs VALUES($ID, $i)"); 
    } 
} 

$ _POST 배열을 처리하는 도움을 필요로하는 경우 우리는 포스터에서 더 많은 정보를 필요가 있다고 생각 DB에 두 개의 값이 있으면 저장 프로 시저를 만들어야합니다.

DROP PROCEDURE IF EXISTS `usp_insert_pair`; 
DELIMITER $$ 
CREATE PROCEDURE `usp_insert_pair`( 
    IN p_intID1 INT, 
    IN p_intID2 INT, 
    OUT p_row_count INT 
) 
BEGIN 
    INSERT INTO tblPairs (intID1, intID1) 
    VALUES (p_intID1, p_intID1); 
    SELECT ROW_COUNT() INTO p_row_count; 
    END; $$ 
DELIMITER ; 

이 절차는 쌍을 입력으로 사용하고 출력을 제공합니다 (도움이 될 수도 잘 모르겠 음). 당신은 루프 당신은 첫 번째 코스의 DB에 대한 연결을 설정해야합니다

$arrIDs = array(1, 2, 3, 4); 
$intUpperLimit = max($arrIDs); 
foreach($arrIDs as $ID) { 
    for($i = $ID + 1; $i <= $intUpperLimit; $i++) { 
    mysqli_query($conn, "usp_insert_pair($ID, $i, @p_row_count, @p_insert_id)"); 
    } 
} 

에 저장 프로 시저의 호출을 통합 할 수 있습니다 - 그는 $ CONN 매개 변수입니다. mysqli_query를 호출 할 때 작업이 성공적인지 확인해야한다. 여기에는 여러 가지 옵션이 있습니다. mysqli_query이 실패 할 경우 FALSE를 반환합니다, 그래서 당신은 값이

을 반환 검사 할 수
$bOutcome = mysqli_query($conn, "usp_insert_pair($ID, $i, @p_row_count, @p_insert_id)"); 
    if (!$bOutcome) echo "row insert error for pair $ID, $i"; 

삽입이

$rs = mysqli_query($conn, $strSQL) or Die("Error in usp_insert_pair: ". mysqli_error($conn)); 

를 작동하지 않고 당신이 @intRowCount 매개 변수를 검사 할 수 있습니다 당신은 구제 할 수 있습니다 이는 1 행 (그리고 단 하나의 행)이 추가되었는지 확인하기 위해 리턴됩니다.

$rs = mysqli_query($conn, 'SELECT @intRowCount') 
    $row = mysqli_fetch_row($rs); 
    if ($row[0] != 1) echo "row insert error for pair $ID, $i"; 

당신이 할 수있는 검사가 많이 있지만, (비교적) 간결하게 유지하려고합니다.

+0

$ text = $ _ POST [ 'text']; $ textname = 폭발 (",", $ 텍스트); \t \t 의 foreach ($ 값으로 $의 textname) { \t SQL1 = $는 mysql_query ("ABC에서 선택 * 여기서 XYZ = '$ 값'"); while ($ sha1 = mysql_fetch_array ($ sql1)) $ idd = $ sha1 [ 'id']; \t $ tex = explode (",", $ idd); \t for ($ i = 0; $ i nik

+0

[$ 나는] 배열 – nik

+0

가치는 당신이 원하는 것을 분명하게 말할 수있는 시간을주십시오. 귀하의 질문에 지금은 $ _POST 배열을 기반으로이 줄, $ arrIDs = array ("???"), 배열을 만드는 방법을 생각하십니까? 이 경우 앞에 나온 줄을 더 설명해야합니다. – DJDave

관련 문제