-2

次のフィールドを持つトランザクションデータベースがあります

trans_id    prod_id
    1          1
    1          2
    1          3
    2          1
    2          3

これを、同じトランザクションに属するすべての製品が 1 つの配列になる配列に変換する必要があるため、次のコードを使用してこの im の処理を​​行うことができますが、機能していないようです。while ループの反復中に $value の長さを確認しました。最初に 2 が表示され、次に 3 と 2 ではなく 2 が表示されます。コード全体は次のようになります。

<?php

// MySQL Database Structure:  
// Name: tree
// Table: node
// Columns:id, parent, child


$con=mysql_CONNECT("localhost","root","");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
 mysql_select_db("tree", $con);

 mysql_query("truncate table node");

 $sql="INSERT INTO node (data,parent) VALUES(0,0)"; //first insertion for the root node
 mysql_query($sql);
 $par1=mysql_query("SELECT id FROM node where data=0");
 $par=mysql_fetch_array($par1); 
 //echo $par['id'];
 $abc="";
 for($z=1;$z<=3;$z++)
 {
    $result= mysql_query("SELECT prod_id FROM user_prod WHERE trans_id=".$z);
    while($value=mysql_fetch_array($result))
    {
        $abc.=$value['prod_id'].',';
    }
    $abc=substr($abc,0,-1);
    $par=1;
    $list=explode(',',$abc);
    echo $list;
    $size=count($list);
    echo $size;
    for($i=0;$i<$size;i++)
    {
        $sql="SELECT * FROM node where parent=".$par;
        $result=mysql_query($sql);
        $num=mysql_num_rows($result);
        if($num==0)
        {
            $x="INSERT INTO node (data,parent) VALUES ($list[$i],$par)";//new value at root
            mysql_query($x);
            $par1= mysql_query("SELECT id FROM node where data=$list[$i]");
            $par=mysql_fetch_array($par1);
        }
        else
        {
            while($x=mysql_fetch_array($result))
            {
                if($x['data']==$list[$i])
                {
                    $par1= mysql_query("SELECT id FROM node where data=$list[$i]");
                    $par=mysql_fetch_array($par1);
                    break;
                }
                else
                {
                    $x="INSERT INTO node (data,parent) VALUES ($list[$i],$par[id])";//new value at root
                    mysql_query($x);
                    $par1= mysql_query("SELECT id FROM node where data=$list[$i]");
                    $par=mysql_fetch_array($par1);
                }
            }
        }
    }

$abc="";

}
mysql_close($con);


?>

エラー

このコードは正常に動作しているようですが、私はこれを取得し続けます

error 
Parse error: syntax error, unexpected T_INC, expecting ')' in C:\xampp\htdocs\new_tree_sql.php on line 37

誰でもそれを取り除く方法を教えてもらえますか?エラーはすべて abt ですか?????

4

2 に答える 2

1

する

$myArray[$value['trans_id']][] = $value['prod_id'];

うまくいかない?

于 2013-04-09T18:53:20.177 に答える