2012-11-02 3 views
1

테이블의 한 행을 선택하고 다른 기존 테이블에 삽입하고 싶습니다. (phpMySql을 사용합니다. 두 테이블은 ID와 타임 스탬프를 제외하고 동일한 열을 사용합니다)insert-select session customer

장바구니를 만들려고합니다. 나는 누군가가 돈을 지불 할 때 그 고객의 모든 제품과 그 세션을 "carret"에서 선택하고 "comandes"에 삽입하기를 원합니다. echo session_id(); 그래서 내가 세션
를 얻을 수 있습니다하지만이 두 가지가 함께 작동하지 않습니다 -

삽입 내가 예를 WHERE session=4");
에 대해 말한다면 선택의 작품이 너무 작동합니다. 나는 그 문제를 이해하지 못한다. 내 상태가 뭐가 잘못 되었나요? ";"나는 마지막으로 간단한의 문제를 찾을 수 WHERE client='$_SESSION[client]'

+0

그리고 PHP에서 반환되는 mysql_error는 무엇입니까? 오류가없는 경우 DB에서 행을 삽입하지 않고 해당 행을 선택하십시오. SELECT에 아무 것도 표시되지 않았는지 확인하십시오. – Svetoslav

+0

오류가 없습니다. 모든 코드를 사용하지만 세션 = 4 (또는 다른 고객의 번호)가 작동하기 때문에 select가 작동합니다. – Nrc

+0

$ query를 복사하고 코드를 복사 한 다음 PHPMYADMIN에서 테스트하십시오. MySQL 데이터베이스를 제어하십시오. ! NOTE> mysql_query는 mysqli 나 PDO ..를 사용하는 것이 더 나을 것이다. – Svetoslav

답변

0

:

mysql_query("INSERT INTO comandes (session,client,producte,preu_comanda,quantitat) 
     SELECT session,client,producte,preu_unitat,quantitat 
     FROM carret 
     WHERE session='".session_id()."'"); 

내가 성공하지 않고 너무 시도 결국. 나 같은 다른 PHP 초보자에게 도움이 될 수 있기 때문에 나는 그것을 게시합니다.

이 작동 :

mysql_query("INSERT INTO comandes (id_carret,session,client,producte,preu_comanda,quantitat) 
      SELECT id,session,client,producte,preu_unitat,quantitat 
      FROM carret 
      WHERE session='".session_id()."'"); 

이하지 않습니다 작품! 문제는 최종 ";" 그 이후에 "die die ..."가있는 경우 :

mysql_query("INSERT INTO comandes (id_carret,session,client,producte,preu_comanda,quantitat) 
      SELECT id,session,client,producte,preu_unitat,quantitat 
      FROM carret 
      WHERE session='".session_id()."'"); 

or die("error:".mysql_error()); 

이것은 작동합니다. 이제 나는 그것을 보았습니다. 마지막 "또는 죽을 때"나는 이전의 ";"을 제거해야합니다.

mysql_query("INSERT INTO comandes (id_carret,session,client,producte,preu_comanda,quantitat) 
      SELECT id,session,client,producte,preu_unitat,quantitat 
      FROM carret 
      WHERE session='".session_id()."'") 

or die("error:".mysql_error()); 
관련 문제