حذف يك ركورد از ييتا بيس

naeim_crack

Active Member
سلام با چه دستوري ميشه يك ركورد از ديتابيس رو حذف كرد زبان php بانك اطلاعاتي mysql
مرسي
 

bono056

Member
سلام
اين جريان حذف اطلاعات از ديتابيس تو برنامه هاي WebBase هميشه واسه من مشكل ساز بوده. چه براي اطلاعات پايه/ چه براي غير پايه. به نظرتون بهترين راه براي راضي كردن هم كارفرما هم كاربرا چيه؟
حذف كامل ركورد (با دستور DELETE)؟
disable كردن ركورد (با اضافه كردن يه فيلد مثلا به نام del كه در بصورت deafult مقدارش No است و در صورت پاك كردن مقدارش Yes بشه)؟
يا فقط تا زماني يه ركورد قابل پاك كردن باشه كه ركورد مرتبط نداشته باشه؟
 

naeim_crack

Active Member
سلام
مرسي سينا
فقط يه توضيح مي دادي در موردش
"delete from table1 where st_num='$del_uid'"
اين st_num چيه و $del_uid چيه
در ضمن كدي وجود داره كه كل بانك اطلاعاتي رو پاك كنه مرسي
 

Mikhak

Active Member
naeim_crack گفت:
سلام
مرسي سينا
فقط يه توضيح مي دادي در موردش
"delete from table1 where st_num='$del_uid'"
اين st_num چيه و $del_uid چيه
در ضمن كدي وجود داره كه كل بانك اطلاعاتي رو پاك كنه مرسي

کد:
"delete* from table1 where st_num='$del_uid'"

البته قبل از from يه ستاره داشت كه يادم رفته بود بزارم :wink:
منظور اينه كه delet كن تمام فيلدهاي ركوردي رو از جدول table1 كه فيلد st_num برابر باشه با متغير del_uid
------------------------
سينا :)
 

Mikhak

Active Member
كدي ميخواي كه كل بانك اطلاعاتي رو پاك كنه يا فقط يه جدول رو
در ضمن ميخواي از بين ببره(drop) يا توش رو پاك كنه (empty) :?
----------
sdkh
 

naeim_crack

Active Member
سلام
ببين من يك كدي مي خوام كه كه تمام اطلاعاتي كه داخل ديتا بيس وارد شده پاك بشه نمي خوام اون table هاي كه تعريف كردم از بيين بره فقط اطلاعاتي كه توسط كاربر وارد شده پاك بشه
مرسي
 

naeim_crack

Active Member
راستي سينا جون اينو بايد چه جوري استفاده كنم
ميشه يه كد كاملشو بزاري
 

Mikhak

Active Member
TRUNCATE Table1
با اين دستور ميتوني كل ركورد هاي table1 رو كه يه جدول هستش رو حذف كني اينجوري جدولت حذف نميشه فقط خالي ميشه

ديگه كاملتر از اين چي بنويسم اين يه كوري ديگه؟
--------------------
سينا؟
 

naeim_crack

Active Member
سلام يعني اينجوري اين رو استفاده كنم
کد:
<?php
TRUNCATE Table1
?>
البته بعد ار كانكت با ديتا بيس اينو اينجوري بزارم

مرسي
 

mazoolagh

Active Member
نعيم خان!
همون TRUNCATE كه ميخك خان گفته بهترين راه حل پاك كردن اطلاعات يك جدول هست. چون اگر شما از delete * from XXX استفاده كني ميره براي هر ركورد حذف شده يك ركورد توي transaction log درست ميكنه كه اين يعني اتلاف وقت و منابع سيستم ولي truncate فقط ديتاپيجهايي رو كه اختصاص به اطلاعات جدول داشته آزاد ميكنه بنابراين در transaction log فقط عمليات آزادسازي ثبت ميشه.

نحوه استفاده اش رو هم كه ميخك كامل گفته. همونطور كه هر دستور ديگه sql رو اجرا ميكني اين رو هم اجرا كن حالا چه php باشه چه asp
 

mazoolagh

Active Member
سلام
اين جريان حذف اطلاعات از ديتابيس تو برنامه هاي WebBase هميشه واسه من مشكل ساز بوده. چه براي اطلاعات پايه/ چه براي غير پايه. به نظرتون بهترين راه براي راضي كردن هم كارفرما هم كاربرا چيه؟
حذف كامل ركورد (با دستور DELETE)؟
disable كردن ركورد (با اضافه كردن يه فيلد مثلا به نام del كه در بصورت deafult مقدارش No است و در صورت پاك كردن مقدارش Yes بشه)؟
يا فقط تا زماني يه ركورد قابل پاك كردن باشه كه ركورد مرتبط نداشته باشه؟

اين بحث مهميه كه متاسفانه ادامه پيدا نكرد!
بطور كلي برنامه نويس هيچوقت نبايد مسوليت پاك كردن اطلاعات مشتري رو بعهده بگيره. من هميشه براي هر سيستمي كه به مشتري ميدم يك كاربر مثل ادمين يا مدير تعريف ميكنم كه ميتونه ركوردهايي رو كه اپراتورها فكر ميكنن حذف كردن ببينه و اگر خواست بطور فيزيكي حذف كنه يا برگردونه . از همون روشي هم كه بالا گفته شد استفاده ميكنم يعني يك فيلد boolean كه وقتي true ميشه ديگه اون ركورد در گزارشها و فرمها ديده نميشه و اثر هم نداره.
هم كارفرما راضيه هم اپراتور هم خودم راحتم!
 

naeim_crack

Active Member
اقا از توضیحات خیلی ممنون ببین این کاری که من می خوام انجام بدم مربوط به سیستم یک بانک هستش و این هایی که من می خوام پاک کنم یک سری اطلاعات هستش که طی محاسبه حسابداری در دیتابیس ذخیره شده و اطلاعات زیاد مهمی نیست و همون طوری که شما گفتید فقط ادمین میتونه اونو پاک کنه اما در مورد کدی که سینا گفته من می خوام بدونم اینو باید چه جوری در کد php استفاده کنم اکه میشه کد کامل استفاده رو برای مثلا بانک اطلاعاتی به اسم san برام بگین
مرسی
 

naeim_crack

Active Member
ببین من یک دیتابیس دارم به اسم san داخل این دیتا بیس 2 تا جدول هستش به اسمهای daryaft , pardakht و داخل این جدول ها هر کدوم 5 تا فیل داره که اطلاعات روی این فیلد ها ذخیره میشه حالا من می خوام اطلاعات داخل این 2 تا جدول رو پاک کنم

مرسی
 

mazoolagh

Active Member
اگه mysql هست :
کد:
$x = mysql_query("truncate daryaft") ;
$x = mysql_query("truncate pardakht") ;
 

oxygenws

Active Member
mazoolagh گفت:
اگه mysql هست :
کد:
$x = mysql_query("truncate daryaft") ;
$x = mysql_query("truncate pardakht") ;

البته برای truncate کردن یا عملیات هایی که چیز خاصی بر نمی گردونند، گذاشتن متغیر سمت چپ مساوی بی معنی است.
 

جدیدترین ارسال ها

بالا