PDA

بازدید نسخه کامل شده : انتخاب 3 سطر پایانی ...در mysql !


iMohsen
01-20-2006, 10:20 PM
سلام

من یه تیبل دارم با 4 تا فیلد که یکیشون اوتواینکرمنت (! افزایش خودکار) هست ..

من میخوام فیلد های مثلا : نام و فامیل رو از سه سطر پایانی بخونم و پرینت کنم رو صفحه ..

چه دستوری برای این کار هست که همیشه سه سطر پایانی در این نتیجه وجود داشته باشن ...

مثال :
ما یه تیبل داریم که 10 سطر هست و دارای 3 فیلد :
1 - id
2 - name
3 - lastname

میخوام name هایی که در سطرهای 8 - 9 - 10 هستند بیان روی صفحه ..
یا اگه تیبل 30 سطر باشه شماره های 28-29-30 ...

سوالهای دیگری هم هستند که در آینده ای نزدیک مطرح میشن ..:d
محسن!

Nendoke
01-20-2006, 10:33 PM
SELECT *
FROM `table_name`
ORDER BY `id` DESC
LIMIT 0 , 3

iMohsen
01-20-2006, 11:22 PM
SELECT *
FROM `table_name`
ORDER BY `id` DESC
LIMIT 0 , 3






من زیاد mysql بلت نیستم ...!
اون DESC و ORDER BY باعث چه تغییری میشن رو نتیجه ..!؟

محسن!

Nendoke
01-20-2006, 11:28 PM
ORDER , باعث می شه که نحوه چیدمان Row ها تغییر کنه .
DESC یعنی به صورت زیاد از کم .

LIMIT هم اینجا یعنی از Row صفر تا 3 تا بعدش رو خروجی بده .

:d

iMohsen
01-20-2006, 11:35 PM
یعنی Row ها از زیاد به کم سورت میشن و بعد از اولی شروع میکنه به خوندن ..!
فکر کنم گرفتم چی شد ..:دی

چند دقیقه دیگر سوال بعدی ..:دی
محسن!

Asef
01-20-2006, 11:56 PM
SELECT *
FROM `table_name`
ORDER BY `id` DESC
LIMIT 0 , 3





بابا ماي اسكيو ال بلد. بابا اينكاره :d
اين آخر شبي بزار چند تا تنكس هم فقرا درو كنن :d :d

Nendoke
01-21-2006, 12:15 AM
http://qsmile.com/qsimages/22.gif http://qsmile.com/qsimages/22.gif http://qsmile.com/qsimages/22.gif

تیکه می اندازی ؟ :d

حالا کو تنکس ؟ http://qsmile.com/qsimages/242.gif

Asef
01-21-2006, 12:24 AM
نه والا!! پاچه خاري بيد :d لول!
الان بلك مايس مياد با معرفت تر از اين صحبتاست! http://qsmile.com/qsimages/24.gif
(خواهشا اين 2 پست رو بهدا دليت كن http://qsmile.com/qsimages/20.gif )

iMohsen
01-21-2006, 12:24 AM
اینم تنکس ...:دی

محسن!

Asef
01-21-2006, 12:42 AM
اینم تنکس ...:دی

محسن!
نندوك! من يادش آوردم http://qsmile.com/qsimages/247.gif:d
اين سايان هم كه همه جا حاظره :d

Ghamnevis
01-21-2006, 12:48 AM
نندوك! من يادش آوردم http://qsmile.com/qsimages/247.gif:d
اين سايان هم كه همه جا حاظره :d
قبل از محسن من تنكس زدم ! منتها من دو تا پست اشتباهي پست زدم :d ميخواستم واسه اون بالايي بزنم قبل از اين ماجراها ! منتها چند تا صفحه جلوم باز بود !


راستي ! چرا من بايد انقده صغري و كبري رو سين جيم كنم واسه عملم ؟‌:d

iMohsen
01-21-2006, 12:51 AM
نندوك! من يادش آوردم http://qsmile.com/qsimages/247.gif:d
اين سايان هم كه همه جا حاظره :d

نه خیر هم ..:d

ارسال پست هامون همزمان بید ...:goatee: :soot:

و طبق گفته آصف :
این سایان هم همه جا هست ..

سایان اینجا - سایان اونجا - سایان همه جا ..!(در یافتن جوابی برای تا کی ؟ :d )

محسن!

Asef
01-21-2006, 12:53 AM
قبل از محسن من تنكس زدم ! منتها من دو تا پست اشتباهي پست زدم :d ميخواستم واسه اون بالايي بزنم قبل از اين ماجراها ! منتها چند تا صفحه جلوم باز بود !


راستي ! چرا من بايد انقده صغري و كبري رو سين جيم كنم واسه عملم ؟‌:d
لووووووووووووووووووول
در هرحال نندوك 40 دصد تشكراتشو از سايان داره http://qsmile.com/qsimages/27.gif :d
اون كلمه آخرت رو به صورت صوتي اينجا بزار تا شفافيت لازم صورت بگيره :d

Ghamnevis
01-21-2006, 01:06 AM
Amalam :)

iMohsen
03-25-2006, 01:05 PM
سلام

من یه تیبل دارم با 4 تا فیلد که یکیشون اوتواینکرمنت (! افزایش خودکار) هست ..

من میخوام فیلد های مثلا : نام و فامیل رو از سه سطر پایانی بخونم و پرینت کنم رو صفحه ..

چه دستوری برای این کار هست که همیشه سه سطر پایانی در این نتیجه وجود داشته باشن ...

مثال :
ما یه تیبل داریم که 10 سطر هست و دارای 3 فیلد :
1 - id
2 - name
3 - lastname

میخوام name هایی که در سطرهای 8 - 9 - 10 هستند بیان روی صفحه ..
یا اگه تیبل 30 سطر باشه شماره های 28-29-30 ...

سوالهای دیگری هم هستند که در آینده ای نزدیک مطرح میشن ..:d
محسن!

خب حالا يه دستوري كه تقريبا بر عكس اين باشه ...

يعني من ميخوام از سطري كه انتخاب ميشه ..(مثلا سطر 4 از بين 10 سطر - چون اين عدد تصادفي توليد ميشه) تا 3 سطر بالاتر يا پايين تر ..هردو رو انتخاب كنم ..


مثال :
سطر انتخاب شده : سطر 4
نتيجه : انتخاب سطر هاي 4.5.6

سطر : 4
نتيجه 2 : انتخاب سطرهاي 4.3.2.

اينا براي وقتي هست كه انتخاب عدد اصادفي برابر بشه با اخرين row جدول يا اولين row ...

سوال بعدي تو پست بعدي ...


يكي تيتر اينجا رو اديت كنه :d

SherlockHolmes
03-25-2006, 03:41 PM
)
@id int
(
SELECT * FROM Table
WHERE Id
BETWEEN (@id - 3) AND (@id 4)

یعنی این جوری؟!

Asef
03-25-2006, 03:56 PM
SELECT *
FROM `table_name`
ORDER BY `id` DESC
LIMIT $row , 3
که $row میشه سطر تصادفیت. اگه بخوای از آخر به اول بیای باید بدونی کل تعداد سطرت چقدره بعد row رو از کل کم کنی
مثلا 10 سطر داری و سطر تصادفی شده 10 باید 3 - 10 رو به جای row بزاری . منطقش سادست
کلا LIMIT X,Y یعنی از سطر X به تعداد Y خروجی بده ...

Asef
03-25-2006, 03:58 PM
)
@id int
(
SELECT * FROM Table
WHERE Id
BETWEEN (@id - 3) AND (@id 4)

یعنی این جوری؟!
mysql این دستورات رو پشتیبانی میکنه؟؟

SherlockHolmes
03-25-2006, 04:14 PM
باید پشتیبانی کنه!!
البته این StoredProcedure هستش و قرار بود در mySql5 ساپرت بشه!!
اگر هم نشد


SELECT * FROM Table
WHERE Id
BETWEEN (@id - 3) AND (@id plus 4)

فقط کافیه به جای @id ان عددی رو که میخوای بزاری!!
plus سعنی به علاوه!!شما جاش همون علامت به علاوه رو بزارید!!
ادیتور اینجا میخورتش!!

iMohsen
03-25-2006, 08:50 PM
SELECT *
FROM `table_name`
ORDER BY `id` DESC
LIMIT $row , 3
که $row میشه سطر تصادفیت. اگه بخوای از آخر به اول بیای باید بدونی کل تعداد سطرت چقدره بعد row رو از کل کم کنی
مثلا 10 سطر داری و سطر تصادفی شده 10 باید 3 - 10 رو به جای row بزاری . منطقش سادست
کلا LIMIT X,Y یعنی از سطر X به تعداد Y خروجی بده ...

اوه فكر كنم اشتباه متوجه شدي ..!

دقيقا من ميخوام اينجوري باشه :
1 - من تعداد سطرهاي يك جدول رو ميگيرم
2 - بين 1 و تعداد سطر ها يك عدد تصادفي توليد ميكنم ...
3 -1 - در صورتي كه عدد برابر يك بود فيلدهاي 1-2 - 3 انتخاب بشن ..
3-2 - در صورتي كه عدد برابر اخرين سطر جدول بود يكي پايين تر و 2تا پايين ترش انتخاب بشن ..

اين بالايي كار نكرد ..!

SherlockHolmes
03-25-2006, 08:56 PM
انصافا خودت فهمیدی چی گفتی؟!! http://qsmile.com/qsimages/292.gif

SherlockHolmes
03-25-2006, 08:57 PM
در هر صورت کد من مثل بنز کار میکنه!!
کاری که میکنه اینه:یه عدد بهش میدی سه تا بالایی و سه تا پایینیش رو بر میگردونه!!
منظورت همینه دیگه!!

iMohsen
03-25-2006, 09:15 PM
در هر صورت کد من مثل بنز کار میکنه!!
کاری که میکنه اینه:یه عدد بهش میدی سه تا بالایی و سه تا پایینیش رو بر میگردونه!!
منظورت همینه دیگه!!

خوب من ميخوام تو يه شرط بزارم ...
يا 3 تا بالايي رو بگيره يا 3 تا پاييني رو ..!

كد تورو هم الان تست ميكنم

SherlockHolmes
03-25-2006, 09:21 PM
خوب کد من اگه صفحه آخرین سطر باشه سه تا پایینیشو میاره!!اگر سطر اول باشه 3 تا بالایی!!اگر هم سطرهای وسط باشه!!سه تا بالا و سه تا پایین رو بر میگردونه!!

emad86_20011
03-26-2006, 11:37 AM
اوه فكر كنم اشتباه متوجه شدي ..!

دقيقا من ميخوام اينجوري باشه :
1 - من تعداد سطرهاي يك جدول رو ميگيرم
2 - بين 1 و تعداد سطر ها يك عدد تصادفي توليد ميكنم ...
3 -1 - در صورتي كه عدد برابر يك بود فيلدهاي 1-2 - 3 انتخاب بشن ..
3-2 - در صورتي كه عدد برابر اخرين سطر جدول بود يكي پايين تر و 2تا پايين ترش انتخاب بشن ..

اين بالايي كار نكرد ..!
اين كدهايي كه ميزارم براي قسمت 1 و 2 هستش!!1-3 و 2-3 هم خودت ميتوني از راه هايي كه بقيه گفتن به دست بياري!!:)
$result=mysql_query("SELECT * FROM `table_name`");
$total=mysql_num_rows($result);

$rand_row=rand(1, $total);

Asef
03-26-2006, 04:58 PM
اوه فكر كنم اشتباه متوجه شدي ..!

دقيقا من ميخوام اينجوري باشه :
1 - من تعداد سطرهاي يك جدول رو ميگيرم
2 - بين 1 و تعداد سطر ها يك عدد تصادفي توليد ميكنم ...
3 -1 - در صورتي كه عدد برابر يك بود فيلدهاي 1-2 - 3 انتخاب بشن ..
3-2 - در صورتي كه عدد برابر اخرين سطر جدول بود يكي پايين تر و 2تا پايين ترش انتخاب بشن ..

اين بالايي كار نكرد ..!
مشکلش چیه؟ با توضیحاتم میتونی بنویسیش ... کد بهنام هم کامل تره تستش کنی بد نیست

iMohsen
03-26-2006, 11:49 PM
هر چي اين كد بهنامو ميزارم بعد كه ميخوام بدم نتيجه رو پرينت كنه ميگه ...

نتيجه گرفته شده با mysql سازگار نيست ..!

Asef
03-26-2006, 11:57 PM
هر چي اين كد بهنامو ميزارم بعد كه ميخوام بدم نتيجه رو پرينت كنه ميگه ...

نتيجه گرفته شده با mysql سازگار نيست ..!
خب من تستش نکردم گفتم احتمالا با mysql سازگار نباشه. ساختار تیبلت چیه؟ فیلد و ...
الان کد من چه مشکلی داره

SherlockHolmes
03-27-2006, 12:01 AM
باید سازگار باشه!!چون این عبارات استفاده شده جزو استاندارد های sql هستن!!شاید توی MySql باید اسم جدول رو تو سینگل کوت بزاری!!

iMohsen
03-27-2006, 12:13 AM
خب من تستش نکردم گفتم احتمالا با mysql سازگار نباشه. ساختار تیبلت چیه؟ فیلد و ...
الان کد من چه مشکلی داره

اصف جان ..كدي كه دادي تو صفحه اول هم هست ..

اين براي زماني هست كه من ميخوام 3 سطر اخر رو داشته باشم ..

اما براي داشتن 3 سطر اول چيرو بايد اوز ! (عوض) كرد ..؟!

فكركنم ماله اون DESC باشه ..؟! يا شايد من بايد تعداد رو منفي بدم ...! :wacko:

Asef
03-27-2006, 12:21 AM
Limit 1,3 میشه سه سطر اول
Limt $all - 3,3 میشه سه سطر آخر
این روشنه؟

iMohsen
03-30-2006, 12:54 AM
مشكل قبلي ما حل نشده هنوز ...

حالا يا من بلد نيستم از اين كامند ها استفاده كنم يا اينا اون چيزي نيست كه من ميخوام ...!


يه سوال جديد : اگه براي كامند sql كه ليميت بزاريم و محدوده اي از اون خالي بمونه مشكلي پيش نمياد ..!

مثلا ما فقط 4 تا ركورد داريم ...اما ليميت باشه برروي 1 تا 10 ...
گفتم شايد مشكل از اين باشه ..!؟