Я пытаюсь отобразить сеть с помощью cytoscape
основанный на mysql
база данных, у меня есть две таблицы, одна содержит имя (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);
Полученный массив JSON может затем быть выведен в JS (где 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')
}
});
}
Вы, вероятно, также хотите перейти к mysqli
или же PDO
вместо mysql
,
Других решений пока нет …