php+sql:数据表与字段关联的问题,在线等!

情况是这样的,一个网页中,有两个记录集:new(article)和title(category)【括号中的是数据表名称】,其中new的sql语句是这样的:$colname... 情况是这样的,一个网页中,有两个记录集:new(article)和title(category)【括号中的是数据表名称】,其中new的sql语句是这样的:
$colname_new = "-1";
if (isset($_GET['aid'])) {
$colname_new = $_GET['aid'];
}
mysql_select_db($database_bqme, $bqme);
$query_new = sprintf("SELECT title, cid, content, adddate FROM article WHERE aid = %s", GetSQLValueString($colname_new, "int"));
$new = mysql_query($query_new, $bqme) or die(mysql_error());
$row_new = mysql_fetch_assoc($new);
$totalRows_new = mysql_num_rows($new);
很明显这是一个url变量,
而我现在要绑定title记录集中的一个字段“name”,条件是title记录集所在的表中的另一个字段“cid”值要等于此页面的new记录集中的“cid”的值,也就是SELECT name FROM category WHERE cid =【article. cid】请问这要如何实现?中括号中是我胡编的,希望高手们可以明白我要表达的意思!万分感谢!
展开
 我来答
mx2999981
2011-11-21
知道答主
回答量:2
采纳率:0%
帮助的人:3万
展开全部
select c.name from category as c left join article as a on c.cid = a.cid
你是想要联合查询吧 这sql里是两个表用左连接 根据 两个表共有的 cid字段 进行查询的 查到的结果就是 category表的name字段 也可以吧 c.name 换成其他字段或者*
望采纳!
追问
谢谢高手,还有一个不懂,就是我只要取article表中aid=$_GET['aid']那条记录的cid值来关联category中的cid!我上图,红色背景的是表名,蓝色背景的是字段,然而假设上一个网页传递给这个网页的URL变量为2(...?aid=2),那么也就是绿色背景那行,对应的cid值为11,在跨表联合查询到下面category表中的cid=11那行,name字段值为AA,这样我绑定在网页中的name字段即显示为AA!在这次假设中AA便是我要得到的name字段的值!
iostream210
2011-11-21 · TA获得超过912个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:381万
展开全部
上面的代码有一些没有上下文,我无法给你解释;
$colname_new = "-1"; //....

//如果url有传递aid,则把aid赋给$colname_new
if (isset($_GET['aid'])) {
$colname_new = $_GET['aid'];
}

//选择数据库
mysql_select_db($database_bqme, $bqme);

//打印出sql语句,并把sql语句赋给$query_new; 这个GetSQLValueString函数应该是你自定义函数
//经过这一句应该能得到一个完整sql查询;
$query_new = sprintf("SELECT title, cid, content, adddate FROM article WHERE aid = %s", GetSQLValueString($colname_new, "int"));

//查询得到结果,
$new = mysql_query($query_new, $bqme) or die(mysql_error());
$row_new = mysql_fetch_assoc($new);

//结果总数
$totalRows_new = mysql_num_rows($new);

如果你还是执行[category]表中的name字段;
$sql = "select * FROM category where cid = ".$row_new['cid'];

也建议你采用left join 查询;
select c.name from category as c left join article as a on c.cid = a.cid

刚又看了你的贴图:
给你一段完整的代码吧
$query_new = "select c.name , a.* from category as c left join article as a on c.cid = a.cid where a.aid = ".$_GET['aid'];
mysql_select_db($database_bqme, $bqme);
$new = mysql_query($query_new, $bqme) or die(mysql_error());
$row_new = mysql_fetch_assoc($new);
print_R($row_new);exit; //测试输出,就是你要的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fchxchs
2011-11-21 · 超过12用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:30.3万
展开全部
$Rs=mysql_fetch_array($totalRows_new);
SELECT name FROM category WHERE cid =$Rs["cid"];
不知道是不是想问这样来查到另外一个表的name字段。。
追问
本人自学菜鸟,高手可为我解释一下代码原理吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式