PDA

View Full Version : ایجاد پست ثابت



tem988
دوشنبه 02 اسفند 1389, 14:58 عصر
سلام
من 100 تا پست دارم و اونا رو با کوئری پایین لیست کردم



mysql_query("SELECT * FROM posts ORDER BY id desc")

میخوام تو قسمت ارسال پست یک قسمت باشه به نام پست ثابت و اگر تیکشو زدم اون پست بیاد اول و بقیه پست ها به همون ترتیبی که بود
مثلا اگر پست 5 رو تیکشو بزنم بیاد اول و بقیه پست ها به همون ترتیب کوئری زیرش
لطفا راهنمایی کنید

mtchabok
دوشنبه 02 اسفند 1389, 21:19 عصر
چند تا راه حل داره ...
- یکی اینکه یه فیلد به جدولت اضافه کنی با عنوان static و به صورت boolean هم تعریفش کن که پستهایی که ثابت هستن وقتی تیکشو زدی در همین فیلد 1 قرار بگیره و در غیر اینصورت 0 و در پایان هم برای لیست کردن از این کوئری استفاده کن :

mysql_query("SELECT * FROM posts ORDER BY static desc, id desc")

- روش دیگه هم میتونی از تاریخ استفاده کنی که به پستهای ثابتت تاریخ آینده دور رو بدی و کوئری برای لیست شدن رو هم به این صورت بدی :

mysql_query("SELECT * FROM posts ORDER BY time desc")

موفق باشی

numberone1
دوشنبه 02 اسفند 1389, 21:28 عصر
چند تا راه حل داره ...
- یکی اینکه یه فیلد به جدولت اضافه کنی با عنوان static و به صورت boolean هم تعریفش کن که پستهایی که ثابت هستن وقتی تیکشو زدی در همین فیلد 1 قرار بگیره و در غیر اینصورت 0 و در پایان هم برای لیست کردن از این کوئری استفاده کن :

mysql_query("SELECT * FROM posts ORDER BY static desc, id desc")

- روش دیگه هم میتونی از تاریخ استفاده کنی که به پستهای ثابتت تاریخ آینده دور رو بدی و کوئری برای لیست شدن رو هم به این صورت بدی :

mysql_query("SELECT * FROM posts ORDER BY time desc")

موفق باشی
ببخشيد من تو تاپيك ايشون ميپرسم
اين روش دومي كه گفتيد چجوري ميشه ؟ من درست متوجه نشدم ميشه يكم توضيح بيشتر بديد؟
مثلا ميخوام 1 ماه اين پست بصورت ثابت بالا باشه چجوري ميشه مرتب كرد؟

mtchabok
دوشنبه 02 اسفند 1389, 21:44 عصر
شما فقط کافیه که تاریخ پستتون رو برای یک ماه دیگه بزارید تا به صورت دائم تا یه ماه دیگه هر پستی که میدید از پست ثابتتون پائینتر قرار میگیره ...
این روش هم برای تاریخ به صورت timestamp و هم به صورت datetime به خوبی کار می کنه .
امتحان کنید .

tem988
دوشنبه 02 اسفند 1389, 22:16 عصر
سلام ممنون این کدت کار کرد
اون روش دومی که گفتی رو من کامل نفهمیدم چون میخوام امکان پست به اینده هم بزار
میتونی کل کاملش رو برام بزاری با شرط هاش
چون باید شرط بزاری اگر به زمانش رسید ارسال بشه
ممنون میشم

mtchabok
دوشنبه 02 اسفند 1389, 22:59 عصر
روش دومی رو که گفتم برای همون پست ثابت بود ولی برای پست های نمایش در آینده هم میتونید از این کوئری استفاده کنید :

mysql_query("SELECT * FROM posts where time<='".date('Y-m-d H:i:s')."' ORDER BY static desc, id desc")
البته نوع فیلد time در جدولت باید حتما datetime باشه و اگه از این نوع نیس بگو از چه نوعی انتخاب کردی تا براش کوئریش رو بنویسم .