پارس جوم ::  انجمن های تخصصی جوملا
درخواست راهنمایی برای یه دستور جوملا - نسخه‌ی قابل چاپ

+- پارس جوم :: انجمن های تخصصی جوملا (https://forums.parsjoom.ir)
+-- انجمن: پشتیبانی (/forum-70.html)
+--- انجمن: مباحث و مشکلات عمومی (/forum-33.html)
+--- موضوع: درخواست راهنمایی برای یه دستور جوملا (/thread-17457.html)



درخواست راهنمایی برای یه دستور جوملا - mrt69 - ۱۶-۱۲-۱۳۹۳ ۰۸:۰۲ عصر

با سلام

من برای کامپوننت یه فیلتر تقویم درست کردم و در آن پارامتری به نام $search2 وجود دارد که توسط کاربر وارد می شود مثلا به صورت 2013-04-14 ورودی می گیرد

کاری که من می خواهم بکنم این است که دستور بدهم مطالبی که تاریخ created آنها بیشتر از تاریخ پارامتر $search2 است منتشر شود


وقتی کد را به شکل دستی زیر می نویسم مطالب بعد از تاریخ 2013-04-14 نمایش داده میشود
کد php:
$query->where("(a.created > '2013-04-14')"); 

ولی وقتی به شکل زیر می نویسم هیچ نتیجه ای نمی دهد (اروری هم نمی دهد )

کد php:
$query->where("(a.created > '$search2')"); 


معرفی و شناسایی پارامتر را هم به درستی انجام دادم و با دستور

کد php:
    echo $search2

چاپ وروردی را به درستی دارم ولی در کد کوئری نتیجه نمی دهد
به شکل های مختلف با قراردادن نقطه یا جا به جا کردن نقل قول هم تست کردم ولی نتیجه نداشت

کسی می دونه مشکل از چیه و کد به چه صورتی باید باشد که درست نمایش دهد


کل تیکه کدم هم برای این قسمت به شکل زیر که باید خط اخرش تغیر کنه :


کد php:
        $search2 $this->getState('filter.search2');
        
        echo 
$search2;
        
        if (!empty(
$search2)) {
            if (
stripos($search2'id:') === 0
            {
            
                   
$query->where('a.id = '.(int) substr($search23));
            }
            elseif (
stripos($search2'author:') === 0
            {
                
$search2 $db->Quote('%'.$db->escape(substr($search27), true).'%');
                
$query->where('(ua.name LIKE '.$search2.' OR ua.username LIKE '.$search2.')');
            }
            else 
            {
                
$search2 $db->Quote('%'.$db->escape($search2true).'%');
               
$query->where("(a.created > '2013-04-14')"); 


با تشکر


RE: درخواست راهنمایی برای یه دستور جوملا - sajjad salehi - ۱۶-۱۲-۱۳۹۳ ۰۸:۲۵ عصر

از دستور echo استفاده کنید .
دقت کنید که نوع دستور اسکیوال رشته ی متنیه و مقادیر از به صورت ساده منتقل نمیشن
کدی که شما میفرتید الان اینه .
کد:
where a.created > $search2
شما میتونید از کدی مثل
echo "$r ";
البته بهتره این طوری بنویسید .
کد:
$query->where($db->quoteName('name')." = ".$db->quote($user_name));