رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل این کیوری چیه که چیزی برنمیگردونه؟
#1
سلام دوستان


مشکل این کیوری چیه که هیچ مقداری برنمیگردونه؟
$selectAttempt= Attempts::model()->findAll(array(
    'select'=>'COUNT(*)',
    'condition'=>'ip=:Ip',
          'params'=>array(
                  ':Ip'=>$_SERVER['REMOTE_ADDR'],
           ),
));
وقتی اینجوری مینویسم مقادیرو دارم:
$selectAttempt= Attempts::model()->findAll(array(
    'select'=>'ip',
    'condition'=>'ip=:Ip',
          'params'=>array(
                  ':Ip'=>$_SERVER['REMOTE_ADDR'],
           ),
));

متشکرم
پاسخ
تشکر شده توسط:
#2
من با این model کوئری زدن شما زیاد آشنا نیستم، نمیدونم ولی فکر میکنم باید توی کوئری بعد از count بنویسی as total و بعد
کد پی‌اچ‌پی:
$row['total'
رو بگیری.
راستی این همون لینک دومیه که من بهت دادم رو داری ادیت میکنی، نه؟
چون منم همین الان دارم همین سیستم login attempt رو پیاده میکنم، کدوم لینک که بهت دادم بهتر بود؟ اولیه که انگار خیلی قدیمی بود الان که خودم نگاه کردم
پاسخ
تشکر شده توسط: abdollah110110
#3
من این کارو کردم و مشکل حل شد:
$selectAttempt= Attempts::model()->findAll(array(
        'select'=>'ip',
        'condition'=>'ip=:Ip',
         'params'=>array(
               ':Ip'=>$_SERVER['REMOTE_ADDR'],
          ),
));
$count= count($selectAttempt);
آره این همونه و دارم برا Yii بازسازی میکنم.
لینک دوم بهتر بود.
پاسخ
تشکر شده توسط: php
#4
اینطوری کار کنید:
$selectAttempt = Attempts::model()->count('ip=:ip', array(':ip' => $_SERVER['REMOTE_ADDR']));
پاسخ
تشکر شده توسط: php , abdollah110110
#5
بازم مشکل در این کیوری:
Attempts::model()->deleteAll('ip=:Ip AND when<=:When',array(':Ip'=> $_SERVER['REMOTE_ADDR'], ':When'=> time()+1800));
نقل قول:خطای CDbCommand در اجرای SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'when<=1435828845' à la ligne 1. The SQL statement executed was: DELETE FROM `attempts` WHERE ip=:Ip AND when<=:When
پاسخ
تشکر شده توسط:
#6
when رو داخل `` نوشتم مشکل حل شد:
Attempts::model()->deleteAll('ip=:Ip AND ‍`when`<=:When',array(':Ip'=> $_SERVER['REMOTE_ADDR'], ':When'=> time()+1800));
پاسخ
تشکر شده توسط:
#7
از شناسه های داخلی و دستوری MySQL بعنوان اسامی فیلدها و جداول و دیتابیس و... استفاده نکنید. درصورتی که اینکار رو انجام بدین، مجبورین توی کوئریها اسامی فیلدها و... رو توی Backquote و مقادیر رو توی SingleQuote بگذارین تا با دستورات و شناسه های خودش اشتباه نگیره.
پاسخ
تشکر شده توسط: abdollah110110 , بیتا_حکمت




کاربران در حال بازدید این موضوع: 1 مهمان