2009-05-09 2 views
1

У меня есть таблица (product_shoppingcart) с 4-мя столбцами:Как написать поисковый запрос, используя Kohana PHP?

id, product_id, shoppingcart_id, product_quantity. 

Я использую ORM Kohana в.

Я хочу написать поисковый запрос, который возвращает все строки, где столбец shoppingcart_id содержит 1 (например).

Я уже пробовал:

$arr = ORM::factory('product_shoppingcart')->where('shoppingcart_id',$shoppingcartID)->find_all(); 

, но это не работает.

Может ли кто-нибудь помочь мне?

+0

Что не работает примерно об этом? Я просто установил его, как вы написали, и я смог заставить его работать. Я подозреваю, что ваша модель может использовать «has_one» или какой-то другой атрибут. Не могли бы вы разместить свою модель? – Ambirex

+0

Кроме того, у вас есть профилировщик, подключенный к контроллеру? Таким образом вы можете увидеть SQL, который запущен. Вы можете попробовать запустить запрос в phpMyAdmin, чтобы просмотреть исходные результаты. – Ambirex

+0

Ambirex, он работает, но он возвращает только одну строку, а не многие из них. Я хочу получить, возможно, 10 строк, чей shoppingcart_id равен $ shoppingcartID. – Attilah

ответ

1

Ваш пример кода должен работать, но, возможно, проблема в том, что вы не перебираете свой результирующий набор?

$results = ORM::factory('product_shoppingcart') 
      ->where('shoppingcart_id', $shoppingcartID) 
      ->find_all(); 
foreach ($results as $product_shoppingcart) { 
    print Kohana::debug($product_shoppingcart->as_array()); 
} 

Если у вас есть более чем один ряд с этим идентификатором, это должно дать вам результат итератор в $ результатах, которые вы затем ходить с петлей Еогеаспа. У меня есть много примеров аналогичного рабочего кода, если вы все еще не можете заставить его работать.

0

Не должен ли ваш стол быть «product_shoppingcarts» или я что-то упускаю?

+0

Вы можете установить $ table_name = 'product_shoppingcart'; в пределах модели, если ваша таблица называется чем-то другим. – Ambirex

1

Вот что это будет выглядеть так:

$arr = ORM::factory('product_shoppingcart')->where(
        'shoppingcart_id',"=",$shoppingcartID)->find_all(); 
Смежные вопросы