[英]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.