Ajax和PHP数据库怎么获取指定数据

Ajax和PHP数据库怎么获取指定数据

问题描述:

比如前端页面里有个文章页面,每个文章都有一个唯一id,当我点击目标文章的时候Ajax传id到PHP,然后PHP要怎么写才能获取到那个字段的内容,因为那个字段的内容可能不止id,可能还有图片链接啊,文章内容啊,昵称啊,发布时间啊等等这些,请指点。

简单示例代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

img

list.php,列表页

<meta charset="utf-8">
<table border='1'>
<?php
$conn=mysqli_connect("localhost","root","123456","test");
mysqli_query($conn,"set names utf8");
$sql = "SELECT uid,title,addtime FROM index_vido";
$res = mysqli_query($conn ,$sql);
if(mysqli_num_rows($res)>0){
  while($row = mysqli_fetch_assoc($res)){
     echo "<tr><td><a target='_blank' href=\"detail.php?id={$row['uid']}\">{$row['title']}</a></td><td>{$row['addtime']}</td></tr>";
  }
}
else echo "<tr><td>找不到uid为{$getUid}的记录</td></tr>";
?>
</table>
<div id="content"></div>
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
$('a').click(function(){
$('#content').load(this.href)
return false;
});
</script>

detail.php,详细页面

 <?php
$getUid=$_GET["id"];///获取参数
$conn=mysqli_connect("localhost","root","123456","test");
mysqli_query($conn,"set names utf8");

$sql = "SELECT * FROM index_vido WHERE uid='$getUid'";
$res = mysqli_query($conn ,$sql);
if(mysqli_num_rows($res)>0){
  $row = mysqli_fetch_assoc($res);
  echo "标题:".$row["title"]."<br>";
  echo "添加时间:".$row["addtime"]."<br>";
  echo "内容:".$row["content"]."<br>";
}
else echo "找不到uid为{$getUid}的记录";
?>

参考这个网站。

你跳转页面的时候,把id传过去,js获取到id以后,然后发请求去获取详情

既然AJAX传递的,这个就看你的AJAX是怎么弄的了,假设你的AJAX是这样的:

<a href="javascritp:" class="searchBtn" value="文章id">文章标题</a>

<div id="content"></div>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".searchBtn").click(function(){
      var id=$(this).attr('value');//你点击获取到的文章id
        $.ajax({
            type:"GET",
            url:" https://www.xxx.com/showart.php?id="+id,
            dataType:"json",
            success:function(data){
                if(data.code==1){
                          alert('获取到数据');  
                     $("#content").html('标题为:'+data.data.title+'<br>发布时间为:'+data.data.addtime+'<br>内容为:'+data.data.content); 
                           console.log(data.data);
               }else{
                    alert('没有获取到数据');                        
              }
            },
            error:function(jqXHR){
                console.log("Error: "+jqXHR.status);
            }
        });
    });
});
</script>

那么你的showart.php代码参考如下:

<?php
$getUid=intval($_GET["id"]);///获取参数
$conn=mysqli_connect("localhost","root","123456","test");
mysqli_query($conn,"set names utf8");
$sql = "SELECT * FROM index_vido WHERE uid='$getUid'";
$res = mysqli_query($conn ,$sql);
if(mysqli_num_rows($res)>0){
  $row = mysqli_fetch_assoc($res);
  $showart['title']  = urlencode($row["title"]);//标题
  $showart['addtime']  = urlencode($row["addtime"]);//addtime
  $showart['content']  = urlencode($row[content"]);//content
  $dataList['code'] = 1; // 状态标志,表示获取到数据
  $dataList['data'] =$showart;
}
else{
    $showart=array();
     $dataList['code'] = 0; // 状态标志,表示没有获取到数据
      $dataList['data'] =$showart;
}

 exit(urldecode(json_encode($dataList)));
?>