我正在处理以下从数据库中提取信息的代码。
这就是我想要的代码:
这是代码:
$id = mysql_real_escape_string(@$_GET['uid']); // get user ref #
$imgid = mysql_real_escape_string(@$_GET['img']); // get img ref #
$query = mysql_query("SELECT mypage.*, img.*
FROM img
JOIN mypage ON img.user = mypage.user WHERE mypage.id = '$id'");
if ((mysql_num_rows($query) == 0)) {
header("location:page.php?uid=$id");
die(mysql_error());
} else {
while($rows = mysql_fetch_array($query)) {
$img = $rows['img'];
$pfname = $rows['pfname'];
$plname = $rows['plname'];
$puser = $rows['puser'];
$description = $rows['description'];
$ppid_image_name = $rows['ppid_image_name'];
}
当我运行代码时,我能够打印出正确的结果。问题是获取URL部分。
假设网址为http://www/profile.php?uid=5&img=4...
img = 4,引用的图片属于用户,是的,此图片会在通话时显示。
如果img = 5,则此引用的图像不属于但是它显示在用户下方,但在查询结果时不显示。
如果img = 12,数据库中不存在的参考图像编号,则会出现错误而不是重定向。
我似乎主要遇到网址的主机部分问题。 &img=ref#
我不确定问题是否在这里:if ((mysql_num_rows($query)==0))
。
我试过if ((mysql_num_rows($query)!=imgid)) redirect
,但这不起作用。
我做错了什么?
答案 0 :(得分:0)
1)您的查询中存在错误,使用左连接而不是加入
mysql_query("SELECT mypage.*, img.*
FROM img
LEFT JOIN mypage ON img.user = mypage.user WHERE mypage.id = '$id'");
2)测试一下:
while($rows = mysql_fetch_array($query)) {
$img = $rows['img'];
$pfname = $rows['pfname'];
$plname = $rows['plname'];
$puser = $rows['puser'];
$description = $rows['description'];
$ppid_image_name = $rows['ppid_image_name'];
}
if (!isset($img)) {
header("location:page.php?uid=$id");
die(mysql_error());