1

テーブルの 1 つの行を選択し、別の既存のテーブルに挿入したいと考えています。(私は と を使用phpMySqlます。2 つのテーブルには、id とタイムスタンプを除いて同じ列があります)

カートを作ってみました。誰かが支払うときに、そのクライアントとそのセッションのすべての製品を「キャレット」から選択し、「コマンデス」に挿入したいと考えています。

たとえば、挿入 - 選択は機能します。たとえば、WHERE session=4");
これも機能します。echo session_id();つまり、セッションを取得できます
。しかし、この 2 つのことは一緒には機能しません。問題がわかりません。where条件の何が問題になっていますか?

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

私も成功せずに試しました:WHERE client='$_SESSION[client]'

4

1 に答える 1

0

私はついに単純な「;」で問題を見つけました 最後に。私のような他の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()."'");

これは機能しません!! 問題は最後の「;」にあります。その後に「or 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());
于 2012-11-09T14:54:59.987 に答える