PDA

View Full Version : مشکل در دستور MYsql (حل شد)



php_love
یک شنبه 21 خرداد 1391, 11:14 صبح
سلام دوستان فرمت یکی از فیلدام به این صورته 20;19;101;405;32 و حالا تو query نوشتم رکوردهایی رو بده که اون فیلد مذکور شمارش برابر با 20 باشه قاعدتا عدد 20 برابر با 20;19;101;405 این نیست ولی چون شماره 20 در اول اون فیلد قرار گرفته این رکورد رو هم بر می گردونه من چی کار کنم که این اتفاق نیافته

MMSHFE
یک شنبه 21 خرداد 1391, 11:28 صبح
دوست عزیز اگه ممکنه Query که نوشتین رو هم بگذارین تا مشکلش رو بررسی کنیم.

reza10wert
یک شنبه 21 خرداد 1391, 11:40 صبح
سلام دوستان فرمت یکی از فیلدام به این صورته 20;19;101;405;32
این یعنی چی ؟
کلا میخوای چه کاری انجام بده کوئری ؟

php_love
یک شنبه 21 خرداد 1391, 11:52 صبح
بنده یه بخش ارسال پیام خصوصی درست کردم , مشکل من زمانی بود که کاربر می خواست یک پیام رو به چند کاربر ارسال کنه بنابراین به کاربر اطلاع دادم که در صورت ارسال پیام به چند نفر از کاراکتر ; جهت تفکیک استفاده کنه , بعد از اینکه کاربر ارسال پیام می کرد با تابع explode اون آیدی ها رو که وارد کرده با یه حلقه از هم جدا و برای هر آیدی یه رکورد تو جدول نظرات در نظر گرفتم , اما بعدش پیشه خودم گفتم اگه کاربری که ارسال پیام کرده قصد ویرایش پیامش رو داشت اوضاع خیلی ناجور میشه و باید تمام اون رکوردهایی که مربوط به اون پیام میشه رو دوباره دربیارم و آپدیت کنم و همینطور شماره آیدی کسانی که پیام براشون ارسال شده رو در تکس باکسی به کاربر نشون بدم که متوجه بشه , اون پیامی که ارسال کرده بود برای این کاربران ارسال شده و تازه اگه کاربر قصد داشت یکی دو تا از اون آیدی هایه تکس باکس رو بر داره و یا اضافه کنه موضوع پیچیده تر می شد . بنابراین تصمیم گرفتم که تمام اون آیدی هایی که کاربر برای ارسال پیام وارد می کنه رو در همون فیلد Reciever قرار بدم با این تفاوت که از کاراکتر ; جهت تفکیک اونها استفاده کنم یعنی بشه اینجوری 20;30;40;50 .
و موفعی که کاربر قصد داشت پیام های دریافتیش رو بازدید کنه آیدیشو تو اون فیلده Reciver می گردم در صورتی که بود یعنی اون پیام مربوط به این کاربر هم میشه , بنده یه رکورد آزمایشی درست کردم که فیلد Reciver رو مقدار 20;30;40;50 دادم و آیدی 20 رو بهش پاس دادم و گفتم اگه برابر بود اون رکورد رو برگردون و بعدش دیدم اون رکورد رو برگردوند آخه عدد 20 که مساویه با 20;30;40;50 نیست ولی بعدش فهمیدم چون عدد 20 اولین عدد تو اون فیلد هست برمی گردونه وقتی که مکان عدد 20 رو عوض کردم یعنی شد اینجوری 30;40;20;50 دیدم رکورد رو برنمی گردونه





$id = 20;
connect();
$query = Select("select* from table where rec=$id");
disconnect();

MMSHFE
یک شنبه 21 خرداد 1391, 12:06 عصر
اینو امتحان کنید:
SELECT * FROM `table` WHERE (`rec`='{$id}')

php_love
یک شنبه 21 خرداد 1391, 12:20 عصر
عذر خواهی می کنم دوستان مشکل حل شد . مشکل اینجا بود که بنده در روش اول فیلد Rec رو از نوع عددی قرار داده بودم و بعد از اینکه سناریو عوض شد اون رو از نوع رشته ای گذاشتم اما فراموش کرده بودم و جالب اینجا بود که هیچ پیام خطایی هم صادر نشد . به هر حال سئوال اینجاست که آیا این روشی که بنده انتخاب کردم برای ارسال پیام خصوصی کاربر به چند نفر و در بالا هم توضیح دادم درسته یا شما راهه دیگه ای رو پیشنهاد می کنید .