2015-11-10 6 views
0

Я пытаюсь изучить neo4j с php, но мне сложно с запросами запросов. Как мне пройти через мои узлы, которые я создаю, и назначить отношения abv, ibu, srm и пивоварни с помощью cypher.Новое в Neo4j и cypher

require_once 'vendor/autoload.php'; 

use Neoxygen\NeoClient\ClientBuilder; 

$client = ClientBuilder::create()->addConnection('default','http','localhost',7474, true, 'neo4j', '123')->setDefaultTimeout(20)->build(); 

$version = $client->getNeo4jVersion(); 

$conn = mysqli_connect("localhost","root","","sample data"); 

if(!$conn){ 
    mysqli_connect_error(); 
} 
$db_selected = mysqli_select_db($conn, 'sample data'); 
if(!$db_selected){ 
    die(); 
} 
$sql="SELECT * FROM `beers` "; 

$result=mysqli_query($conn, $sql); 
if(!$result){ 
    die(); 
} 
$beer = array(); 
while($row = mysqli_fetch_array($result,MYSQLI_BOTH)){ 
    $temp = array(); 
    array_push($temp, $row['name']); 
    array_push($temp, $row['abv']); 
    array_push($temp, $row['ibu']); 
    array_push($temp, $row['srm']); 
    array_push($temp, $row['brewery_id']); 
    array_push($beer,$temp); 
} 
$i =0; 
foreach ($beer as $name) { 
    $temp = $name; 
    if($i == 500){break;}else{$i++;} 
    $q = "CREATE (n {beer_name:"."\"".$name[0]."\","."ABV:".$name[1].","."IBU:".$name[2].","."SRM:".$name[3].","."brewey:".$name[4]."})"; 
    $client->sendCypherQuery($q); 
    $result = $client->getRows(); 
} 

Любая помощь будет здорово я застрял на том, что делать

ответ

1

Это может работать для вас:

require_once 'vendor/autoload.php'; 

use Neoxygen\NeoClient\ClientBuilder; 

$client = ClientBuilder::create()->addConnection('default','http','localhost',7474, true, 'neo4j', '123')->setDefaultTimeout(20)->build(); 

$version = $client->getNeo4jVersion(); 

$conn = mysqli_connect("localhost","root","","sample data"); 

if(!$conn){ 
    mysqli_connect_error(); 
} 
$db_selected = mysqli_select_db($conn, 'sample data'); 
if(!$db_selected){ 
    die(); 
} 
$sql="SELECT * FROM `beers` "; 

$result=mysqli_query($conn, $sql); 
if(!$result){ 
    die(); 
} 

$q = 
    "CREATE (beer:Beer {name: {name}}) 
    MERGE (abv:Abv  {name: {abv}}) 
    MERGE (ibu:Ibu  {name: {ibu}}) 
    MERGE (srm:Srm  {name: {srm}}) 
    MERGE (brw:Brewery {name: {brewery_id}}) 
    CREATE (beer)-[:ABV]->(abv),(beer)-[:IBU]->(ibu),(beer)-[:SRM]->(srm),(beer)-[:BREWERY]->(brw);"; 

while($row = mysqli_fetch_array($result,MYSQLI_BOTH)){ 
    $client->sendCypherQuery($q, $row); 
}