dqifn68206 2013-05-15 13:59
浏览 32
已采纳

PHP引用的数组

I have been working on my application that is meant to return data from a sql query from a PHP file to the client C# application.

The query is executed on the PHP side and loaded into a referenced XML query where it is sent to the client. The client then reads the XML and extracts the required data.

However, I am a tad confused. For some reason - not all information is being returned.

PHP:

    $query =  "SELECT * FROM Parks";
    $result = mysql_query($query);

        while($row = mysql_fetch_array($result))
         {  
$array = array (
            $row['Name'] => 'Name',
            $row['File'] => 'File', 
            $row['Image'] => 'Image',
            $row['Description'] => 'Description',
            $row['Author'] => 'Author',
            $row['CS'] => 'CS',
            $row['Size'] => 'Size',
            $row['Theme'] => 'Theme',
            $row['Mountains'] => 'Mountains',
            $row['Hills'] => 'Hills',
            $row['Rivers'] => 'Rivers',
            $row['Lake'] => 'Lake',
            $row['Ocean'] => 'Ocean',
            $row['Island'] => 'Island',
            $row['SetOfIslands'] => 'Setofislands',
            $row['Waterfalls'] => 'Waterfalls',
            $row['Download'] => 'Download',
            $row['ID'] => 'ID',
            $row['Rating'] => 'Rating',
            $row['FileSize'] => 'FileSize',
            $row['DateUploaded'] => 'Dateuploaded',

            );
            $xml = new SimpleXMLElement('<Parks/>');
            array_walk_recursive($array, array ($xml, 'addChild'));
            echo $xml->asXML(); 

However, on the client side the XML is missing certain values.

For example, Run 1 returned the values of: Name,FileImage,Description,Author,CS,Size,Theme,Lake,Waterfalls,Dateuploaded,Download,ID,Rating,FileSize

While Run 2 returned: Name,File,Image,Description,Author,CSSize,Theme,Waterfalls,Rivers,Dateuploaded,Download,ID,Rating,FileSize

As you can see the first run doesn't return the parameter 'Rivers' but the second one does. Every run seems to return different values.

After checking my database all of the values it was missing were stored either as a 'True' or 'False' variable. I'm not sure if that has any thing to do with it - but checking the returned results against the data in my database I found there was no consciency.


In short, why isn't the array storing all of the data I'm asking it to and why does the process of what it chooses to store seem to be so random?

PS: I've echoes back each row before and can confirm the database rows are named correctly and data is present within them....


EDIT: An example of the returned xml:

  <?xml version="1.0"?>
<Parks><Name>Some Name</Name>
<File>The File Path</File>
<Image>Link To Screenshot</Image>
<Description>Random description </Description>
<Author>Someone</Author>
<CS>False </CS><
Size>small</Size>
<Theme>space</Theme>
<Island>False</Island>
<Lake>True</Lake>
<Ocean>False</Ocean>
<Waterfalls>True</Waterfalls>
<Rating>0</Rating>
<ID>166</ID>
<FileSize>3706121</FileSize>
<Dateuploaded>2013-04-04</Dateuploaded>
</Parks>
  • 写回答

1条回答 默认 最新

  • drpzr64329 2013-05-15 14:42
    关注

    The problem is having the same value for multiple columns in a row in the database, and using these values as indexes of the array.

    if you had this row in the db:

    File | Image | Rivers | Whatever
    --------------------------------
    1    | 1.jpg | true   | true
    

    Generating your array with:

    while($row = mysql_fetch_array($result)) {  
        $array = array (
                $row['File'] => 'File', 
                $row['Image'] => 'Image',
                $row['Rivers'] => 'Rivers',
                $row['Whatever'] => 'Whatever'
        );
    }
    

    It will miss Rivers again, because both Rivers and Whatever are going to the same index of the array (true in this case), so the latter value overwrites the former.

    So, create the array like @karmafunc said in a comment, key => value, and use array_keys()` to get the keys.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里