-2

我有一个包含以下字段的事务数据库

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

我需要将其转换为数组,其中属于同一事务的所有产品都将位于一个数组中,因此我可以使用以下代码对此进行处理,但它似乎不起作用。我在 while 循环的迭代过程中检查了 $value 的长度,它首先显示 2 然后再次显示 2 而不是 3 和 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

任何人都可以告诉如何摆脱它并看到所有错误吗??????

4

2 回答 2

1

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

不行?

于 2013-04-09T18:53:20.177 回答
0

您可以使用该功能来做到这一点mysqli_fetch_assoc($result),它比mysql_fetch_array根据 php.ini 的特性将被弃用的功能更好。

$query = "你的查询";

$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if ($result = mysqli_query($link, $query)) {

//get the associative array with mysqli_fetch_assoc($result)
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["field"], $row["otherfield"]);
    }

就是这样

于 2013-04-09T19:02:26.300 回答