Javascript 从Mysql查询中获取5列及其值并转换为PHP
经过几次尝试,我无法找到一个简单而优雅的解决方案 本质上,我想要一种方法来获取从这个查询中获取的5个字段,并将它们分配给PHP变量,然后再分配给最近的Javascript变量Javascript 从Mysql查询中获取5列及其值并转换为PHP,javascript,php,mysql,sql,variables,Javascript,Php,Mysql,Sql,Variables,经过几次尝试,我无法找到一个简单而优雅的解决方案 本质上,我想要一种方法来获取从这个查询中获取的5个字段,并将它们分配给PHP变量,然后再分配给最近的Javascript变量 <?php include_once('connect.php'); $result = mysqli_query($conn, " SELECT DISTINCT IPdestport as destport,COUNT(*) as count FROM PACKETSFORIP GROUP BY
<?php
include_once('connect.php');
$result = mysqli_query($conn, " SELECT DISTINCT IPdestport as destport,COUNT(*) as count FROM PACKETSFORIP GROUP BY destport ORDER BY count DESC LIMIT 5;");
while($row[] = mysqli_fetch_array($result))
{
$destport1 = $row[1][ 'destport' ];
$destport2 = $row[2]['destport'];
$destport3 = $row[3]['destport'];
$destport4 = $row[4]['destport'];
$destport5 = $row[5]['destport'];
$count1 = $row[1]['count'];
$count2 = $row[2]['count'];
$count3 = $row[3]['count'];
$count4 = $row[4]['count'];
$count5 = $row[5]['count'];
}
?>
var obj = <?php echo $portarray; ?>;
for(var i= 0; i < obj.length; i++) {
var json = obj[i];
destport = json.destport;
numberofpackets = json.count;
destport = destport.toString();
numberofpackets= parseInt(numberofpackets);
下面是更多的代码,我将最终如何将这些PHP变量转换为Javascript变量,以便将它们处理为google图表
var destport1 = "<?php echo $destport1 ?>";
var destport2 = "<?php echo $destport2 ?>";
var destport3 = "<?php echo $destport3 ?>";
var destport4 = "<?php echo $destport4 ?>";
var destport5 = "<?php echo $destport5 ?>";
var count1 = "<?php echo $count1 ?>";
var count2 = "<?php echo $count2 ?>";
var count3 = "<?php echo $count3 ?>";
var count4 = "<?php echo $count4 ?>";
var count5 = "<?php echo $count5 ?>";
var destport1=“”;
var destport2=“”;
var destport3=“”;
var destport4=“”;
var destport5=“”;
var count1=“”;
var count2=“”;
var count3=“”;
var count4=“”;
var count5=“”;
任何帮助都将不胜感激。谢谢。使用数组可以节省大量重复代码 要简化第一步(将它们分配给PHP变量),只需将结果集转换为数组:
$destPorts = mysqli_fetch_all($result);
$destPorts
将包含结果集中的所有行。如果要访问第二行的“计数”列,请使用:
$destPorts[1]['count']
$destPorts[3]['destport']
destPorts[1].count
destPorts[3].destport
或要访问第四行的“destport”列,请使用:
$destPorts[1]['count']
$destPorts[3]['destport']
destPorts[1].count
destPorts[3].destport
由于这些值存储在$destPorts数组中,因此无需将它们转换为单独的变量
<?php
include_once('connect.php');
$result = mysqli_query($conn, " SELECT DISTINCT IPdestport as destport,COUNT(*) as count FROM PACKETSFORIP GROUP BY destport ORDER BY count DESC LIMIT 5;");
while($row[] = mysqli_fetch_array($result))
{
$destport1 = $row[1][ 'destport' ];
$destport2 = $row[2]['destport'];
$destport3 = $row[3]['destport'];
$destport4 = $row[4]['destport'];
$destport5 = $row[5]['destport'];
$count1 = $row[1]['count'];
$count2 = $row[2]['count'];
$count3 = $row[3]['count'];
$count4 = $row[4]['count'];
$count5 = $row[5]['count'];
}
?>
var obj = <?php echo $portarray; ?>;
for(var i= 0; i < obj.length; i++) {
var json = obj[i];
destport = json.destport;
numberofpackets = json.count;
destport = destport.toString();
numberofpackets= parseInt(numberofpackets);
您可以在JavaScript中执行类似的操作。不是创建单独的变量,而是:
或要访问第四行的“destport”列,请使用:
$destPorts[1]['count']
$destPorts[3]['destport']
destPorts[1].count
destPorts[3].destport
当您将结果行存储在数组和对象中而不是简单的数字索引变量中时,您的代码重复性更小,更灵活。您不再需要知道数据库中有多少个结果;您只需在阵列或对象上循环并访问所有数据。对于将来搜索此项的任何人,这是我最终使用的解决方案。在我以前编写的web应用程序中找到它
<?php
include_once('connect.php');
$result = mysqli_query($conn, " SELECT DISTINCT IPdestport as destport,COUNT(*) as count FROM PACKETSFORIP GROUP BY destport ORDER BY count DESC LIMIT 5;");
$portsarray = Array();
$countarray = Array();
while($row = mysqli_fetch_array($result))
{
$portarray[] = array('destport'=>$row['destport'], 'count'=>$row['count']);
echo $row['count'];
}
$portarray = json_encode($portarray);
?>
上面的代码获取每个端口以及发送到该端口的数据包的数量,这些数据后来被转换成javascript并输入到google图表中,但我将只展示获取PHP数组并将其中包含的变量放入javascript变量的部分
<?php
include_once('connect.php');
$result = mysqli_query($conn, " SELECT DISTINCT IPdestport as destport,COUNT(*) as count FROM PACKETSFORIP GROUP BY destport ORDER BY count DESC LIMIT 5;");
while($row[] = mysqli_fetch_array($result))
{
$destport1 = $row[1][ 'destport' ];
$destport2 = $row[2]['destport'];
$destport3 = $row[3]['destport'];
$destport4 = $row[4]['destport'];
$destport5 = $row[5]['destport'];
$count1 = $row[1]['count'];
$count2 = $row[2]['count'];
$count3 = $row[3]['count'];
$count4 = $row[4]['count'];
$count5 = $row[5]['count'];
}
?>
var obj = <?php echo $portarray; ?>;
for(var i= 0; i < obj.length; i++) {
var json = obj[i];
destport = json.destport;
numberofpackets = json.count;
destport = destport.toString();
numberofpackets= parseInt(numberofpackets);
var obj=;
对于(变量i=0;i
如果代码的第一部分有效,只需将第二部分放在
标记中,它就可以完成任务(虽然不漂亮,但可以正常工作)