2013-02-22 3 views
0

Я новичок в CakePHP, как писать под SQL запроса в CakePHPCakePHP получить данные из БД

$sql = "SELECT * FROM `user` WHERE `email` = '" . $email . "' AND `password` = '" . $password . "'"; 

$result = mysql_query($sql, $connection); 

while($fetchdata = mysql_fetch_assoc($result)){ 
    echo $fetchdata['name']; 
} 

Пожалуйста, помогите мне Спасибо

+0

читать документы CakePHP –

+2

почему это даже помечено CakePHP? – mark

+0

coz Мне нужно знать, как писать нормальный код mysql в cakephp. Я упоминаю об этом по моему ответу – iswan

ответ

1

Для вашего запроса:

<?php 

$this->loadmodel('User'); 
$result = $this->User->find('first',array('conditions' => array('email' => $email, 
'password' => $password))); 
foreach($result as $row) 
{ 
    //do whatever you want to do 

} 
?> 
+0

Ваш код не правилен, вам нужно пропустить «после пользователя», и он хочет, чтобы все результаты не только сначала –

+0

Спасибо, это была опечатка. Я починил это. И для первого/всего, пожалуйста, загляните в запрос. Для этих типов запросов всегда должно быть только одно электронное письмо с комбинацией паролей. Но все же есть варианты, чтобы получить все, а не сначала. Надеюсь, теперь я ясно – kidz

1

В вашем Пользовательском контроллере вы можете сделать что-то вроде:

$this->set('user',$this->User->find('all', array ('conditions' => array('email' => $email, 'password' => $password)))); 

А на ваш взгляд

foreach ($user as $us) { 
    echo($us['name']); 
//your code 
} 
1

Использование CakePHP find способ сделать это.

<?php 

    $users = $this->User->find('first',array 
    (
     'conditions' => array 
     (
      'User.email' => $email, 
      'User.password' => $password 
     ) 
    )); 

    pr($users); 
    exit; 

?>

я добавил pr($users);exit; для отладки результата запроса.

Вы также можете передать recursive, limit, order и т.д. наряду с методом находят подробнее о find в cakephp

0

Если вы находитесь в Users Controller, то это не является необходимым для загрузки вашей модели и связать свою базу данных. Если вы обращаетесь к Модели пользователей из другой модели, загрузите свою модель пользователя в свой контроллер. Вы загружаете вашу модель двумя способами

$this->loadmodel('User'); 
or 
public $uses = array('User'); 
$results = $this->User->find('all',array('conditions' => array('email' => $email,'password' => $password))); 
$this->set(compact('results ')); 

теперь ваш взгляд использования файла этот

foreach ($results as $users) { 
    echo h($users['User']['email']); 
    echo h($users['User']['password']); 
} 
Смежные вопросы