d3.js如何将参数传递给php查询条件

时间:2014-10-31 21:42:55

标签: javascript php mysql d3.js

我尝试将d3,mysql php Tutorial组合在一起。 我想使用mysql来存储数据,并使用d3表来显示结果。 在教程之后我成功连接了sql并显示它。

但是,在我的示例中,where中sql的queryData.php条件是硬编码的。 如下所示:WHERE pathwayID='1643685' && symbol='VIF'

我需要将参数'1643685'和'VIF'从d3文件传递到php文件,我该怎么办? 我应该如何修改queryData.php,谢谢。

d3 file

 d3.json("queryData.php", function(error, jsonData) {
       ....
});

queryData.php

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
    // load in mysql server configuration (connection string, user/pw, etc)
    include 'mysqlConfig.php';
    // connect to the database
    @mysql_select_db($database) or die( "Unable to select database");
    //Query
    $myquery = "
        SELECT `pathwayID`, `proteinID`, `uniprotID`, `symbol`, `displaySymbol`, `reactomeID`, `cellularLocation` FROM `protein` WHERE pathwayID='1643685' && symbol='VIF'
    ";

    $result = mysql_query($myquery);
    if ( ! $result ) {
        echo mysql_error();
        die;
    }
    $data = array();
    for ($x = 0; $x < mysql_num_rows($result); $x++) {
        $data[] = mysql_fetch_assoc($result);
    }
    echo json_encode($data);

    mysql_close();
?>

mysqlConfig.php

<?php
    error_reporting(E_ALL ^ E_DEPRECATED);
    $username="root"; //replace with your mySql username
    $password="";  //replace with your mySql password
    $database="pathway";  //replace with your mySql database name
    $host="localhost";  //replace with the name of the machine your mySql runs on
    $connection=mysql_connect($host,$username,$password);
?>

1 个答案:

答案 0 :(得分:1)

最后,我通过使用ajax来发布参数来解决这个问题。

$.ajax({
                        url: "./php/querybyPathwayId.php",
                        type: "GET",
                        data: {
                            pathwaydbId: dbId
                        },
                        dataType: "json",
                        success: function (jsonData) {
                            operation(jsonData);
                        },
                        error: function () {
                        }
                    });

并修改了querycentance

$pathwayId = $_GET["pathwaydbId"];
$myquery = "
    SELECT `pathwayID`, `proteinID`, `uniprotID`, `symbol`, `displaySymbol`,
     `reactomeID`, `cellularLocation` FROM `protein` WHERE pathwayID='$pathwayId'
";