Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write 'WHERE' clause condition with AND in joomla 1.7? I have no data save for update

Please suggest how to write the following UPDATE query with AND in joomla.

Code:

$query = JFactory::getDbo()->getQuery(true);
$db =& JFactory::getDBO();
$query->update('table1');
$query->set('id = ' . $db->quote($idname));
$query->set ('day='. $db->quote($this->_day));
$query->set('id2 = ' . $id2);

$query->where('id = '. (int)$idname)
        AND('id2=' .(int)$id2 );

The update is unsuccessful and the error is something like this:

//........[something before ]....

array(3) {
    [0]=>
    string(11) "id = '1'"
    [1]=>
    string(14) "id2='2'"
    [2]=>
    string(17) "date = 2012-04-02"    [it seems i got all the value pass to be update]
  }
  ["glue:protected"]=>
  string(4) "
, "
}
["where:protected"]=>
object(JDatabaseQueryElement)#251 (3) {
  ["name:protected"]=>
  string(5) "WHERE"
  ["elements:protected"]=>
  array(1) {
    [0]=>
    string(14) "id = 2"  [where clause is ok  ...BUT with AND...]
  }
  ["glue:protected"]=>   
  string(5) " AND "
}
["group:protected"]=>  [something is wrong here...?]
NULL
["having:protected"]=>
NULL
["columns:protected"]=>
NULL
["values:protected"]=>
NULL
["order:protected"]=>
NULL
["autoIncrementField:protected"]=>
NULL
}
like image 832
Bew Promtong Avatar asked Jan 31 '12 04:01

Bew Promtong


2 Answers

I am not sure about Joomla update query but I think its something like this:-

$query->where('id = '. (int)$idname);
$query->AND('id2=' .(int)$id2 );

or:-

$query->where('id = '. (int)$idname . 'AND id2 = '.(int)$id2);
like image 197
jogesh_pi Avatar answered Oct 06 '22 01:10

jogesh_pi


You should use

$query->where('id = '. (int)$idname, 'AND')
      ->where('id2=' .(int)$id2 );
like image 33
Gaurav Avatar answered Oct 06 '22 01:10

Gaurav