2015-11-26 63 views
-1

我想通过使用getCity()函数来获得cit名称,但不幸的是它不适用于我。请帮忙。我可以在mysql select语句中使用Php函数吗?

$sql =(" 
    SELECT 
     distinct orders.id as 'Order Id', 
     users.email, 
     orders.price as 'Amount', 
     orders.at as 'Date and Time', 
     '".getCity($id)."' as 'CITY' 
    FROM users, orders, order_history, users_address 
    WHERE 
     users.id = order_history.uid 
     AND orders.id = order_history.oid 
     AND orders.real = 1 AND orders.price > 1 
     AND orders.payment_status = 1 AND orders.status = 1 
    ORDER BY orders.id; 
"); 
+0

你不能在SQL查询内使用PHP函数 –

+1

什么是getCity($ id)函数返回? –

+1

发布你的getCity函数它应该返回单个值。如果你正在获取数组,那么MySQL不能理解你的SQL查询。 –

回答

0

您只能使用此功能的结果是:

$result = getCity($id); 

$sql =(" 
    SELECT 
     distinct orders.id as 'Order Id', 
     users.email, orders.price as 'Amount', 
     orders.at as 'Date and Time', 
     '$result' as 'CITY' 
    FROM users, orders, order_history, users_address 
    WHERE users.id = order_history.uid 
     AND orders.id= order_history.oid 
     AND orders.real = 1 AND orders.price > 1 
     AND orders.payment_status = 1 AND orders.status = 1 
    order by orders.id; 
"); 

在这种情况下$result只能是字符串。始终是相同的字符串 - 对于可以从数据库中获取的每一行。

如果$result将作为列的名称,则应在您的查询中将其放入'

+0

亲爱的Kampil P,非常感谢你的答复。但是.. $ result = getCity($ id); 它只有当我分配一个id到$ id变量时才起作用。我想获得每个用户的结果。他们有超过1000名用户。 这怎么可能? –

+0

你可以用连接构建查询 - 阅读它,尤其是'LEFT JOIN'。如果您向我展示表格的结构并确定您想要选择的内容,我可以尝试帮助您构建此查询。 –

相关问题