PDA

View Full Version : سوال: مشکل در برگشتی از یک دستور sql



pirmard66
دوشنبه 22 مهر 1392, 21:15 عصر
سلام دوستان

خسته نباشید

من یه کد sql دارم :


$ab="select * from table desc limit 5"


حالا من میخوام یه کد بنویسم بگم که اگه $ab خالی بود بیاد دستور :



$ab="select * from table2 desc limit 5"


رو به جاش بزار.

ولی هر کاری کردم نشد.

از empty استفاده کردم نشد.

echo گرفتم دیدم یه خروجی میده :

resource id #66

پس empty نمیشه..

دوستان راهنمایی کنن من چه کنم؟

MMSHFE
دوشنبه 22 مهر 1392, 21:47 عصر
$result = mysql_query('SELECT * FROM `table` ORDER BY `id` DESC LIMIT 5');
if(mysql_num_rows($result) == 0) {
$result = mysql_query('SELECT * FROM `table2` ORDER BY `id` DESC LIMIT 5');
}

ضمناً قبل از DESC یادتون رفته بود ORDER BY و اسم فیلد رو بنویسید.

pirmard66
دوشنبه 22 مهر 1392, 22:21 عصر
ممنون آقای شهرکی ...

این کد رو همینطوری نوشتم ...order داره کد اصلی..

فقط یه سوال !

این resource id #66 به چه معنی هست ؟ چرا میاد ؟

MMSHFE
سه شنبه 23 مهر 1392, 00:28 صبح
وقتی MySQL به شما خروجی میده (بعد از اجرای mysql_query) نتیجه رو که بصورت یک منبع MySQL هست توی RAM میاره تا بتونید با دستوراتی مثل mysql_fetch_row و mysql_fetch_assoc و mysql_num_rows و امثال اونها، روش کار کنید. این نتیجه، همونطور که گفتم یک منبع هست (Resource) که یک شماره بهش اختصاص داده میشه. بطور کلی هر منبعی که PHP میگیره (فایل، نتیجه دیتابیس، سوکت و...) از نوع Resource هست و شماره اونها، باعث تفکیکشون از هم میشه.