/
  • مشکل collations ها در هنگام کار با دیتابیس

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل collations ها در هنگام کار با دیتابیس
    نویسنده پیام
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #1
    Question مشکل collations ها در هنگام کار با دیتابیس
    سلام
    وقتی داده های فارسی رو در دیتابیس میخوام سلکت کنم به ارور زیر بر میخورم
    کد PHP:
    #1271 - Illegal mix of collations for operation 'like' 
    مشکل چیه؟
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۹۱ شهريور ۱۸ ۰۱:۱۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    molana آفلاین
    چالیست - chalist
    *******

    ارسال‌ها: 1,764
    تاریخ عضویت: ۱۳۸۷ آذر ۳۰
    اعتبار: 60
    تشکرها : 1644
    ( 1550 تشکر در 1015 ارسال )
    ارسال: #2
    RE: مشکل collations ها در هنگام کار با دیتابیس
    کد سلکت کردنت رو بزار عزیزم
    __________________________________________________________________________
    همه جوره اش رو داریم ظاهرن
    ۱۳۹۱ شهريور ۱۸ ۰۱:۴۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #3
    RE: مشکل collations ها در هنگام کار با دیتابیس
    (۱۳۹۱ شهريور ۱۸ ۰۱:۴۹ عصر)molana نوشته شده توسط:  کد سلکت کردنت رو بزار عزیزم
    کاملش رو پایین گذاشتم.
    یکم بیشتر که بررسی کردم دیدم اگر در سلکت، فیلدهایی باشن که Collation اشون متفاوت باشه این ارور رو خواهم گرفت.
    مثلا اگر در شرط جستجو فیلد datetime هم باشه این ارور دریافت میشه.
    و از اونجایی که کوئری سلکت رو من تولید نمیکنم نمیتونم این فیلدها رو حذف کنم (اصلا کاربر شاید بخواد زمان رو هم جستجو کنه)
    راه حل چیه؟


    کد PHP:
    select vtiger_invoice.invoice_no,vtiger_invoice.subject,vtiger_invoice.salesorderid,vtiger_invoice.invoicestatus,vtiger_invoice.total,case when (vtiger_users.user_name not like ''then CONCAT(vtiger_users.first_name,' ',vtiger_users.last_name) else vtiger_groups.groupname end as user_name ,vtiger_crmentity.crmid,vtiger_contactdetails.contactid,vtiger_account.accountid FROM vtiger_invoice INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid vtiger_invoice.invoiceid INNER JOIN vtiger_invoicebillads ON vtiger_invoice.invoiceid vtiger_invoicebillads.invoicebilladdressid INNER JOIN vtiger_invoiceshipads ON vtiger_invoice.invoiceid vtiger_invoiceshipads.invoiceshipaddressid LEFT JOIN vtiger_currency_info ON vtiger_invoice.currency_id vtiger_currency_info.id LEFT OUTER JOIN vtiger_salesorder ON vtiger_salesorder.salesorderid vtiger_invoice.salesorderid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid vtiger_invoice.accountid LEFT JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid vtiger_invoice.contactid INNER JOIN vtiger_invoicecf ON vtiger_invoice.invoiceid vtiger_invoicecf.invoiceid LEFT JOIN vtiger_groups ON vtiger_groups.groupid vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id vtiger_crmentity.smownerid WHERE vtiger_invoice.invoiceid 0  AND vtiger_crmentity.deleted 0  and (vtiger_invoice.subject LIKE '%شرکت%' OR vtiger_invoice.salesorderid LIKE '%شرکت%' OR vtiger_invoice.customerno LIKE '%شرکت%' OR vtiger_invoice.contactid LIKE '%شرکت%' OR vtiger_invoice.invoicedate LIKE '%شرکت%' OR vtiger_invoice.duedate LIKE '%شرکت%' OR vtiger_invoice.purchaseorder LIKE '%شرکت%' OR vtiger_invoice.adjustment LIKE '%شرکت%' OR vtiger_invoice.salescommission LIKE '%شرکت%' OR vtiger_invoice.exciseduty LIKE '%شرکت%' OR vtiger_invoice.subtotal LIKE '%شرکت%' OR vtiger_invoice.total LIKE '%شرکت%' OR vtiger_invoice.taxtype LIKE '%شرکت%' OR vtiger_invoice.discount_percent LIKE '%شرکت%' OR vtiger_invoice.discount_amount LIKE '%شرکت%' OR vtiger_invoice.s_h_amount LIKE '%شرکت%' OR vtiger_invoice.accountid LIKE '%شرکت%' OR vtiger_invoice.invoicestatus LIKE '%شرکت%' OR vtiger_crmentity.smownerid LIKE '%شرکت%' OR vtiger_crmentity.createdtime LIKE '%شرکت%' OR vtiger_crmentity.modifiedtime LIKE '%شرکت%' OR vtiger_invoice.currency_id LIKE '%شرکت%' OR vtiger_invoice.conversion_rate LIKE '%شرکت%' OR vtiger_invoicebillads.bill_street LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_street LIKE '%شرکت%' OR vtiger_invoicebillads.bill_city LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_city LIKE '%شرکت%' OR vtiger_invoicebillads.bill_state LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_state LIKE '%شرکت%' OR vtiger_invoicebillads.bill_code LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_code LIKE '%شرکت%' OR vtiger_invoicebillads.bill_country LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_country LIKE '%شرکت%' OR vtiger_invoicebillads.bill_pobox LIKE '%شرکت%' OR vtiger_invoiceshipads.ship_pobox LIKE '%شرکت%' OR vtiger_crmentity.description LIKE '%شرکت%' OR vtiger_invoice.terms_conditions LIKE '%شرکت%' OR vtiger_invoice.invoice_no LIKE '%شرکت%' OR vtiger_crmentity.modifiedby LIKE '%شرکت%'
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۹۱ شهريور ۱۸ ۰۱:۵۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    amenocy آفلاین
    امین عباسی
    ***

    ارسال‌ها: 173
    تاریخ عضویت: ۱۳۸۹ دي ۱۳
    اعتبار: 4
    تشکرها : 61
    ( 102 تشکر در 76 ارسال )
    ارسال: #4
    RE: مشکل collations ها در هنگام کار با دیتابیس
    چرا باید datetime رو با like انتخاب کنی ؟
    __________________________________________________________________________
    Idea

    Apkmafia Android apk download blog
    ۱۳۹۱ شهريور ۱۸ ۰۲:۰۰ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #5
    RE: مشکل collations ها در هنگام کار با دیتابیس
    دارم روی یک cms کار میکنم
    برای جستجو کاری که میکنه اینه که تمام جداول رو فیلدهاش رو با کوئری میکشه بیرون و دوباره برای هرکدوم یک کوئری مثل کوئری ای که در بالا گذاشت تولید میکنه .یعنی در تمام فیلدهای جداول میگرده دنبال کارکترهای مورد نظر کاربر
    اگر بخوام این فرایند رو تغییر بدم و بصورت دستی جستجو رو راه اندازی کنم، یعنی دونه دونه کوئری ها رو ایجاد کنم کار خیلی زمان بری هستش.

    بهترین راه اینه که این ارور رو رد کنم یک طوری.
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۹۱ شهريور ۱۸ ۰۲:۰۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    amenocy آفلاین
    امین عباسی
    ***

    ارسال‌ها: 173
    تاریخ عضویت: ۱۳۸۹ دي ۱۳
    اعتبار: 4
    تشکرها : 61
    ( 102 تشکر در 76 ارسال )
    ارسال: #6
    RE: مشکل collations ها در هنگام کار با دیتابیس
    ببین اون طوری که من فهمیدم شما فیلد اعداد و زمان و کلا" همه چیز رو با لایک جستجو میکنی ! خب اینطوری نمیشه که . ضمنا" برای جستجو لازم نیست که همه فیلد ها رو جستجو کنی . بعدشم مثلا" برای زمان کاربر چی باید وارد کنه که جستجو درست کار کنه ؟! نمیشه اصلا" اینجوری ...
    __________________________________________________________________________
    Idea

    Apkmafia Android apk download blog
    ۱۳۹۱ شهريور ۱۸ ۰۲:۰۹ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #7
    RE: مشکل collations ها در هنگام کار با دیتابیس
    فقط زمان نیست
    داخل cms ده ها جدول و صد ها فیلد مختلف مثل آی دی و شماره تلفن و چیزهای دیگه هستش
    که کاربر با جستجوی کارکترهای دلخواه میتونه همزمان تمام اونها رو بگرده
    و اینکه جستجو برای داده های انگلیسی درست انجام میشه ولی همین که کاربر کلمات فارسی وارد میکنه این اشکال پیش میاد
    [تصویر:  i455236_search.png]
    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۹۱ شهريور ۱۸ ۰۲:۱۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    parsbin آفلاین
    امیرحسین تیموری
    ***

    ارسال‌ها: 120
    تاریخ عضویت: ۱۳۸۸ آبان ۲۲
    اعتبار: 0
    تشکرها : 26
    ( 7 تشکر در 7 ارسال )
    ارسال: #8
    RE: مشکل collations ها در هنگام کار با دیتابیس
    خوب مجبور شدم تاریخ ها رو از این نوع جستجو حذف کنم
    برای این کار از این شیوه استفاده کردم

    کد PHP:
    $result_myconn mysql_query("SHOW FIELDS FROM $tablename WHERE Field = '$columnname'" $myconn);
    while (
    $row mysql_fetch_assoc($result_myconn)) {
        
    $type $row['Type'];

    if(
    $type!='date' and $type!='datetime'){
        if(
    strstr($listquery,$tablename)){
            if(
    $where != ''){
                
    $where .= " OR ";
            }
        
    $where .= $tablename.".".$columnname." LIKE '"formatForSqlLike($search_val) ."'";

    __________________________________________________________________________
    وب سایت
    آموزش VOIP - Asterisk - Freeswitch
    ۱۳۹۱ شهريور ۱۸ ۰۴:۰۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS