Ajax取得数据库的json值,想通过id获取对应信息,但是都默认获取第二条的全部数据了

php:

<?PHP
    header("Content-Type: text/html; charset=utf-8");

    include('conn.php');//链接数据库

    $sql = 'select * from article where id';
    $res = mysqli_query($conn,$sql);
    $data = array();
    $arr['count']=mysqli_num_rows($res);
    while ($row = mysqli_fetch_array($res,MYSQLI_ASSOC)){
        $arr['data'][] = $row;
    }
    echo json_encode($arr);
?>

ajax:

//编辑的id获取数据库数据
$(document).ready(function(){
    function getUrl(name){
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
        var r = window.location.search.substr(1).match(reg);  //匹配目标参数
        if (r != null) return unescape(r[2]);
        return null; //返回参数值
    }
    var id = getUrl('edit_id');
    console.log('id:' + id);
    $.ajax({
        url : "./php/edit.php",//后台请求的数据,用的是PHP
        type : "post",//请求方式
        data : {edit_id:id},
        async : false,//是否异步请求
        success : function(data) {
            var res = JSON.parse(data);
            for(let i=0;i<res.count;i++){
                var art_name = res.data[i].article_name;
                console.log(art_name);
                $("#art_name").val(art_name);
            }
        },
    })
})

前端console.log输出:

id:8

测试1

测试2

前端图:

图片说明

图片说明

对两个div获取数据库内容进行测试,想通过编辑对应id获取相对应的内容,我用for循环获取到的两个article_name,分别是测试1和测试2,并不是id:8对应的单独测试1,而且val出来的内容是测试2,怎么能准确的获取对应的内容?

$sql = 'select * from article where id ='.你要的id ;
你那么写,自然返回所有的数据了

通过id查询,首先你的有个触发事件,比如点击,然后获取到这个id,再通过ajax什么的传给后台,在后台获取到这个id,再通过这个id去查询,然后返回结果