使用php和jquery从mysql数据库中获取格式为[1,2,3]的数据

时间:2015-03-12 16:58:02

标签: php jquery mysql arrays ajax

我的jquery代码连接到getdata.php。这里val是动态值,每次从下拉列表中选择一个选项时都会调用该函数。

    function getMoleculeData(val){
      var molval=val;
      var url = 'getmoldata.php';
     $.ajax({ 
      url: url,
      data: 'molval='+molval,
      method:'POST',
      success: function(moldata) {        
      alert(moldata);
        }
     });
    }

我的getdata.php代码在这里

    <?php  
      $molval = $_POST['molval']; //  consider $_POST['molval']=ABC 
      $dbhost = "localhost";
      $dbuser = "root";
      $dbpass = "";
      $dbname= "userdata";
      $conn = mysql_connect($dbhost, $dbuser, $dbpass);
      mysql_select_db($dbname) or die ();   
       $query = "SELECT cm_id, CORP_RANK, CORP_MKT_SHARE, COMBINED_MOLECULE FROM PRODUCT_UNIVERSE_D WHERE COMBINED_MOLECULE ="."'$molval'";

       $result = mysql_query($query) or die(mysql_error());
       $i = 1; 
         $array = array();
         while($row = mysql_fetch_array($result) { 
         $array[] = $row;
         echo $row['CORP_RANK']; // etc
         } 

       ?>

这是我的表PRODUCT_UNIVERSE_D

   cmid  |  CORP_RANK | CORP_MKT_SHARE |  COMBINED_MOLECULE  |    DATE
     1   |     10     |       30       |         ABC         |  01-04-2013
     2   |     5      |       50       |         ABC         |  03-06-2013
     3   |     8      |       40       |         ABC         |  23-09-2013
     4   |     3      |       10       |         XYZ         |  05-01-2014

当我在下拉列表中选择ABC时,在where子句中给出相同的值,我可以获取结果。对于用getdata.php写的上述代码,我得到的输出是1058,即CORP_RANK的值,其中COMBINED_MOLECULE ='ABC'。但要求是我必须以[10,5,8]的形式得到结果。如何以此数组格式获取结果,以及如何单独获取所有列,如$ row ['CORP_MKT_SHARE'] = [10,50,40],并在index.php的成功函数中单独显示为

    [10,5,8] and [10,50,40] for furthur use

请帮帮我,因为我在数组的基础知识方面并不完美,我无法得到结果。提前致谢

1 个答案:

答案 0 :(得分:1)

如果您的目标是将数据输出为json格式。

example:
$array = array(1,2,3);
var_dump(json_encode($array));

你会得到这个输出:

string(7) "[1,2,3]" 

最好改变你的循环:

for($array = array();$row = mysql_fetch_array($result);$array[] = $row);
json_encode($array);

当你想使用ajax从php文件中检索数据时,这是最好的方法。

使用您的代码:

while($row = mysql_fetch_array($result)) { 
   $rank[] = $row['CORP_RANK'];
   $share[] = $row['CORP_MKT_SHARE'];
}
$array = array('CORP_RANK'=>$rank,'CORP_MKT_SHARE'=>$share);
json_encode($array);

希望这有帮助。