2009-07-06 7 views
0

私のアプリケーションにJQueryとCakePHPを使用しています。私はこのテーブルでは、テーブルAttributes(id,form_id,label,type)値の間にスペースがある場合の条件で使用するクエリ

を持って、私が持っている私はidform_id与えられた取得するために、CakePHPのクエリを書かれている

1 1 First name Text 
2 1 Lastname Text 

のようなエントリとlabel

$attri = $this->Attribute->find('all', array(
    'fields'=> array('Attribute.id'), 
    'conditions' => array(
     'Attribute.form_id' => $id, 
     'Attribute.label' => $key 
    ) 
)); 

$key私のlabel$idは私のform_idです。 しかし、ファーストネームにはスペースが含まれているため、条件がうまくいかなかったのですが、その間にスペースがないため、姓のために機能します。 これを修正するにはどうすればよいですか?

編集:

私はMySQLデータベースを使用しています。ユーザーはフィールド名をそのまま使用できます。 私は例えば、$ _POSTを使用して、フォームからのパラメータの$キーを得た:

foreach ($_POST as $key => $value): 
echo $key; //displays First name correctly. 

しかし、私は条件で$キーを使用するときに、何のスペースは、それが受け入れラベルの間にない場合にのみ、それは属性を返します。 idは返されません。

"$ key"を使って試したこともありますが、どちらもうまくいきません。

+0

なぜあなたの列にスペースがありますか?どのデータベースを使用していますか?私は最初の名前の間にアンダースコアを入れたり、最初の名前に変更することをお勧めします – jimiyash

+0

条件のスペースがうまくいかない理由は何もありません..どこからパラメータを取得しますか?彼らはurlencodedですか? –

+0

私はMYSQ1データベースを使用しています。ユーザーはフィールド名を何でも保持できます。 私はそれが$ _POST 例えば foreachの($ _POST $などのkey => $値)を使用してフォームを形成し得たパラメータ$キー: は$キーをエコー;正しく//最初に表示される名前を。 しかし、条件の中で$ keyを使用した場合、ラベルの間に空白がなく、id.Else属性は返されません。 – useranon

答えて

0

バグは、コードのどこかにある必要があります。条件に使用する値にスペースを入れても問題ありません。例については、this page in the CakePHP bookを参照してください。 CakePHPは自動的に値をエスケープして、スペースを入れても機能します。

あなたの属性モデルを見て、beforeFindコールバックまたはafterFindコールバックで何が起こるかを見てください。

関連する問題