رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آی دی رکورد جدید (حل شد)
#1
سلام
آی دی رکودی رو که در حال ثبتش هستم رو با چه دستوری به دست بیارم؟
پاسخ
تشکر شده توسط:
#2
سلام

من هم دنبال این جواب بودم میخواستم عکس که آپلود میشه هم نام با آی دی رکورد جدید باشه از این روش استفاده کردم
نمیدونم حالا چقدر درست باشه اما کار میکنه

$image = Yii::app()->db->createCommand()->select('MAX(id) as max')->from('posts')->queryRow();

با کد بالا آخرین ای دی موجود در جدول posts را بدست آوردم و در نهایت

$image++

کد ای دی که قرار ثبت بشه

البته این کد ها برای فریمورک Yii میباشد اگر خود Query هم خواستی بگو بدم
پاسخ
تشکر شده توسط: hamid
#3
اینطوری اگه مثلا آخرین رکورد حذف بشه و بعدش یه رکورد جدید درج بشه به مشکل میخوریم.
پاسخ
تشکر شده توسط:
#4
رکوردی که درحال ثبت هستین رو نمیشه ولی بعد از ثبت با فیلد id بهش دسترسی دارین. روشی که گفتین هم مناسب نیست چون ممکنه در فاصله ای که شما ID رو خوندین و میخواین ثبت کنین، یک کاربر دیگه یه عکس آپلود کرده باشه و عکس شما روی عکس اون ذخیره بشه. اول رکورد رو ذخیره کنید و بعد عکس رو آپلود کنید. نهایتش اینه که اگه آپلود امکان پذیر نبود، رکورد رو حذف میکنید.
پاسخ
تشکر شده توسط: hamid , mehdi king
#5
این دو تا فرقشون چیه؟
model->oldPrimaryKey
و
model->PrimaryKey
پاسخ
تشکر شده توسط:
#6
oldPrimaryKey کلید اصلی هست که وقتی رکورد رو find کردین، داخلش قرار میگیره. primaryKey هم کلید جدیده. از oldPrimaryKey برای وقتی استفاده میشه که میخواین رکورد رو اصلاح کنید و کلید اصلی رو عوض کردین.
$model = Users::findByPk(1);
$user->id = 5;
$user->save(); // Now, framework uses $user->oldPrimaryKey (1) in WHERE clause to update user #1
پاسخ
تشکر شده توسط: hamid
#7
پس استاد با این روش میشه آی دی پستی که ذخیره شده رو بدست آورد ؟

if ($model->save()) {
    echo $model->id;
}
پاسخ
تشکر شده توسط:
#8
بله دقیقاً.
پاسخ
تشکر شده توسط: mehdi king




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