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 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记