PHP无法将值插入数组

时间:2014-09-18 03:33:17

标签: php mysql

我有问题用查询结果设置我的数组值。我有ID_ATTACHMENT作为主键autoincreament的文档表,ID_TRANSACTION,DOCUMENT_NAME,NO_DOCUMENT,REMARKS,NAMA_FILE

$queryattacth = mysql_query("SELECT * FROM document A WHERE A.ID_TRANSACTION='13' ");
$tempAttc = array();
for ($i=1;$i<=15;$i++)
    {
        for ($j=0;$j<5;$j++)
            $tempAttc[$i][$j]="";
    }

while ($dataattach = mysql_fetch_array($queryattacth)){
        if (strtoupper($dataattach['DOCUMENT_NAME'])=='A')
        {
            $tempAttc[1][2]=$dataattach['NO_DOCUMENT'];
            $tempAttc[1][3]=$dataattach['REMARKS'];
            $tempAttc[1][4]=$dataattach['NAMA_FILE'];
        }
        else if (strtoupper($dataattach['DOCUMENT_NAME'])=='B'){
            $tempAttc[2][2]=$dataattach['NO_DOCUMENT'];
            $tempAttc[2][3]=$dataattach['REMARKS'];
            $tempAttc[2][4]=$dataattach['NAMA_FILE'];
        }
        else if (strtoupper($dataattach['DOCUMENT_NAME'])=='C'){
            $tempAttc[3][2]=$dataattach['NO_DOCUMENT'];
            $tempAttc[3][3]=$dataattach['REMARKS'];
            $tempAttc[3][4]=$dataattach['NAMA_FILE'];
        }
       .................
}

结果是没有显示此变量的任何值

$tempAttc[1][2];
$tempAttc[1][3];
$tempAttc[1][4];

但是有这个变量的结果

 $tempAttc[2][2];
 $tempAttc[2][3];
 $tempAttc[2][4];

任何人都可以解释为什么会这样?

2 个答案:

答案 0 :(得分:1)

我只是尝试了这个,它解决了我的问题

$tempAttc[1][2]=$tempAttc[1][2].''.$dataattach['NO_DOCUMENT'];
$tempAttc[1][3]=$tempAttc[1][3].''.$dataattach['REMARKS'];
$tempAttc[1][4]=$tempAttc[1][4].''.$dataattach['NAMA_FILE'];

但我仍然不明白我的问题,也许任何人都可以解释为什么那些组合不适合我...

答案 1 :(得分:0)

首先 RED ALERT mysql_函数已被弃用......它们位于裁剪房间,即将被扫除。请查看PDOmysqli_。也就是说,我在这个答案中保留了已弃用的功能。

在下面的代码中,我添加了关于我为什么按照我的方式做事的评论。

//Assuming that DOCUMENT_NAME goes from A to the 15th letter of
//the alphabet, order by it to make things easier.
$queryattacth = mysql_query("SELECT * 
                             FROM document A 
                             WHERE A.ID_TRANSACTION='13'
                             ORDER BY DOCUMENT_NAME");

//Initialize $tempAttc as an empty array (to be fully populated by the query)
$tempAttc = array();

//Use MYSQL_NUM to get an array without the associative (text) indices.
while ($dataattach = mysql_fetch_array($queryattacth, MYSQL_NUM)) {
  //Assuming the columns are exactly ordered as you have listed, push
  //the results into the array (will include all columns, not just 2-4)
  $tempAttc[] = $dataattach;
}

这应该做你想要的关于插入PDF的部分(这不是你的问题的一部分)。