2011-01-29 19 views
6

मैं CodeIgniter में काम करने के लिए इस क्वेरी पाने के लिए कोशिश कर रहा हूँ, लेकिन यह एक त्रुटि बाहर थूकना है क्वेरी: यदि मैं सीधे MySQL यह ठीक काम करता है क्वेरी डालCodeIgniter MySQL काम नहीं कर रहा

A Database Error Occurred Error Number: 1096

No tables used

SELECT *

(मैं $ की जगह मूल्यों के साथ चर)। कोडिनेटर में इनपुट के रूप में क्वेरी यहां दी गई है:

$this->db->query(" 
    SELECT * 
    FROM writing_quests 
    LEFT OUTER JOIN members_quests_completed 
    ON members_quests_completed.quest_id = writing_quests.id 
    WHERE writing_quests.level_required <= $userlevel 
    AND ( 
     members_quests_completed.user_id = $user_id 
     OR 
     members_quests_completed.user_id IS NULL)" 
); 
$query = $this->db->get(); 

क्या मैं कुछ गलत कर रहा हूं और मुझे याद आ रही है? यदि समस्या कहीं और है तो मैंने पूरे फ़ंक्शन कॉल को शामिल किया है? मैंने इस समस्या को बिना किसी मुद्दे के कई बार किया है।

function get_all_quests_for_user() { 
    $user_id = $this->session->userdata('user_id'); 
    $userlevel = $this->session->userdata('user_level'); 

    $this->db->query("SELECT writing_quests.id, writing_quests.points_availible, writing_quests.name, writing_quests.note, writing_quests.instructions, writing_quests.time_limit, members_quests_completed.location_completed, members_quests_completed.status FROM writing_quests LEFT OUTER JOIN members_quests_completed ON members_quests_completed.quest_id = writing_quests.id WHERE writing_quests.level_required <= '$userlevel' AND writing_quests.unlocked = 1 AND (members_quests_completed.user_id = '$user_id' OR members_quests_completed.user_id IS NULL)"); 
    $query = $this->db->get(); 
    $this->db->last_query(); 
    return $query->result(); 
} 
+1

शायद सीआई के 'क्वेरी()' विधि पंक्ति विराम पसंद नहीं है। – BoltClock

+0

धन्यवाद बोल्टक्लॉक। मैंने बिना किसी कोशिश की है। मेरे पास लाइन ब्रेक के साथ लिखे गए प्रश्न भी हैं जो काम करते हैं। – JoeM05

उत्तर

5
 
SELECT writing_quests.*, (put needed fields from members_quests_completed) 
FROM writing_quests 
LEFT JOIN members_quests_completed .... 

समान फ़ील्ड नामों परिणाम वस्तु में परिणाम स्तम्भ के नाम भ्रष्ट

FYI करें यह * उपयोग करने के लिए बुद्धिमान नहीं, तो आप फ़ील्ड की सूची होनी चाहिए ...
और क्या सबसे महत्वपूर्ण है:

 
$result = $this->db->query (...); 

$ this-> db-> क्वेरी (...) अच्छा है जब सम्मिलित या अपडेट करें (अधिकतर), तो आप खींच डेटा चर के लिए परिणाम आवंटित जब: http://codeigniter.com/user_guide/database/results.html

+0

एक फ़ील्ड सूची, एक ही परिणाम, एक ही त्रुटि जोड़ा गया। यह mysql कमांड लाइन में ठीक काम करता है। – JoeM05

+0

यह mysql – bensiu

+0

हाँ के साथ ठीक काम करेगा, यह mysql में ठीक काम करता है। यही कारण है कि मैं बहुत उलझन में हूँ। – JoeM05

6

मुझे लगता है कि इस तरह से किया जाना चाहिए:

$query = $this->db->query(" 
SELECT * 
FROM writing_quests 
LEFT OUTER JOIN members_quests_completed 
ON members_quests_completed.quest_id = writing_quests.id 
WHERE writing_quests.level_required <= $userlevel 
AND ( 
    members_quests_completed.user_id = $user_id 
    OR 
    members_quests_completed.user_id IS NULL)" 
); 

या:

$query = $this->db->get('mytable'); 
+0

विकल्प 1 का दूसरा भाग काम करने लग रहा था। धन्यवाद! – JoeM05

संबंधित मुद्दे