0

アイデアは、同じデータを SQL DB に $quantity 回挿入することです。つまり、数量 = 10 の場合、SQL クエリは同じデータを 10 回挿入する必要があります。問題は、数量がある場合、常にレコードが 1 つ多いということです。 =2 レコード数が 3 の場合、レコード数が 1 の場合、レコード数は 2 になります。

$i=1; 
while ($i<="$quantity")   
{
  $sql="INSERT INTO arivage (ID_Ship, Date_ariv, Date_achat, prov_id, Sph, cyl, Prod_type, Pord_color)  
       VALUES ('', '$date', '$date1', '$prov_id', '$sph', '$cyl', '$Prod_type', '$Prod_color')";
  mysql_query($sql);      
  $i++;
}
if (!mysql_query($sql,$con))
{
  die('Error: ' . mysql_error());
}

私はSQL接続を持っており、コードも閉じています。

4

1 に答える 1

1

常に1つのレコードが多すぎる場合は、数量の値が正しくないことを意味している可能性があります(?)。

また、これは問題とは関係ありません。while($i<=$quantity)の代わりにを使用する必要がありwhile($i<="$quantity")ます。"あなたはsを必要としません

この最初のブロックは問題ありません。

$i=1; 
while ($i<="$quantity")   
{
    $sql="INSERT INTO arivage (ID_Ship, Date_ariv, Date_achat, prov_id, Sph, cyl, Prod_type, Pord_color)  
        VALUES ('', '$date', '$date1', '$prov_id', '$sph', '$cyl', '$Prod_type', '$Prod_color')";
    mysql_query($sql);      
    $i++;
}

次のifステートメントはクエリをもう一度実行します。つまり、挿入する行が多すぎます。ifステートメント全体を削除すると、「挿入される行が多すぎる」という問題が解決されます。

if (!mysql_query($sql,$con))
{
    die('Error: ' . mysql_error());
}

または、whileループを次のように変更します。

$i=1; 
while ($i<="$quantity")   
{
    $sql="INSERT INTO arivage (ID_Ship, Date_ariv, Date_achat, prov_id, Sph, cyl, Prod_type, Pord_color)  
    VALUES ('', '$date', '$date1', '$prov_id', '$sph', '$cyl', '$Prod_type', '$Prod_color')";
    if(!mysql_query($sql, $con)) {
        die('Error: ' . mysql_error());
    }
    $i++;
}
于 2012-04-23T11:41:02.937 に答える