shamqu
2018-07-18 09:08
采纳率: 100%
浏览 12.7k

微信小程序 如何读取数据库中当前登录用户对应的数据,并列表显示

初学者想做一个反馈的小程序,目前已经完成了反馈页面(通过微信名作为用户名传递反馈信息到数据库)和PHP后台页面,现在想在小程序中添加一个类似于个人中心的页面,能查看当前登录的微信用户所提交的反馈。
目前只会全部显示列表,尝试了如下代码,但是提示没有定义nick _ name,请问下如何定义,代码如下:
my.js

Page({
  onLoad: function (res) {
     wx.request({
     url: 'https://www.xxx.cn/getlist.php?nickname='+nick_name, //连接服务器从表中查询出学生信息的接口   
     data:{
     },
    header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        console.log(res.data),
        that.setData({
          list: res.data,//将表中查询出来的信息传给list
        })
      }
  })
  },

data: {
  list: []  //将list的数据传到前台wxml页面中  
},

})

my.wxml

<view class="" wx:for="{{list}}" wx:key="nickname" date-id="{{item.nickname}}">  
   <view class="weui-cell">
       <view >
           <image src="https://www.xxx.cn/upload/{{item.filename}}"></image>
       </view>
           <view >
                <view class="userid"><text>微信名:{{item.nickname}}</text><text>工号:{{item.userid}}</text><text>姓名:{{item.username}}</text><text>提交时间:{{item.fbtime}}</text></view>

    <view class="username">反馈:{{item.userliuyan}}</view>
           </view>
   </view>
</view>

然后后台getlist.php如下:

 <?php
    //$name=$_GET["name"];//接收参数
    $hostname_conn = "xxx";
    $database_conn = "xxx";//自己建数据库名
    $username_conn = "xxx";
    $password_conn = "xxx";
    //连接MYSQL数据库
    $conn = mysqli_connect($hostname_conn, $username_conn, $password_conn,$database_conn)or trigger_error(mysqli_error(),E_USER_ERROR);
    if(!$conn){

        echo "连接不成功!";  
    }
    $nickname =isset($_GET['nickname'])?$_GET['nickname']:'';
    $sql = "SELECT * FROM test where nickname='$nickname'";
    mysqli_query($conn, "set names 'utf8'");
    $result = mysqli_query($conn, $sql);
    class Article{
        public $nickname;
        public $userid;
        public $username;
        public $userliuyan;
        public $filename;
        }
    $data = array();
    if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            $article=new Article();
            $article->nickname=$row["nickname"];
            $article->userid=$row["userid"];
            $article->username=$row["username"];
            $article->userliuyan=$row["userliuyan"];
            $article->filename=$row["filename"];

            $data[] = $article;

            }
            echo json_encode($data,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);//将请求结果转换为json格式

            }
  ?>

求大神救助,或者有没有其他方法能解决

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • shamqu 2018-07-18 09:30
    已采纳

    居然自己瞎捣鼓成了,把my.js代码换了,不过可能会有多余的,慢慢学了再优化

     const app = getApp();
    Page({
      onLoad: function (res) {
        console.log('onLoad');
        var that = this;
        //调用应用实例的方法获取全局数据
        app.getUserInfo(function (userInfo) {
          //更新数据
          that.setData({
            userInfo: userInfo
          })
        });
        wx.getUserInfo({
    success: function(res) {
        var userInfo = res.userInfo
        var nickname = userInfo.nickName
        console.log(res);
    },
        });
           wx.request({
             url: 'https://www.xxx.cn/getlist.php?nickname=' + this.data.userInfo.nickName, //连接服务器从表中查询出学生信息的接口   
         data:{
         },
        header: {
            'content-type': 'application/json'
          },
          success: function (res) {
            console.log(res.data),
            that.setData({
              list: res.data,//将表中查询出来的信息传给list
            })
          }
      })
      },
    
    data: {
      list: []  //将list的数据传到前台wxml页面中  
    },
    
    })
    
    
    打赏 评论
  • 椰子皮博客 2018-07-18 09:18

    用昵称是不可行的,因为存相同昵称,你要使用该用户的id来作为一个标识

    打赏 评论
  • mylwyou 2018-07-18 09:19

    你用户是怎么登陆的?应该有一个登陆接口吧,js调用登陆接口登陆成功后,把登陆的账号nick_name保存到cookie里,然后在你的my.js里就可以读取cookie里的nick_name的值

    打赏 评论
  • qq_34013791 2018-07-18 09:27

    nick_name的值应该是不行的,建议在用户第一次用微信登录的时候,生成一个不可重复用户id,用来对应每一个用户的信息,nick_name是会重复的,这样子就不能唯一指定一个用户信息。

    打赏 评论
  • 炎格 2018-07-18 09:41

    url: 'https://www.xxx.cn/getlist.php?nickname='+nick_name 这句里的nick_name未赋值? 这个变量的值从哪里来的?赋值下nick_name就可以了

    打赏 评论

相关推荐 更多相似问题