首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用新4j-php-客户机访问collect()的结果

使用新4j-php-客户机访问collect()的结果
EN

Stack Overflow用户
提问于 2016-09-22 16:07:24
回答 3查看 355关注 0票数 0

下面显示: Marlena有12幅画(基本上是来自于文档)

如何访问“收集(绘画)前:标题”中的数据

代码语言:javascript
运行
复制
$query = "MATCH (n:Artist)-[:PAINTED]->(Painting) RETURN n.first_name, collect(Painting) as paintings";
$result = $client->run($query);

foreach ($result->getRecords() as $record) {
    echo sprintf('%s has %d paintings', $record->value('n.first_name'), count($record->value('paintings')));
    echo '<br/>';
}

我想显示的

艺人名称:

  • 绘画标题
  • 绘画标题

我认为这些数据可以从绘画或绘画中提取出来。我只是不知道如何把这个查询组合在一起。它将使用print_r和记录显示,所以我知道数据是通过的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-26 11:31:27

( a)我建议您化名为您的返回值,在驱动程序级别更容易获取它们。

( b)绘画记录值返回一个Node对象数组,因此是可迭代的,不需要计算执行for循环:

代码语言:javascript
运行
复制
$query = "MATCH (n:Artist)-[:PAINTED]->(Painting) RETURN n.first_name as firstName, collect(Painting) as paintings";
$result = $client->run($query);

foreach($result->records() as $record) {
    echo sprintf('%s painted %d paintings', $record->get('firstName'), count($record->get('paintings'))) . PHP_EOL;
    foreach ($record->get('paintings') as $painting) {
        echo sprintf('%s - %d views', $painting->value('title'), $painting->value('views')) . PHP_EOL;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-09-23 20:44:24

这应该适用于你:

代码语言:javascript
运行
复制
$query = "MATCH (n:Artist)-[:PAINTED]->(Painting) RETURN n.first_name, collect(Painting) as paintings";
$result = $client->run($query);

foreach ($result->getRecords() as $record) {
    echo sprintf('%s has %d paintings:<br/>', $record->value('n.first_name'), count($record->value('paintings')));
    foreach ($record->value('n.paintings') as $painting) {
        echo sprintf('- %s<br/>', $painting->value('title'));
    }
    echo '<br/>';
}
票数 1
EN

Stack Overflow用户

发布于 2016-09-24 06:09:40

最后,我让它与以下几个方面一起工作:

代码语言:javascript
运行
复制
foreach ($result->getRecords() as $record) {
    $fname = $record->values()[0]->get('first_name');
    $lname = $record->values()[0]->get('last_name');
    echo '<strong>'.$fname.' '.$lname.' painted:</strong><br/>';
    for ($x = 0; $x < count($record->values()[1]); $x++) {
            print_r($record->values()[1][$x]->get('title'));
            echo ' - ';
            print_r($record->values()[1][$x]->get('views'));
            echo ' views<br/>';
    }
    echo '<br/>';
}

它提供以下输出:

名姓漆:

  • Lumine - 86次浏览
  • 池水- 69次浏览
  • 静水湖- 125景观

Final Notes实际上我尝试了类似于您在我努力工作期间建议的代码。我有点搞不懂为什么没有。

所以我想知道。我想出来的东西可以接受吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39643914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档