通过mysql表中的主键命名cytoscape的节点

时间:2017-06-05 16:23:10

标签: php mysql nodes cytoscape.js cytoscape-web

我尝试使用基于cytoscape数据库的mysql来显示网络,我有两个表,一个包含名称(device_id), ipSN表示网络中每个设备的序列号(PK),另一个人有关系信息:origin's SN destiny's SN,{{1} }和interface

我已经完成了这三个问题:

port

然后我尝试根据表格中的行数创建一个for循环来创建节点:

$query = 'SELECT * FROM dispositivos';
$result = mysql_query($query) or die('Consulta fallida: ' . mysql_error());
$numdispositivos = mysql_num_rows($result);

使用此循环im绘制节点:

 var numerodispositivos = "<?php echo $numdispositivos; ?>";

我想用主键#34; dispositivos&#34;来命名那些节点。但我不知道如何逐行遍历表格或如何提取该信息。

任何帮助?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以尝试在php中使用包含主键的数组,而不仅仅是行数(您需要指定主键是什么):

$j=0;
while ($row = mysql_fetch_array($result)) {
    $primary_key = $row["PRIMARY_KEY"];
    $php_array[$primary_key] = $j;
    $j++;
}

$json_from_php = json_encode($php_array);

然后可以在JS中回显生成的JSON数组(其中i是循环中的主键),允许您运行for循环,然后可以拉出主键字符串/号码来自:

var jsonArray = "<?php echo $json_from_php; ?>";

for (var i in jsonArray) {
    cy.add({
        data: { id: i }
        }
    );
    var source = i;
    cy.add({
        data: {
            id: i,
            source: source,
            target: (jsonArray[i] % 2 == 0 ? 'a' : 'b')
        }
    });
}

您可能还想转移到mysqliPDO而不是mysql