簡體   English   中英

在mysql表中用主鍵命名cytoscape的節點

[英]name cytoscape's nodes by primary key in mysql table

我正在嘗試使用基於mysql數據庫的cytoscape顯示一個網絡,我有兩個表,一個表包含名稱( device_id ), ipSN ,表示網絡中每個設備的序列號(PK),另一個具有關系的信息: origin's SN destiny's SNinterfaceport

我做了這三個查詢:

$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')
        }
    });
}

您可能還想轉移到mysqliPDO而不是mysql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM