php查询最近执行的sql,php – 在另一个SQL查询中执行SQL查询

该博客讲述了如何在PHP网站中结合MySQL数据库查询,从Gravatar服务获取并显示用户个人资料图片。作者遇到的问题是,虽然查询了数据库获取用户邮箱,但无法正确显示用户头像。解决方案是通过调整SQL查询,使用LEFT JOIN合并两个表,从而在同一个查询中获取用户信息和帖子信息。这样可以避免多次调用$db变量导致的问题。
摘要由CSDN通过智能技术生成

好吧,我认为标题不是最好的标题,但让我解释一下我的问题:我正在创建一个需要显示人物帖子的网站(无论如何),我必须显示他们的重力图片的个人资料图片,所以这是什么我做了:

function get_gravatar( $email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array() ) {

$url = 'https://www.gravatar.com/avatar/';

$url .= md5( strtolower( trim( $email ) ) );

$url .= "?s=$s&d=$d&r=$r";

if ( $img ) {

$url = ''%20.%20%24url%20.%20'

foreach ( $atts as $key => $val )

$url .= ' ' . $key . '="' . $val . '"';

$url .= ' />';

}

return $url;

}

require("db.php");

$sql = "SELECT * FROM posts ORDER BY date DESC";

foreach ($db->query($sql) as $row) {

// var_dump($row);

$user = $row['user_id'];

$sql_user = "SELECT email FROM users WHERE id = $user";

foreach ($db->$sql_user as $row_user) {

var_dump($row_user);

echo "%5C%22%22.get_gravatar(%24row_user%5B'email'%5D).%22%5C%22";

}

echo "

".$row['title']."


";

echo "

".$row['content']."


";

}

但是,它不起作用(嗯,它的工作原理,但它没有显示用户的个人资料图片,只显示了帖子).

所以,我认为问题是我不能同时调用变量$db的2倍,但我不确定,所以这就是为什么我在问是否有办法解决我的问题或同时选择2个表.

解决方法:

你可以缩短你的逻辑

$sql="SELECT u.email "

. "FROM posts AS p "

. "LEFT JOIN users AS u "

. "ON u.id=p.user_id "

. "ORDER BY p.date DESC";

标签:php,mysql,sql-server,web,backend

来源: https://codeday.me/bug/20190527/1164375.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值