1

私は混乱しています、何が悪いのかわかりません。最初のテーブルから別のテーブルにすべてのデータを転送しようとしています。これが私のコードです:

$getdata = mysql_query("SELECT Quantity, Description, Total FROM ordercart");

while($row = mysql_fetch_row($getdata))
{
foreach($row as $cell){

$query1 = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell)",$connect);

}
mysql_free_result($getdata);
}

エラーが発生します:警告:mysql_fetch_row():5は有効なMySQL結果リソースではありません。

4

4 に答える 4

5

には 1 つの値のみを渡しますINSERT。これは、3 つの値が fields に渡されることを想定しています Quantity, Description, Total

INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell);

次のように変更します。

INSERT INTO ordermem (Quantity, Description, Total) VALUES 
($cell, $descriptionParam, $totalParam);

INSERT INTO SELECT次のような 2 つの異なるステートメントの代わりに、直接使用することもできます。

INSERT INTO ordermem (Quantity, Description, Total)
SELECT Quantity, Description, Total FROM ordercart;
于 2012-10-17T14:58:53.623 に答える
0

これを試して :

$query = "INSERT INTO ordermem (Quantity, Description, Total) SELECT Quantity, Description, Total FROM ordercart";

mysql_query($query);
于 2012-10-17T19:27:17.460 に答える
0

デバッグを使用して、問題の原因を見つけてください。

mysql_query()操作が成功したかどうかを示すブール値を返します。成功しなかった場合、mysql_error()関数は mySQL のエラー メッセージを表示します。

例:

$query1 = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) VALUES ($cell)",$connect);

if (!$query1)  
  trigger_error("mySQL Error: mySQL returned ".mysql_error(), E_USER_ERROR);

これにより、「値の数が列の数と一致しません」のようなメッセージが表示され、問題のヒントが得られます。

于 2012-10-17T16:57:27.940 に答える
0

1 つの値を 3 つのフィールドに挿入しようとしています。各フィールドに 1 つの値が必要です。例えば:

$quantity="$_GET['qty']";
$description="$_GET['desc']";
$total="$_GET['total']";

$query = mysql_query("INSERT INTO ordermem (Quantity, Description, Total) 
                                    VALUES ('$quantity','$description','$total'))
于 2012-10-17T15:25:41.070 に答える