שאילתא בוורדפרס

tsachi2301

New member
שאילתא בוורדפרס

היי מה המצב,
יש לי בעיה עם הצגת הנתונים מוורדפרס
בניתי שאילתא אפשר לראות אותה בעמוד הזה
http://coolinnovationsbeta.com/bga/

אם תורידו את כל ה checkboxesתראו את הטבלה
מתי שאני מנסה לבצע סינון על ידי בחירה מרובה מקטגוריות שונות החיפוש לא מחזיר כלום

זאת השאליתא
SELECT SQL_CALC_FOUND_ROWS wp_posts.*,
mtb1.meta_value AS p_data_sheet,
mtb2.meta_value AS p_length,
mtb3.meta_value AS p_rank, mtb4.meta_value AS p_shape FROM wp_posts INNER JOIN wp_postmeta AS mtb1 ON ( wp_posts.ID = mtb1.post_id AND mtb1.meta_key = 'fox_pro_data_sheet' ) INNER JOIN wp_postmeta AS mtb2 ON ( wp_posts.ID = mtb2.post_id AND mtb2.meta_key = 'fox_pro_length' ) INNER JOIN wp_postmeta AS mtb3 ON ( wp_posts.ID = mtb3.post_id AND mtb3.meta_key = 'fox_pro_rank' ) INNER JOIN wp_postmeta AS mtb4 ON ( wp_posts.ID = mtb4.post_id AND mtb4.meta_key = 'fox_pro_shape' ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id AND mt1.meta_key = 'fox_pro_bga' ) INNER JOIN wp_postmeta AS mt2 ON ( wp_posts.ID = mt2.post_id AND mt2.meta_key = 'fox_pro_shape' ) INNER JOIN wp_postmeta AS mt3 ON ( wp_posts.ID = mt3.post_id AND mt3.meta_key = 'fox_pro_material' ) INNER JOIN wp_postmeta AS mt4 ON ( wp_posts.ID = mt4.post_id AND mt4.meta_key = 'fox_pro_configuration' ) WHERE wp_posts.post_type = 'product' AND wp_posts.post_status = 'publish' AND( CAST(mt1.meta_value AS CHAR) = '1' AND CAST(mt2.meta_value AS CHAR) IN ('square') AND CAST(mt3.meta_value AS CHAR) IN ('copper','aluminum') AND CAST(mt4.meta_value AS CHAR) IN ('splayed','moderate') ) GROUP BY p_data_sheet ORDER BY p_length, p_shape DESC, p_rank LIMIT 0,10

מתי שאני משתמש במחלקה WP_Query
זאת השאילתא והתוצאות כן חוזרות
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id )
INNER JOIN wp_postmeta AS mt2 ON ( wp_posts.ID = mt2.post_id )
INNER JOIN wp_postmeta AS mt3 ON ( wp_posts.ID = mt3.post_id )
INNER JOIN wp_postmeta AS mt4 ON ( wp_posts.ID = mt4.post_id ) WHERE 1=1 AND ( wp_postmeta.meta_key = 'fox_pro_length' AND ( ( mt1.meta_key = 'fox_pro_bga' AND CAST(mt1.meta_value AS CHAR) = '1' ) AND ( mt2.meta_key = 'fox_pro_shape' AND CAST(mt2.meta_value AS CHAR) IN ('square') ) AND ( mt3.meta_key = 'fox_pro_material' AND CAST(mt3.meta_value AS CHAR) IN ('copper','aluminum') ) AND ( mt4.meta_key = 'fox_pro_configuration' AND CAST(mt4.meta_value AS CHAR) IN ('splayed','moderate') ) ) ) AND wp_posts.post_type = 'product' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 ASC LIMIT 0, 10
 

tsachi2301

New member
בהמשך לבעיה

היי
מתי שאני מריץ את השאילתא על ה DB
אני כן מקבל תוצאות

כאילו הפונקציה של וורדפרס לא מעבירה את ה SQL שאני מעביר לה
$results = $wpdb->get_results($sql);

 

tsachi2301

New member
בהמשך לבעיה

היי אני מצטער שאני כל רגע מעלה משהו חדש
פשוט הפרטים מאוד חשובים

העלתי את האתר על ה LOCALHOST שלי ושם התוצאות כן חוזרות
כאילו משהו ב DB של החברה הזאת לא תקין
תודה

 

tsachi2301

New member
הבעיה נפתרה

היי הבעיה נפתרה
ככל הנראה היתה הגבלה של joinאים ל db
הוספת השאילתא
$wpdb->get_results("SET SQL_BIG_SELECTS=1");
לפני השאילתא הגדולה פותרת את הבעיה
 
למעלה