douganggu4392 2019-04-21 17:36
浏览 166
已采纳

使用php从while循环语句中的不同表中获取值

I'm having an issue of retrieving values from two different tables. Here's the code so far:

$result = mysqli_query($conn,"SELECT * FROM articles");
$num = mysqli_num_rows($result);

while ($row = mysqli_fetch_array($result)) {
    $uid=$row['_uid'];

    $result2 = mysqli_query($conn, "SELECT _username FROM users WHERE _id = '$uid' ";
    $num2 = mysqli_num_rows($result2);

    while ($row2 = mysqli_fetch_array($result2)) {
        $username = $row2['_username'];
    }
    $divtext='<h3>'.$row['_posttype'].'</h3> <h2>'.$username.' </h2>';
}    

I've been reading that I should preform this while inside a while with multiple query, also found on w3 that you could directly assign a value to a variable directly using:

"SELECT _username INTO $username FROM users WHERE  _id = '$uid'  LIMIT 1";    

But this works in SQL inside myadmin, in a php I can't find how to cast it. I have also replace the fetch_row for fetch_assoc and still nothing, im struggling for two days already with this.

  • 写回答

1条回答 默认 最新

  • dssu33392 2019-04-21 17:44
    关注

    you could select al the value using a single query

    SELECT a._uid , a._posttype, u._username 
    FROM articles a
    INNER JOIN users u on a._uid = u._id 
    

    ..

    $result = mysqli_query($conn,
      "SELECT a._uid , a._posttype, u._username 
      FROM articles a
      INNER JOIN users u on a._uid = u._id");
    $num = mysqli_num_rows($result);
    
    while ($row = mysqli_fetch_array($result)) {
    
        $divtext='<h3>'.$row['_posttype'].'</h3> <h2>'.$username.' </h2>';
    
    }  
    
    $echo $divtext;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化