Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php中的XML文件中获取表的特定行_Php_Mysql_Xml_Xpath - Fatal编程技术网

从php中的XML文件中获取表的特定行

从php中的XML文件中获取表的特定行,php,mysql,xml,xpath,Php,Mysql,Xml,Xpath,所以我有一个SQL数据库来存储游戏信息,比如库存的内容,我试图用php在网页上显示这些信息 SQL的东西都在工作,我有一个XML文件,其中包含所有项目的所有名称和信息。当我试图读取xml文件以打印项目名称时,一些条目出现了错误 <?php $ObjectXML = simpleXML_load_file("xml\objects_types.xml") or die("Error: Cannot Open XML file Object Types"); $servername = "

所以我有一个SQL数据库来存储游戏信息,比如库存的内容,我试图用php在网页上显示这些信息

SQL的东西都在工作,我有一个XML文件,其中包含所有项目的所有名称和信息。当我试图读取xml文件以打印项目名称时,一些条目出现了错误

<?php

$ObjectXML = simpleXML_load_file("xml\objects_types.xml") or die("Error: Cannot Open XML file Object Types");

$servername = "localhost";
$username = -
$password = -

$connection = new mysqli($servername, $username, $password);

if($connection->connect_error) 
{
    die("Connection failed: " . $connection->connect_error);
}
echo("Connected Successfully<br>");

$sql = "SELECT * FROM lif_1.items WHERE ContainerID = 158;";
$result = $connection->query($sql);
echo('<table style="width:100%">');
echo("<tr>");
echo("  <th>ID</th>");
echo("  <th>ContainerID</th>");
echo("  <th>ObjectTypeID</th>");
echo("  <th>Quality</th>");
echo("  <th>Quantity</th>");
echo("  <th>Durability</th>");
echo("  <th>MaxDurability</th>");
echo("</tr>");
foreach($result as $row)
{
    echo("<tr>");
    $rowpos = 0;
    foreach($row as $value)
    {
        $rowpos++;
        echo("<td>");
        echo($value);
        if($rowpos==3)
        {
            echo(" Name:");
            echo($ObjectXML->row[$value-1]->Name);
               //print_r($ObjectXML->xpath('//objects_types[@ID="'+$value+'"]'));
        }
        echo("</td>");
    }
    echo("</tr>");
}
?>
XML中的行标记仅包含1029个条目。当你打这个电话的时候

echo($ObjectXML->row[$value-1]->Name);
当$value包含1032或1030时,您当然会尝试获取不存在对象的属性

要按标记值查找simplexml节点条目,请使用xpath


以下是如何使用XPath按值获取ID节点的示例,以及如何获取父节点的示例:

$value = 236;
$row = $xml->xpath( "//ID[.=\"$value\"]/parent::*" );

如果你将错误包含在文章本身中,使其自我包含会更好,这样将来即使链接内容发生了更改,也能使读者受益。啊,好吧,那么我可以用什么来通过ID标记而不是行数进行搜索?@Hobnob11查看我的更新答案。你没有在问题中说明,所以我不知道你想要它。
$ObjectXML->xpath("row/ID[.=\"$value\"]/parent::*");
$value = 236;
$row = $xml->xpath( "//ID[.=\"$value\"]/parent::*" );