2016-07-24 5 views
0

이것이 가능합니까? 나는 다른에 하나의 SQL 문의 결과를 실행해야합니다 ..PHP가 다른 SQL 문에서 SQL 결과를 실행합니다.

$result= mysqli_query($dbconn,"Select max(cartid) from cart;"); 
$row = mysqli_fetch_assoc($result); 

$sql1 = "insert into cart(cartid) values('".$row['max(cartid)']."');"; 
mysqli_query($dbconn,$mysql1); 

편집 : 이것은 내 장바구니에 내 SQL 테이블에서

추가 된 을하려고 어떤 메신저의 더 좋은 예를 보여 테이블 enter image description here

이것은 기본적으로 내가 행 갔지를 전송하려는 내 트랜잭션 테이블 enter image description here

입니다 cart 테이블에서 re cartid = 5를 새 거래 ID가 5가 될 거래 테이블로 옮깁니다. 보시다시피, 거래 테이블에도 cartid가 있습니다. 이 cartid를 가져 와서 트랜잭션 테이블에 새 행으로 삽입하는 방법을 잘 모르겠습니다. FYI, cartid = 5를 얻으려면 order by cartid desc limit 1을 사용하여 카트 테이블에서 마지막 행을 얻으려고합니다.

새 트랜잭션 테이블의 행은 다음과 같습니다.

transactionid outletid nric cartid transactiondate totalbeforediscount totalafterdiscount transactiontime username 
    5   0  0  5   0     0      0     0   0 
+0

는 다음 두 번째에 그것을 사용하는 첫 번째 질의에 ('$의 result'를) 데이터를 검색하기위한 유일한 목적인가 - 나 - 당신은 것을 사용하는 것 다른 곳에서도 데이터가 있습니까? – Nicarus

+0

@ Nicarus 다른 곳에서도 여러 값을 삽입하고 싶습니다. – Marcus

답변

2

쿼리를 하나로 결합 할 수 있습니다.

INSERT INTO cart(cartid) SELECT MAX(cartid) FROM cart

WORKING DEMO

편집 : 조회는 아래처럼 보일 것 같은 mulitiple 값을 삽입하기 위해

:

한번 시도해주십시오

WORKING DEMO

INSERT INTO cart(cartid,rowid) SELECT MAX(cartid),MAX(rowid) FROM cart

하지만 같은 테이블에서 최대 값을 갖는 열을 삽입하려고하는 이유를 이해하지 않습니다. 너의 테이블에는 이미 그것들이 들어 있기 때문에.

Edit2가 :

INSERT INTO transaction_table(cartid) SELECT MAX(cartid) FROM cart;

+0

흠, 어때요? 아마 이것처럼? "장바구니에 삽입 (cartid, rowid) 장바구니에서 최대 (cartid)를 선택하고" – Marcus

+0

행에서 최대 (rowid)를 선택하십시오. 편집 섹션에서보십시오. – 1000111

+0

행 ID가 다른 테이블에서 오는 경우 어떻게됩니까? 죄송합니다 그냥 예를 사용하여 인스턴트 메시 – Marcus