السلام عليكم
اخواني
ماهو الكود الذي يقوم بحذف الحقول المكرره من جدول معين في قاعدة البيانات ؟؟؟
السلام عليكم
اخواني
ماهو الكود الذي يقوم بحذف الحقول المكرره من جدول معين في قاعدة البيانات ؟؟؟
وعليكم السلام ورحمة الله وبركاته
لا اعتقد يوجد استعلام واحد لحذف الصفوف المكررة
لكن يمكنك استخدام الكود التالي:
مع ملاحظة:كود PHP:
$results = @mysql_query("SELECT DISTINCT `fieldname` FROM `tablename`");
$del = @mysql_query("DELETE FROM `tablename`");
while($result = @mysql_fetch_array($results))
{
$insert_query = @mysql_query("INSERT INTO `tablename` (`fieldname`) VALUES ('$result[fieldname]')");
}
خذ backup من الجدول قبل البدء تجنبا لاي مشاكل
استبدال fieldname باسم الحقل
استبدال tablename باسم الجدول
__________________
مدونتي
ماذا عن هذه الحل , لم اجربه لكن منطقيا يعمل
كود:DELETE FROM `tablename` WHERE `fieldname` NOT IN (SELECT DISTINCT `fieldname` FROM `tablename`);
__________________
ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
الاتصال: daif@daif.net او جوال: 0556639884
الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .
الأخ المشرف العزيز لما شفت ردك صراحة انبهرت للطريقةالمشاركة الأصلية كتبت بواسطة daif
لكنها للأسف لا تعمل
شكرا لك
__________________
مدونتي
حسب تخيلي in يجب أن يأتي بعدها (value1, value2) .. اذا كان الاستعلام الثاني لا يعود بهذه النتيجة فأعتقد أنها لن تعمل .. هذه من ناحية منطقية لا أكثر ...!!
جربت الكودين ولا ضبطت
نرجو المساعده
اخي الكريم
جرب هذا الكود ورد على
قم بتغيير التاليكود PHP:
<?
include("config.php");
$delete=addslashes($_GET['delete']);
$natija=mysql_query("select * from dalil where name='$delete'");
$natijaa=mysql_query("select * from dalil");
$num=mysql_num_rows($natija);
if(empty($delete)){
while($row=mysql_fetch_array($natijaa)){
@extract($row);
echo$num2."<a href='".$_SERVER['PHP_SELF']."/delete.php?delete=".$name."'>".$name."</a><br>";
}
exit;
}
$fetch=mysql_fetch_array($natija);
@extract($fetch);
if($num==0){ //if($num==0){
exit("عفوا لاوجد اي تكرار ");
} //if($num==0){
if($num>2){ //if($num>1){
$deleted=@mysql_query("delete from dalil where name='$delete'");
if($deleted){ //if($deleted){
echo "<b><font color=red>".$delete."</font></b>تم مسح جميع الأمساء المكررة من ";
}
else
{
echo "ERROR";
} //if($deleted){
}
else
{
echo "عفوا هذا الاسم لا يوجد فيه اي تكرار";
} //if($num>1){
$insert=mysql_query("insert into dalil (name) values ('$name')");
?>
dalil الى اسم الجدول لديك
name الى اسم الحقل المراد التأكد من خلو التكرار
السطر الأخير يمكنك التعديل عليه حسب عدد الحقول لديك
يمكنك تجربته من هنا وستجد الأسماء المكررة هي swalif
واخيرا هذا الكود كتبته على عجل ويحتاج الى تطوير
ولا كود ضبط
ممكن احد يفيدنا ؟؟؟
للرفع
يمكن احد يفيدنا
:eek3:
الحقل name هو الحقل اللي مانبيه يتكرركود:CREATE TEMPORARY TABLE IF NOT EXISTS my_temp AS SELECT DISTINCT name FROM cars; Delete From cars; Insert Into cars(name) Select name From my_temp; Drop Table IF EXISTS my_temp;
my_temp = اي اسم
cars = اسم الجدول
أعتذر للأستاذ ضيف طريقته فعلاً تعمل منطقياً ..
جزيت خيراً أخ فلاشر .. ماذا عن :
؟؟كود:delete from table where (rowid, field) not in (select min(rowid), field from table group by field);
بحيث table هو الجدول ، و field هو الحقل!
تحياتي،
هلا اشرف ،
الصراحه توي جاي من اختبار الرياضيات مخي خارج الخدمة حاليا![]()
من نظرة اولى اشوفها صحيحه جدا لكن طبقتها وطلع عندي خطأ، راح اشوفها لاحقا ان شاء الله ...
تحياتي،
السلام عليكم،
بالنسبة للكود لوكان
فهنا بيعطيك السجلات المكررة كلهاكود:select * from table where (rowid, field) not in (select min(rowid), field from table group by field);
لكن اذا جيت تستخدم update او delete ماراح تقدر تستعمل سيليكت كويري من نفس الجدول
عموما المسألة قابله للنقاش![]()
تحياتي
السلام عليكم
كلام الأخ ضيف سليم و هته العملية إسمها requête imbriqué و هي صحيحة و سليمة 100%
تحياتي
احمد صقر
__________________
www.sakr4host.com
0021371136760
برمجة و تصميم على كيف كيفك
صقرفور هوست خدمات تفوق التطلعات
ممكن مثال عملي اخوي ؟؟