2013-12-21 91 views
-1

我從PHP獲取XML數據庫中的記錄時遇到問題。無法通過PHP從XML數據庫獲取記錄

在XML文件中有很多稱爲「」的元素,彼此具有稱爲「id」的屬性,我從PHP調用。 當我輸入任何數字,但數字「1」正在工作時,它不起作用。

這是我收到的錯誤消息。

說明:未定義變量:quest2在 C:\ XAMPP \ htdocs中\遊戲\上線58的通知數據\ quest_query.php:未定義 變量:info_quest在C:\ XAMPP \ htdocs中\遊戲\數據\在 線quest_query.php 58注意:未定義的變量:TIME_END在 C:\ XAMPP \ htdocs中\遊戲\ DATA \上線quest_query.php 58

這些錯誤我得到的只是因爲「如果「聲明不被接受。 下面是代碼:提前

<?php 

$xmlStringFile = '<?xml version="1.0" standalone="yes"?> 
<quests> 
<quest id="1"> 
     <ID>1</ID> 
     <QUEST>Katakomby pod městem</QUEST> 
     <INFO>Asi nevíte že pod naším krásným městem je spousta tajných chodem, které pořádně nikdo neproskoumal. Jsou tu již dlouhá staletí a údajně naši předci v nich ukryli zlatý poklad.</INFO> 
     <TIME>780</TIME><!-- 780 - 13 minut --> 
     <ITEMS1></ITEMS1> 
     <XPMIN>180</XPMIN> 
     <MONEY>800</MONEY> 
     <LVL>1</LVL> 
    </quest> 

    <quest id="2"> 
     <ID>2</ID> 
     <QUEST>Oprava zříceného mostu</QUEST> 
     <INFO>Před několika dny strhla záplava starý dřevěný most u radnice. Pomoz jej opravit.</INFO> 
     <TIME>7200</TIME> 
     <ITEMS1></ITEMS1> 
     <XPMIN>250</XPMIN> 
     <MONEY>250</MONEY> 
     <LVL>4</LVL> 
    </quest> 
</quests>'; 

    $quests = new SimpleXMLElement($xmlStringFile); 

    if($_GET['quest'] == $quests->quest["id"]){ 
     $quest2 = $quests->quest->QUEST; 
     $info_quest = $quests->quest->INFO; 
     $time_end = $quests->quest->TIME; 
    } 
    // echo $idquest . $quest2 . $info_quest . $time_end; 
    echo $_GET['quest'] . $quest2 . $info_quest . $time_end; 

?> 

感謝所有幫助將非常感激。

+0

第一:注意!=錯誤。然後,var_dump或print_r $任務查看你的xml(或對象/數組)的結構,而不嘗試我會說你缺少一個循環,因爲$ quests-> quest-> cant存在,但是$ quests-> quest [ 0] - >可以。 – Rufinus

回答

0

使用xpath選擇<quest>您需要:

$quests = simplexml_load_string($x); // assume XML in $x 

$id = 2; 
$results = $quests->xpath("/quests/quest[@id='$id']"); 

if (isset($results[0])) $results = $results[0]; 
else exit("no match"); 

echo $results->QUEST; 

看到它的工作:http://codepad.viper-7.com/KJMIAl

+0

非常感謝您的幫助,但代碼似乎並不完整。 你能給我發送完整的代碼嗎? –

+0

@ peterpetr4我添加了'$ quests'的定義,'$ x'是您的問題中的XML。 – michi

+0

更新:我已經成功解決了它。非常感謝你的幫助。 –