【发布时间】:2018-02-05 16:09:12
【问题描述】:
我正在尝试通过ajaxphp 中的 mysql_query 和 mysql_fetch_array 的常规方式从常规表中获取值
if ($comtype==3){
$getsteps = mysql_query("SELECT id FROM steps WHERE id = $id");
$row = mysql_fetch_array($getsteps);
if($row != false){
$steps_array = array();
while ($row = mysql_fetch_array($getsteps, MYSQL_ASSOC))
{
array_push($steps_array,$row);
}
$countsteps = count($steps_array);
error_log("count: ".$countsteps);
error_log(print_r($steps_array));
echo json_encode(array("comtype" => $comtype, "countsteps" => $countsteps, "steps" => $steps_array));
} else {
//error
}
}
在php 错误日志中:
[2017 年 8 月 28 日 11:25:32 UTC] 计数:1 [2017 年 8 月 28 日 11:25:32 UTC] 1
虽然我知道的计数是 2 行!!!
在ajax
$.ajax({
type:'POST',
url:'app/check.php',
data: {'ID':ID},
dataType: 'json',
success: function(value){
if (value.comtype== "0") {
$("#newC").show();
$("#hadC").hide();
} else {
var method;
var com;
com = "<div class='clearfix'></div><br><h3>old.</h3>";
com += "By Stpes: <br>";
for (i = 0; i < value.countsteps; i++) {
com += "Step " + Number(i)+1 + ": Greater Than " + value.steps_array['calfrom'] + " AND Less Than or Equal " + value.steps_array['calto'] + " Apply " + value.steps_array['calapl'] + " % <br>";
}
}
$("#hadC").html(com);
$("#hadC").show();
$("#newC").hide();
}
}
});
问题是: 1.我不知道如何将数据从while推入数组? 2.不知道怎么用ajax循环到这个数组里查看html div?
【问题讨论】:
-
首先停止使用
mysql_*的弃用+删除版本。转到mysqli_*或PDO(连同prepared statement以防止您的查询被SQL 注入)。对于当前代码,只能这样做:-if ($comtype==3){ $getsteps = mysql_query("SELECT id FROM steps WHERE id = $id"); $row = mysql_fetch_array($getsteps); $countsteps = count($row); echo json_encode(array("comtype" => $comtype, "countsteps" => $countsteps, "steps" => $row)); }
标签: ajax php php ajax html php jquery mysql arrays ajax