PDA

View Full Version : جلوگیری از ارسال اطلاعات تکراری در دیتابیس



ho3inamini
شنبه 14 تیر 1393, 14:11 عصر
سلام
یه فرم برای ارسال اطلاعات به دیتابیس، حالا میخواتسم بدونم که چه جوری می تونم از تکراری بودن مقداره یک فیلد از جدول باخبر شم؟
ممنون

H:Shojaei
شنبه 14 تیر 1393, 14:44 عصر
سلامیک فیلد؟؟ منظورتون از یک فیلد نامفهومه ولی اگه منظورتونه مثلا رکوردی با نام تکراری درج نشه باید:اول یه سلکت از همون جدول بگیرید به صورتی که یه شط داره و تو اون شرط مقایسه میشه که فیلد با مقدار جدیدی که از فرم به دست اومده برابر باشه بعد نتیجه کوئری رو چک میکنید اگه نتیجه ای برگردوند یعنی اون مقدار قبلا تو بانک درج شده.$q=select * from tbl where name=$name$query_res=mysql_query($q)if(mysql_num_r ows($query_res)>0)echo فیلد تکراریامیدوارم منظورو رسونده باشم...

Mohammadsgh
شنبه 14 تیر 1393, 14:51 عصر
برای جلوگیری از ذخیره داده تکراری هم میتونید فیلدتون رو unique کنید:لبخندساده:

ho3inamini
شنبه 14 تیر 1393, 15:43 عصر
H:Shojaei عالی بود، درست شد، دستت درد نکنه
mohammadsgh ممنون از راهنماییت

Mohammadsgh
شنبه 14 تیر 1393, 22:19 عصر
خواهش میکنم وظیفه هست:چشمک:

prans.info
شنبه 14 تیر 1393, 22:24 عصر
برای جلوگیری از ذخیره داده تکراری هم میتونید فیلدتون رو unique کنید:لبخندساده:
فیلدی که قبلا ساخته شده پرو چطوری میشه unique کرد ؟

Mohammadsgh
شنبه 14 تیر 1393, 23:11 عصر
برید تو جدولتون.قسمت structure فیلد دلخواهتون رو تیک بزنید سپس روی unique کلیک کنید

H:Shojaei
یک شنبه 15 تیر 1393, 01:02 صبح
Unique کردن درسته چیزیه که واسه همین کار تعبیه شده ولی با این کار صورت مسئله پاک میشه شما اگه بخواید به مشکل نخورید باید تو کد چک کنید و وقتی تو کدها چک کنید هرچ الزامی به فیلد Unique نیست... مثلا یه فیلد Unique شده حالا وقتی داده ای تکراری میخواد درج بشه دیتابیس فقط یه خطا برمیگردونه که یه باگ هم میشه فک کنم و هیچ کار دیگه ای به لحاظ کد نویسی انجام نمیشه و کاربر هیچ وقت نمیفهمه خطا چی بوده ...

H:Shojaei
یک شنبه 15 تیر 1393, 01:24 صبح
البته با تابع mysql_error() هم میشه فهمید که خطایی در اجرای کوئری بوده یا نه. ولی این که خطا مربوط به چه چیزی بوده رو نمیدونم دقیقا میشه فهمید یا نه...