소셜 엔진 4 용 모듈 내에있는 위젯을 개발하는 동안 쿼리에서 "조인"을 사용하려고합니다. Dreamweaver에서 작업하고 있습니다. 나는이 작업 코드를 대체하는 것을 시도하고있다 :젠드 사회 엔진 4 위젯에서 참여하기
//creates query to get user's region
$select = $db->select();
$select->from("engine4_user_fields_search");
$select->where("item_id = ?", $user_id['user_id']);
$stmt = $db->query($select);
$result = $stmt->fetchAll();
그때 긴 경우 - 다른 체인을 사용해야합니다, 추가하고 결과를 얻기 위해 "매직 넘버"를 사용하여 인덱스에서 빼서.
가입을 사용하면 모든 작업을 수행 할 필요가 없습니다. 간단한 쿼리를 사용하여 결과를 표시 할 수 있습니다. 내가 일하고있는 위젯은 탭 컨테이너에 있으므로 문제가 발생할 때마다 (내가 조인을 사용할 때마다) 전체 탭이 사라지고 문제가 디버깅됩니다.
<?php
class Widget_RegionalBreakingNewsController extends Engine_Content_Widget_Abstract
{
public function indexAction()
{
//connect to DB
$file = APPLICATION_PATH . '/application/settings/database.php';
$options = include $file;
$db = Zend_Db::factory($options['adapter'], $options['params']);
$select = new Zend_Db_Select($db);
$db->getConnection();
//end DB setup
$user_id = Engine_Api::_()->user()->getViewer();
//SELECT * FROM engine4_user_fields_search as s
//join engine4_user_fields_options as o
//WHERE item_id = <current user's ID> AND s.field_7+22 = o.option_id
$select = $db->select();
$select->from(array('s' => 'engine4_user_fields_search'),
array('s.field_7', 's.user_id'))
->joinInner(array('o' => 'engine4_user_fields_options'),
's.field_7+22 = o.option_id');
$select->where("s.item_id = ?", $user_id['user_id']);
$stmt = $db->query($select);
$result = $stmt->fetchAll();
//print_r($result);
이 젠드와 개발 첫 주이기 때문에, 심지어 오류의 간단한 해고하지 않습니다 여기에
내가 가진 것입니다. 나는 차이를 만들 수있는 간단한 규칙을 모르는 경향이 있습니다. 누구든지 도움을 제공 할 수 있다면 감사하겠습니다.
추 신 : Zend Zend select 함수를 사용하지 않고 정규 SQL 문을 수행 할 수 있습니까?
$select->from(array('s' => 'engine4_user_fields_search'),
array('s.field_7', 's.user_id'))
당신은 두 개의 열을 선택로 이야기하고 내가 무엇을 생각하지 않는 (SELECT s.field_7, s.user_id FROM ...
에 해당) :
세 테이블에 참여하고있는 예이다. 그러나 문제는 있지만 문제는 아니라고 말했습니까? 오류가 있습니까? 또는 쿼리가 예상 한 결과를 반환하지 않습니까? –
문제는 코드의 "조인"버전을 사용할 때 위젯이 보이지 않는다는 것입니다. 나는 그것이 어떤 종류의 오류 때문에 있다고 생각합니다. 데이터베이스에서 직접 쿼리를 테스트하고 잘 작동합니다. Dreamweaver, 브라우저 오류 콘솔 또는 SE 제어판 오류 로그에 알릴 수있는 오류는 없습니다. 감사합니다 .--) – am71722