PDA

View Full Version : داده های شبیه هم در mysql



javad14
پنج شنبه 18 تیر 1394, 02:16 صبح
سلام دوستان کسی میدونه چه جوری باید error این که دو تا داده مثل هم وارد جدول mysql میشه روبهمم؟primmary key تعریف کردم بعدشم از دستور insert استفاده کردم اما حالا اگه دو تا داده مثل هم بود چه کدی باید وارد کنم تا بهمم که این داده شبیه قبلیس؟؟

H:Shojaei
پنج شنبه 18 تیر 1394, 03:33 صبح
وقتی از کوئری اجرا میگیرید اون اجرا رو توی یک شرط قرار بدین اگر اجرا بشه ودرج انجام بشه مقدار true میشه و داخل if اجرا میشه اگر نه مثلا مقداری تکراری باشه یا به هر دلیل دیگه ای درج انجام نشه مقدار false میشه و else اجرا میشه...


if($query->execute();)
//row inserted
else
// data not inserted

Unique
پنج شنبه 18 تیر 1394, 11:12 صبح
جناب شجاعی فکر نمیکنم منظورشون این باشه که متوجه بشن دستور Insert خطا داده یا نه.


چه جوری باید error این که دو تا داده مثل هم وارد جدول mysql میشه روبهمم؟primmary key تعریف کردم بعدشم از دستور insert استفاده کردم اما حالا اگه دو تا داده مثل هم بود چه کدی باید وارد کنم تا بهمم که این داده شبیه قبلیس؟؟

سوالتون نا مفهومه ، منظور شما از داده شبیه به هم چیه ؟ منظورتون همه رکورد ها هست ؟ ، عرفا کسی نمیاد فیلد به فیلد رکورد ها را چک کنه. داده های تکراری معمولا نقاط مشترکی دارند که احتمال ترکرار بودنش بیشتر از همه هستش مثلا در مورد جدول کاربران بسته به سیاست مدیر سایت ممکنه رکورید تکراری باشه که آدرس ایمیل یا کد ملی یا شماره همراه منحصر به فرد بودن رکورد را تعیین میکنه و حالا اگه نام و نام خانوادگی و شهر و کشور توی ۲۰ رکورد هم یکسان بود اهمیتی نداره. کلا تا حالا سناریویی نداشتم و ندیدم که همه فیلد ها را بررسی کنی.

برای فهمیدن اینکه رکورد قبلا ثبت شده یا نه هم باید یک select معمولی با توجه به فیلد هایی که روشون حساس هستین بگیرین.

H:Shojaei
پنج شنبه 18 تیر 1394, 16:17 عصر
اتفاقا جناب Unique البته ببخشید جسارته ولی فکر کنم چیزی که گفتن همونی بود که من گفتما شایدم من اشتباه میکنم...
ایشون میگن primary key تعریف کردن احتمالا ایمیل یا نام کاربری یا شماره تلفنی چیزی رو به این صورت تعریف کردن و نمیخوان داده ای اگر قبلا وارد شده و قراره روی این فیلد که primary key هست تکرار بشه جلوش که گرفته میشه بفهمن که جلوش گرفته شده... فکر کنم منظورشون اینه...

fatima-php
پنج شنبه 18 تیر 1394, 16:57 عصر
فکر میکنم بشه از Unique کردن فیلدها (با آقای Unique اشتباه نگیرین :چشمک:) و اگه نیاز بود، استفاده از ON DUPLICATE KEY UPDATE توی کوئری هم کاری که میخواین رو انجام بدین. خیلی وقتها میشه همه بار کنترل رو به گردن PHP نندازیم.