Zend_Db &

3 Cevap php

Ben dönüştürerek ciddi bir sorun yaşıyorum benim hayır şans yaşıyorum gibi, birisi ona bir çatlak olabilir ... zend paginator ile çalışacak bir şey içine bir bildirimde 'seçeneğini' ...

İşte benim sorgu:

$query = "SELECT
        	user_id, name, gender, city, province, country, image_id, one_liner, self_description, reputation
          FROM
        	users
          WHERE
          (
        	(69.1 * (latitude - " . $user->latitude . ")) * 
        	(69.1 * (latitude - " . $user->latitude . "))
          ) + ( 
        	(69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3)) * 
        	(69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3))
          ) < " . pow($radius, 2) . " 
          ORDER BY 
          (
                (69.1 * (latitude - " . $user->latitude . ")) * 
        	(69.1 * (latitude - " . $user->latitude . "))
          ) + ( 
        	(69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3)) * 
        	(69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3))

İşte ben bugüne kadar ne var:

		$select = $db->select();
		$select->from(
			array('users'),
				array(
						'user_id', 
						'name', 
						'gender', 
						'city', 
						'province', 
						'country', 
						'image_id', 
						'one_liner', 
						'self_description', 
						'reputation'
					)
		);
		$select->where("(69.1 * (latitude - " . $user->latitude . ")) * (69.1 * (latitude - " . $user->latitude . "))) + ((69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3)) * (69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3))) < " . pow($radius, 2));
		$select->order("(69.1 * (latitude - " . $user->latitude . ")) * (69.1 * (latitude - " . $user->latitude . "))) + ((69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3)) * (69.1 * (longitude - " . $user->longitude . ") * COS(" . $user->latitude . " / 57.3))) ASC");

3 Cevap

Neden var "<" maddesi tarafından sırayla?

Ne bu Zend_Paginator ile ne ilgisi var? Ah, sorgu var ve onunla bir sayfa numaralarını nasıl bilmiyorum, ya da paginator bu sorgu ile çalışmıyor?

Görebildiğim tek şey her iki where() ve order() deyimine de bir parantez açma eksik olduğunu:

$select->where("((69.1 * [...] ");
$select->order("((69.1 * [...] ");
                 ^

SQL sorgusu hataları vardır çünkü Yani belki Zend_Paginator çalışmıyor?

Ve tabii ki ben sormak zorundayım: Bu değişkenlerin güvenli interpolating konum, ya da gerçekten kullanıyor olmalıdır $db->quote($user->latitude, Zend_Db::FLOAT_TYPE)?

Bu iş, MVC-desen kullanarak değil varsayarak?

Lütfen bootstrap in:

Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');

sizin denetleyicisi:

$page = Zend_Paginator::factory($select);
$page->setCurrentPageNumber($this->_getParam('page', 1));
$page->setItemCountPerPage($this->_getParam('par', 20));
$this->view->results= $page;

Sizin görüşünüze göre:

<?php foreach($this->results as $result) : ?>
    <!-- print some $result stuff here -->
<?php endforeach;?>
<?= $this->results ?>

then place a pagination.phtml example that you can find on zend manual -Lo