2009年3月23日星期一

PHP MySQL问题 left join 连select * from table_nem 都错误了 定界符 单引号

SQL code
select read.*,user.uname,category.cname from read left join user,category on read.uid=user.uid,read.cid=category.cid order by date desc limit 0,10


mysql中有三个表:
read
category
user

表read中有uid,cid和rid,rdate
表category中有cid,cname
表user中有uid,uname

现在就是要从read中选出所有的,但是要知道uid对应的uname,但是read表中只有uid,没有uname;还要获得cname,但是read表中只有cid,没有cname。
如何才可以选出来呢?


另外的就是我的一个SQL语句竟然是错误的:

SQL code
select * from read


显示的错误是如下的:

HTML code
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\newread.php on line 13


我的PHP代码是这样的:
PHP code
include_once("back/conn.php"); $query4="select count(*) as total from read"; echo $query4; $result4=mysql_query($query4); $totalnum=mysql_num_rows($result4);//总记录数为$totalnum


我该怎末做才可以选出呢?
另外我的这个代码是错误在了哪里呢?

----------------------------------------------------------------
 
 
解决办法:
SQL code
SELECT `read`.*,`user`.`uname`,`category`.`cname` FROM `read` LEFT JOIN `user` ON(`read`.`uid`=`user`.`uid`) LEFT JOIN `category` ON(`read`.`cid`=`category`.`cid`) LIMIT 0,10
 
read是保留关键字.加界定符就行了.我刚刚都忽略了这一点.
注意养成好的习惯.表和字段都加上界定符.
定界符就是ESC下面的那个符号,还有就是英文状态下的单引号!
 

没有评论: