2013-06-20 53 views
1

在我的网站上,我有一个下拉列表,用于测量不同单位。一个人可以填写他的剂量,然后选择一个单位,然后提交表格。在我单位的表我也有一个转换领域我需要通过一个下拉列表传递三个值

units 
id | unit | conversion 
1 | g | 1000 

我想通过与选择的Dropbox领域相关的转换价值,所以,在我的控制器,我保存前,我可以加倍重视自己的“剂量”与转化价值。问题是我不知道如何实际获得转化价值。我试着运行一个find()来选择与单元id相匹配的值,但似乎我的find甚至没有返回任何结果。它看起来像这样

$this->Unit->find('first', 
array(
    'conditions' => array(
     'unit' => $this->request->data['RecordDrugUnit']['unit_id']), 
    'fields' => array('conversion') 
)); 

然后我做

$this->request->data['RecordDrugUnit']['dose'] = (int)$this->request->data['RecordDrugUnit']['dose'] * (int)$this->request->data['Unit']['conversion']; 

发现

$conv_val = $this->Unit->find('first', 
     array(
      'conditions' => array(
       'id' => $this->request->data['RecordDrugUnit']['unit_id']), 
      'fields' => array('conversion') 
      )); 
     $this->request->data['RecordDrugUnit']['dose'] = (int)$this->request->data['RecordDrugUnit']['dose'] * (int)$conv_val['Unit']['conversion']; 

回答

1

这种转换是更好地做PHP。

从数据库表可见填充你的单位下拉:table_id的SERIAL,单位CHAR(5),转换(FLOAT),那么你可以这样做:

$u=mysqli_real_escape_string($mysqlidb,$_POST['unit']) 
SELECT conversion from unittable WHERE unit ='$u'; 

我真的不建议你做这个尽管如果这个系统将用于医疗目的。您应该使用包含预先连接的药物名称,剂量和形式的经批准的数据库,否则肯定会犯错误。

有一些合适的dbs可用,或者你可以随时创建自己的dbs。

+0

问题是我使用cakephp,我不认为我可以做到这一点流畅。或者我错了? – user2444539

+0

不能帮助蛋糕,对不起。我只是编辑专业版的代码,不使用任何库。这一定是可能的。也许问一个关于如何在蛋糕中做mysql的问题...... –

相关问题