我有这个脚本,它有效,但不是我想象的那样。我需要为不同的名称分配一个值数组,现在所有$ arr []都被命名为“valor”
{"valor":"20"},{"valor":"50"}
我需要
{"valor1":"20"},{"valor2":"50"}
脚本
$query = mysql_query("SELECT valor FROM grafico") or die(mysql_error());
$arr = array();
while($row = mysql_fetch_assoc($query)) {
$arr[] = $row;
}
echo json_encode($arr);
in ajax
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery.ajax({
url: "chart.php",
dataType: "json",
success: function(json){
var msg = "Nome: " + json.valor1+ "\n";
msg += "Sobrenome: " + json.valor2 + "\n";
alert(msg);
}
});
});
});
</script>
问题是:我需要创建一个创建唯一名称的循环,如value1,value2,value3
像
$arr['valor1'] = "Evandro";
我尝试了循环,但是我得到了内存错误
感谢
答案 0 :(得分:2)
试试这个:
$query = mysql_query("SELECT valor FROM grafico") or die(mysql_error());
$arr = array();
$i = 1;
while($row = mysql_fetch_assoc($query)) {
$arr[] = array("valor{$i}" => $row["valor"]);
++$i;
}
echo json_encode($arr);
应该有效。或者,如果您想使其与当前回调一起使用,请将$arr[] =
行更改为以下内容:
$arr["valor{$i}"] = $row["valor"];
答案 1 :(得分:1)
$index = 1;
while($row = mysql_fetch_assoc($query)) {
$key = 'valor'.index;
$arr[$key] = $row;
$index++;
}
这会给你一个内存错误吗?它不应该。