2013-12-06 2 views
1

Привет ребята У меня есть код для обновления моей базы данныхОператор IF внутри массива PHP

$users = Sdba::table('tabusuarios'); 
$users->where('User_Id =', $User_Id); 
$data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> $User_Status, 'User_Perm'=> $User_Perm); 
$users->update($data); 

Моя проблема в том, что я хочу также обновить более 1 столбец, если это существует что-то вроде этого

if ($_POST["User_Password"]) $data = array('User_Password'=> saltSenha($_POST["User_Password"])); 

Так я хочу сделать все это togheter

Спасибо за любую помощь.

+0

Почему не только say 'if (! empty ($ _ POST ...)) {$ data ['User_Password'] = ...; } '? – cHao

ответ

1

Воспользуемся isset конструкции и сделать как этот

$users = Sdba::table('tabusuarios'); 
$users->where('User_Id =', $User_Id); 
$data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> $User_Status, 'User_Perm'=> $User_Perm); 

if(isset($_POST["User_Password"]) && !empty($_POST["User_Password"])) 
{ 
    $data['User_Password']=saltSenha($_POST["User_Password"]); 
} 

$users->update($data); 
+1

Спасибо, что работает отлично –

0
$users = Sdba::table('tabusuarios'); 
$users->where('User_Id =', $User_Id); 
if ($_POST["User_Password"]) { 
    $data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> $User_Status, 'User_Perm'=> $User_Perm, 'User_Password'=> saltSenha($_POST["User_Password"])); 
}else{ 
    $data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> $User_Status, 'User_Perm'=> $User_Perm); 
} 
$users->update($data); 
+0

Повторение сосет. : P – cHao

+0

хорошо сказано. возможности для улучшения всегда есть. девиз должен заставить новичка понять, как это сделать :) – Sanjeev

0

Просто сделай это:

$users = Sdba::table('tabusuarios'); 
$users->where('User_Id =', $User_Id); 
$data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> 

if ($_POST["User_Password"]){ 
    $data['User_Password'] = saltSenha($_POST["User_Password"]); 
} 

$User_Status, 'User_Perm'=> $User_Perm); 
$users->update($data); 
0

Просто установить массив базы $data, а затем, если $_POST["User_Password"] существует & является не пусто, просто добавьте это в массив? Пример, основанный на вашем коде ниже. Я считаю, что использование двойного механизма проверки на array_key_exists() в сочетании с !empty(trim()) является лучшим способом, чтобы убедиться, что вы не имеешь дело с данными барахла или непечатаемыми в проходной переменного как $_POST, $_REQUEST или $_GET:

$users = Sdba::table('tabusuarios'); 
$users->where('User_Id =', $User_Id); 
$data = array('User_Name'=> $User_Name, 'User_Email'=> $User_Email, 'User_Status'=> $User_Status, 'User_Perm'=> $User_Perm); 
if (array_key_exists("User_Password", $_POST) && !empty(trim($_POST["User_Password"])) { 
    $data['User_Password'] = saltSenha($_POST["User_Password"]); 
} 
$users->update($data); 
Смежные вопросы