MYSQL关联多个表后,PHP该如何提取其中数据?

我的数据库名称是:userweb数据库中有2张表格,分别是ul(登录信息)um(主要信息)2张表格都有一个username列现在用sql语句:select*fromul,... 我的数据库名称是:userweb
数据库中有2张表格,分别是ul(登录信息)um(主要信息)
2张表格都有一个username列
现在用sql语句:select * from ul,um where ul.username=um.username and ul.username='$username' 进行查询

我写的代码:
<?php
$con = mysql_connect('localhost','userweb','1234') or die('Fail!');//连接
mysql_select_db('userweb');//选择
$sql = "select * from ul,um where ul.username=um.username and ul.username='$username'";//查询语句
$result = mysql_query($sql);//执行语句
$row=mysql_fetch_array($result);//数组列出(这里报错)
$usernc=$row['usernc'];
if($username!==$row['username'] && $userpassword!==$row['userpassword'])
{
//失败
}else{
//成功
}

?>

一运行就报错了,不知道为什么,有高手可以为我耐心解答吗,并指出哪里出错了
那么多表关联时,正确的取数据代码应该怎样写?
展开
 我来答
醉丶春风丶
2016-09-03 · TA获得超过522个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:171万
展开全部

多表查询当然是使用 连接查询了,你可以把语句改写成这样的

$sql = "SELECT l.*,m.* FROM `um` as m LEFT JOIN `ul` as l ON m.username = l.username WHERE m.username = '{$username}'";

上面的语句是以 um表为主表的,如果你想用ul做为主表 

那就把 LEFT JOIN 换成 RIGHT JOIN 也就是右连接

渡沙津
2016-09-03 · 超过42用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:54万
展开全部
印象中php里面单引号里面的变量无法解析吧,你把
"select * from ul,um where ul.username=um.username and ul.username='$username'"

改成
"select * from ul,um where ul.username=um.username and ul.username= '" . $username . "'"
试一试。另外你应该找一下你的错误日志,看一下栈信息。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式