سلام
اگه منظورتون از string اینه که به صورت حروف ذخیره شده که امکانش فکر نکنم باشه ولی اگه نوع ستون جدولتون از نوع string باشه و توی خونه ها به صورت عدد باشه بر اساس ترتیب اعداد هر عدد مرتب میکنه یعنی اگه شما 25 و 205 داشته باشید عدد 25 بیشتر از 205 هست چرا؟ چون اعداد اولشون یکیه ولی عدد دومشون چون مال 25 میشه 5 و مال 205 میشه 0 پس 5 بیشتر از 0 هست یعنی به صورت افقی عمل میکنه مثل حروف
شما نوع ستون قیمت رو در جدول دیتابیس به حالت int تغییر بدید اوکی میشه و با دستور زیر میتونید از بیشتر به کمتر مرتب سازی کنید
$query->orderBy('price','desc')
@amin.webdesign
دقیقا منظورم این بود 25 رو بیشتر از 205 در نظر میگیره .اگه به صورت اینتیجر ذخیره کنم بعدا به مشکل برنمیخورم چون عددها خیلی زیادن؟
@saeedlovelorn2
همون string هم اضافه کنین میتونین مقایسه و مرتب سازی کنین
فرقی با int نداره
میخوام موقع select کردن به integer تبدیلشون بکنم چون محسابات هم میخوام باهاشون انجام بدم ,ولی به ی مشکلی برمیخورم اگه تو کنترلر ی حلقه ایجاد کنم و تمام قیمت ها رو به integer تبدیل کنم و باز توی ویو حلقه ی foreach بزنم .برفرض که با هیچ خطایی مواجه نشم،چطوری باید جمع و تفریق رو قیمت ها اعمال بکنم؟
اگر خیلی از بابت کارکرد پیشنهاد دوستان شک دارین روی یک کپی از همون دیتابیس عملیات انجام بدین و حالات مختلفو تست کنین اگر مشکلی مشاهده نشد رو دیتابیس اصلی پیاده کنید.
در محیط php گفته میشه اضافه کردن + به ابتدای هرمتغیر محتوای اون رو تبدیل به int میکنه ، یعنی
$myint=+$string
حسن این روش اینه که نیاز به هیچ تغییری در سمت دیتابیس ندارید، تنها محتوای قیمت رو از دیتابیس فراخوانی کنید و بعد از + کردن بعنوان یک int باهاش رفتار کنید..
https://www.php.net/manual/en/language.operators.arithmetic.php
@saeedlovelorn2
اصلا نیازی نیست توی php این کار رو بکنید
به هر حال ما هم در این زمینه کلی کار کردیم و صرفا تجربه خودم رو به شما منتقل کردم. شما میتونید توی دیتابیس نوع ستون قیمت رو به حالت INT یا اگه ارقام عددتون بیشتر بود میتونید روی BIGINT قرار بدید. هیچ مشکلی هم پیش نمیاد. به راحتی هم میتونید توی کوئری ها سورت بکنید. البته این رو هم بگم که اگه قیمتهاتون عدد اعشاری هم داشت میتونید به صورت decimal قرار بدید نوع ستون رو
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟