Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将参数传递给PHP并生成查询_Javascript_Php_Jquery_Ajax_Json - Fatal编程技术网

Javascript 将参数传递给PHP并生成查询

Javascript 将参数传递给PHP并生成查询,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我试图让PHP代码像这样工作: <?php $hostname = '******'; $database = 'firstdb'; $username = '*****'; $password = '*****'; $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password); $sortvalue = "datbase_percent"; $sortorder = "ASC"; $sql =

我试图让PHP代码像这样工作:

<?php 
$hostname = '******';
$database = 'firstdb';
$username = '*****';
$password = '*****';
$dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$sortvalue = "datbase_percent";
$sortorder = "ASC";
$sql = "select * from advanced_data where category like age_group order by {$sortvalue} {$sortorder};";
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
header('Content-type: application/json');
echo json_encode($result);
?>
有两个问题……我的PHP代码不起作用,因为我无法找出构建构成mySQL查询的$sql变量的正确语法。我尝试了很多方法,但不断地出现500个错误。如果我只是键入值,那么代码就会工作,所以我知道这只是我的语法问题


第二个问题…从前端将变量传递到$sortvalue和$sortorder的最佳方式是什么?我知道这是使用$.ajax实现的,但不确定最好的方法。这个想法是,用户可以单击一个按钮,该按钮对应于对图表进行升序或降序排序,并在不重新加载页面的情况下重新加载图表。如有任何指示,将不胜感激

您是否尝试过:“从advanced_data中选择*,其中类别(如年龄组)按$sortvalue$sortorder排序;”<代码>$。getJSON具有可选的数据参数。请参阅docsuse$\u POST,并在中传递它的值。看看jquery示例。json对象上的任何名称都是您在$\u POST.$中使用的名称。post(“yoururl.php,{abc:123},success)然后在php$_post['abc']==123
{$sortorder}
中需要在它周围加上一些引号,比如
{$sortorder}
{$sortvalue}
如果是列名就可以了。@LuckyBurger我可以发誓我试过了,但显然没有,因为这就成功了。现在我只需要弄清楚如何从jQuery传递这些变量。如果你能加上答案,我一定会接受的。谢谢
$.getJSON('all_get_2.php', function(data) {