function stationcost($station1,$station2)
{
$data = array();
$this->db->select('Zone')->from('station_zone')->where('Station', $station1);
$Q = $this->db->get();
$this->db->select('cost')->from('zone_cost')->where('zone', $Q);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data = $row->Cost;
return $data;
}
}
}
如果我将$ Q更改为整数,则该函数可以正常工作。我还要添加另一个电台来减去差值以计算区域差异
将名称转换为区域 $ station2 - $ station1 ='calculatedfigure'
然后从zone_cost中选择成本,其中zone ='calculcated figure';
我的错误讯息:
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
SELECT `cost` FROM (`zone_cost`) WHERE `zone` =
Filename: models/station_model.php
Line Number: 59
我试过这个
$this->db->select('Zone')->from('station_zone')->where('Station', $station2);
$S2 = $this->db->get();
$this->db->select('Zone')->from('station_zone')->where('Station', $station1);
$S1 = $this->db->get();
$Q = $S2 - $S1;
答案 0 :(得分:2)
问题是变量$Q
不包含有效值,可能是因为$station1
中传递的值在数据库中不存在。我原以为CI会通过至少使用空引号字符串来解决这个问题,但显然不是。
在将$Q
传递给where()
之前,您需要验证num_rows()
是否包含合理的值。例如,另一个$Q
检查会告诉您第一个查询是否找到了任何内容。
此外,您需要传递来自$Q->row()->Zone
的字段数据,而不仅仅是对象。所以在你的情况下,{{1}}。
答案 1 :(得分:0)
$Q
是一个包含一些字段的对象,在这种情况下只有一个字段:Zone
。请检查CodeIgniter Query results