[英]name cytoscape's nodes by primary key in mysql table
我正在尝试使用基于mysql
数据库的cytoscape
显示一个网络,我有两个表,一个表包含名称( device_id
), ip
和SN
,表示网络中每个设备的序列号(PK),另一个具有关系的信息: origin's SN
destiny's SN
, interface
和port
。
我做了这三个查询:
$query = 'SELECT * FROM dispositivos';
$result = mysql_query($query) or die('Consulta fallida: ' . mysql_error());
$numdispositivos = mysql_num_rows($result);
然后我尝试制作一个for循环,以根据表上的行数创建节点:
var numerodispositivos = "<?php echo $numdispositivos; ?>";
使用此循环即时绘图节点:
for (var i = 0; i < numerodispositivos; i++) {
cy.add({
data: { id: 'node' + i }
}
);
var source = 'node' + i;
cy.add({
data: {
id: 'edge' + i,
source: source,
target: (i % 2 == 0 ? 'a' : 'b')
}
});
我想用“ dispositivos”的主键命名那些节点,但是我不知道如何逐行遍历表或如何提取该信息。
有什么帮助吗?
提前致谢
您可以尝试使用在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(其中i
是循环中的主键)中回显生成的JSON数组,从而允许您运行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')
}
});
}
您可能还想转移到mysqli
或PDO
而不是mysql
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.