我一直在努力處理我的應用程序,該應用程序旨在將來自PHP文件的sql查詢中的數據返回給客戶端C#應用程序。PHP引用數組
查詢在PHP端執行並加載到引用的XML查詢中,併發送到客戶端。客戶端然後讀取XML並提取所需的數據。
但是,我有點困惑。出於某種原因 - 並非所有信息都被返回。
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();
然而,在客戶端的XML中缺少某些值。
例如, 運行1返回的值: 名稱,FileImage,說明,作者,CS,大小,主題,湖,瀑布,Dateuploaded,下載,ID,等級,文件大小
在運行2返回: 正如你所看到的第一次運行沒有返回參數'河流',你可以看到,但第二個呢。 每次運行似乎都會返回不同的值。
檢查我的數據庫後,它所缺少的所有值都被存儲爲'True'或'False'變量。我不確定這是否與此有關 - 但是根據數據庫中的數據檢查返回的結果,我發現沒有任何問題。
總之,爲什麼沒有在陣列中存儲的所有數據,我要求它?爲什麼什麼它選擇存儲過程顯得那麼隨意?
PS:我已經回顯各行之前,可以確認該數據庫中的行是正確命名和數據是在其中存在....
編輯: 返回的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>
您的鑰匙不應該在價值之前。key =>值 – karmafunk
順便說一句,你應該使用'mysql_fetch_assoc'而不是'mysql_fetch_array'。 – mpyw
「河流」後面沒有''',肯定是一個錯字,但看看。 – Voitcus