ای بابا
ببخشین من اشتباه نوشتم
متد find هست
function find($conditions = null, $fields = array(), $order = null, $recursive = null) {
if (!is_string($conditions) || (is_string($conditions) && !array_key_exists($conditions, $this->_findMethods))) {
$type = 'first';
$query = array_merge(compact('conditions', 'fields', 'order', 'recursive'), array('limit' => 1));
} else {
list($type, $query) = array($conditions, $fields);
}
$this->findQueryType = $type;
$this->id = $this->getID();
$query = array_merge(
array(
'conditions' => null, 'fields' => null, 'joins' => array(), 'limit' => null,
'offset' => null, 'order' => null, 'page' => null, 'group' => null, 'callbacks' => true
),
(array)$query
);
if ($type != 'all') {
if ($this->_findMethods[$type] === true) {
$query = $this->{'_find' . ucfirst($type)}('before', $query);
}
}
if (!is_numeric($query['page']) || intval($query['page']) < 1) {
$query['page'] = 1;
}
if ($query['page'] > 1 && !empty($query['limit'])) {
$query['offset'] = ($query['page'] - 1) * $query['limit'];
}
if ($query['order'] === null && $this->order !== null) {
$query['order'] = $this->order;
}
$query['order'] = array($query['order']);
if ($query['callbacks'] === true || $query['callbacks'] === 'before') {
$return = $this->Behaviors->trigger($this, 'beforeFind', array($query), array(
'break' => true, 'breakOn' => false, 'modParams' => true
));
$query = (is_array($return)) ? $return : $query;
if ($return === false) {
return null;
}
$return = $this->beforeFind($query);
$query = (is_array($return)) ? $return : $query;
if ($return === false) {
return null;
}
}
if (!$db =& ConnectionManager::getDataSource($this->useDbConfig)) {
return false;
}
$results = $db->read($this, $query);
$this->resetAssociations();
if ($query['callbacks'] === true || $query['callbacks'] === 'after') {
$results = $this->__filterResults($results);
}
$this->findQueryType = null;
if ($type === 'all') {
return $results;
} else {
if ($this->_findMethods[$type] === true) {
return $this->{'_find' . ucfirst($type)}('after', $query, $results);
}
}
}
$options=array('joins' => array(
array(
'conditions' => array(
'Profile.user_id = User.id'
),
'table' => 'profiles',
'alias' => 'Profile',
'type' => 'left',
),
),
'limit' => '10',
'offset' => '5',
);
$data=$this->find('all',$options');
من ی برنامه واسه کارام نوشتم تا حدودی جواب گوی نیاز ها هست
که اسم جدول رو بهش میدی
یک فایل که یک کلاس داره با متد های Select,insert,update و...
رو داره طبق همون جدولی که بهش دادیم.
یک کلاس دیتابیس هم داریم که کلاس اولی متد هارو میده به کلاس دیتابیس و اجرا میکنه
من فقط صدا میزنم متد هارو
مثلا
CONTENT_class::content_list_Insert($_POST['title'], $_POST['post_editor'], $_POST['cat_Name'], time(), substr( $_POST['tags'],-strlen($_POST['tags'])+1,strlen($_POST['tags'])))
اما بعضی وقتا نیاز به یک کوئری دارم که باید مستقیم خودم بدم به دیتابیس چراکه متدی ندارم به مشخصات رو بدم و کوئری رو بسازه ! یعنی داینامیک باشه
$this->MessageArshive=Database::Execute_Query("SELECT m1.id, m1.title, m1.timestamp, count( m2.id ) AS reps, users.id AS userid, users.username
FROM messages AS m1, messages AS m2, users
WHERE (
(
m1.user1 =:myid
AND m1.user1read = 'yes'
AND users.id = m1.user1
)
OR (
m1.user2 =:myid
AND m1.user2read = 'yes'
AND users.id = m1.user1
)
)
AND m1.id2 = '1'
AND m2.id = m1.id
GROUP BY m1.id
ORDER BY m1.id DESC",array (':myid' => $_SESSION['userID']));
نیاز به یک تابع مثل همین find دارم که من مشخصات رو بدم و خودش کوئری رو بسازه ! اما چجوریش رو موندم ! که به چه شکل بنویسم که انواع کوئری رو بسازی با توجه به پارامتر ها
رفتم سراغ کیک اما چیزی نفهمیدم ! این الان داره چجوری کوئری رو میسازه !؟