Search code examples
phpmysqlzend-frameworkzend-db

need mysql query for multiple flags under one column in a table


i have a table name preferences under this there are multiple columns but i am interested in only two column that are user_preferences_name and user_preferences_status

Note plz in user_preferences_name column there are multiple flags like

user_preferences_name   user_preferences_status     phone_service_id 
    a                         1                          555
    b                         0                          456
    c                         0                          236
    d                         1                          122
    e                         1                          456
    f                         0                          777
    g                         0                          555
    h                         0                          888
    i                         1                          112
    .                         .                           .
    .                         .                           .
    .                         .                           .

there are many user_preferences_name i need only (a,b,f,q,w) and their respective user_preferences_status (1,1,0,1,0)

what i am doing basically is i am a creating a html form in which there are 5 different div i each div there are 2 radio buttons. for a:- if a user_preferences_status == 1 than enable radio button will be set other wise disable will be set same for 5 dive and radio buttons. what i try:

class Prefrances extends Zend_Db_Table{

function Get_User_Prefrences($phone_service_id){
    $DB = Zend_Db_Table_Abstract::getDefaultAdapter();
    $select = $DB->select()
         ->from('user_preferences' , array('user_preferences_name','user_preferences_value'))
         ->where('phone_service_id = ?', $phone_service_id)
         ->where('user_preferences_name = ?', 'a')
         ->where('user_preferences_name = ?', 'b')
         ->where('user_preferences_name = ?', 'f')
         ->where('user_preferences_name = ?', 'q')
         ->where('user_preferences_name = ?', 'w');
    return $select;
    }
}

result = no rows i think my logic is wrong can you plz guide me what i need here, general mysql query can also applicable i ll change it to zend


Solution

  • $select = $DB->select()
        ->from('user_preferences' , array('user_preferences_name','user_preferences_value'))
        ->where('phone_service_id = ?', $phone_service_id)
        ->where('user_preferences_name IN (?)', array('a', 'b', 'f', 'q', 'w'));