-1

同じデータベースの同じテーブルにすでに入力されている列に関して、データベーステーブルの列のすべての行に配列を挿入するプログラムを作成しました。

しかし、それは正しく機能していないようです。どこが悪いのか教えてください!

$query = $sql = "SELECT A FROM `table`";
$result1 = mysql_query($query); 
while ($row = mysql_fetch_row($result1)) {

foreach($output as $value){
$count=sizeof($value); 

for($counter=0;$counter<$count;$counter++)
{

$query= "INSERT INTO `TABLE` (`B`) VALUES ('" . $value . "') WHERE A= $row[$counter] ";

$insert_col= mysql_query($query);

echo $query;
echo '<br/><br/>';
  }} 

} 

ここ$outputで、配列には次のような配列値が含まれています。

$output[0]= RD 3.56 , $output[1]= RD 5.56 , $output[2]= RD 4.86 

プログラムを実行すると、クエリを確認するために..出力は次のようになります。

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.144') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 2.436') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.624') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_1 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.144') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 2.436') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.624') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_2 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.144') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 2.436') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.624') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_3 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.144') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 2.436') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.624') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.60') WHERE A= 3r_4 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.144') WHERE A= 3r_5 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 2.436') WHERE A= 3r_5 

INSERT INTO `TABLE` (`B`) VALUES (' RD: 1.624') WHERE A= 3r_5

助けてください!私はプログラムのこのバグにほぼ1週間以上腹を立てています。

出力は次のようになります

INSERT INTO 'TABLE' SET B = ' RD: 1.144' WHERE A = '3r_1' 

INSERT INTO 'TABLE' SET B = ' RD: 2.436' WHERE A = '3r_2' 

INSERT INTO 'TABLE' SET B = ' RD: 1.624' WHERE A = '3r_3' 

INSERT INTO 'TABLE' SET B = ' RD: 1.560' WHERE A = '3r_4' 

INSERT INTO 'TABLE' SET B = ' RD: 1.560' WHERE A = '3r_5' 

INSERT INTO 'TABLE' SET B = ' RD: 1.560' WHERE A = '3r_6'

ここでの問題は$row、値がすべての値に対して6回繰り返されること$outputです。どうすれば問題を解決できますか?

そして、何度も試した結果、問題は配列の呼び出しにあることがわかりました。したがって、上記のコードを使用して2つの配列を同時に呼び出す方法を誰かに教えてもらえれば、非常にありがたいです。

4

4 に答える 4

1

私が理解していることから、あなたはループの問題を抱えています。

同時にインクリメントする必要がある2つのリストがあります。

これを試して:

$value = [' RD: 1.144', ' RD: 2.436', ' RD: 1.624', ' RD: 1.560', ' RD: 1.560', ' RD: 1.560'];
$row = ['3r_1', '3r_2', '3r_3', '3r_4', '3r_5', '3r_6'];

$cnt = count($row);//assuming $row and $value are of the same size

for($i = 0; $i < $cnt, $i++) {
    echo "INSERT INTO 'TABLE' SET B = '$value[$i]' WHERE A = '$row[$i]' ";
}

これはより単純な例ですが、基本的に、これはあなたがしなければならないことです。

于 2012-08-30T15:28:45.793 に答える
1

この構文を試してください:

$query= "INSERT INTO 'TABLE' SET B = '" . $value . "' WHERE A = '$row[$counter]' ";

ちなみに、テーブル名5は非常に奇妙です。

于 2012-08-30T12:04:52.273 に答える
1

このようなことをしようとしていますか

$i = 1;
$query = "SELECT A FROM `table`";
$result1 = mysql_query($query);
while ($row = mysql_fetch_row($result1)) {

    $query = "INSERT INTO `TABLE` (`B`) VALUES ('" . $output[$i] . "') WHERE `A` = '".$row[0]."' ";

    $insert_col = mysql_query($query);

    $i++;

    echo $query;
    echo '<br/><br/>';

}
于 2012-08-30T13:18:51.670 に答える
0
while ($row = mysql_fetch_row($result1)) {

foreach($output as $key=>$value){

$query = "INSERT INTO `TABLE` (`B`) VALUES ('" . $value . "') WHERE `A` = '".$row[$key]."' ";

$insert_col= mysql_query($query);

echo $query;
echo '<br/><br/>';
  }}

同じことを試しましたが、同じ出力を取得しています...

于 2012-08-30T13:36:52.893 に答える