次のフィールドを持つトランザクションデータベースがあります
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 ですか?????