2013-03-07 71 views
1

我怎样才能让这样的事情(添加一些SELECT命令):PHP的MySQL添加*到SELECT语句

$query = "SELECT a.name,a.surname,b.email,c.phone 
      FROM users as a 
      inner join users_email as b 
      inner join users_phone as c 
      WHERE a.id=b.id AND a.id=c.id"; 

$query .= "ORDER BY a.surname"; 

$result = mysql_query($query,$con); 

结果应该是:

$query = "SELECT a.name,a.surname,b.email,c.phone 
      FROM users as a 
      inner join users_email as b 
      inner join users_phone as c 
      WHERE a.id=b.id AND a.id=c.id 
      ORDER BY a.name"; 

$result = mysql_query($query,$con); 
$row=mysql_num_fields($result) 

...但它给出了一个错误:mysql_num_fields()预计参数1是资源,在布尔C中给出:\ XAMPP便携\ htdocs中\分贝\ file.php在线路32 ...

+0

当你在你的代码中使用mysql_query时,为什么会说'mysql_num_fields()'? – 2013-03-07 13:14:13

+0

你不应该再使用mysql,试试PDO或Mysqli – 2013-03-07 13:26:59

+0

我的错误...我编辑过。 – wwwglro 2013-03-07 13:34:01

回答

4

要给出space当你concate查询。

$query = "SELECT a.name,a.surname,b.email,c.phone 
      FROM users as a 
      inner join users_email as b 
      inner join users_telefon as c 
      WHERE a.id=b.id AND a.id=c.id "; 

$query .= " ORDER BY a.prenume"; 
      ^

也有一个练习mysql_error()

$result = mysql_query($query,$con) or die(mysql_error()); 

注:Please, don't use mysql_* functions in new code。他们不再维护and are officially deprecated。请参阅red box?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial。空间后

WHERE a.id=b.id AND a.id=c.id"; 

所以

+0

好赶Rikesh。 :) – 2013-03-07 13:15:59

+0

就是这样......谢谢。 – wwwglro 2013-03-07 13:50:55

+0

如果我想要做更多动态的事情,比如:'$ query。=“ORDER BY”。 $ _GET ['orderby']。 ;'??? – wwwglro 2013-03-07 13:58:06

0

它应和

$query .= " ORDER BY a.prenume order(asc/desc)"; 

$query .= "ORDER BY a.prenume"; 

insetad,你需要之前,为了给空间BY

+0

这没有任何意义,mysql默认为ASC。此外,这个错误对应于其他的东西(mysql_num_fields) – 2013-03-07 13:12:34

+0

而且我写它给空间也....? – Gautam3164 2013-03-07 13:17:07

2

添加它应该是:

WHERE a.id=b.id AND a.id=c.id "; 
2

试试这个:

$query = "SELECT a.name,a.surname,b.email,c.phone 
      FROM users as a 
      inner join users_email as b 
      inner join users_telefon as c 
      WHERE a.id=b.id AND a.id=c.id"; 

$query .= " ORDER BY a.prenume"; 

$result = mysql_query($query,$con); 

一个 '空间' 是单前,需要通过

1
$query = "SELECT a.name,a.surname,b.email,c.phone 
      FROM users as a 
      inner join users_email as b ON a.id=b.id 
      inner join users_telefon as c ON a.id=c.id 
      ORDER BY a.name";