صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: مساعدة Update في mysql

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775

    مساعدة Update في mysql



    السلام عليكم
    اخوان
    لدي جدول arab
    و فيه
    CREATE TABLE `arab` (
    `id` int(10) NOT NULL auto_increment,
    `phone` varchar(255) NOT NULL default '',
    `name` varchar(255) NOT NULL default '';

    و عندي sql له و يضيف اليه هكذا
    INSERT INTO `arab` VALUES (1, '123456789', 'hamad';

    طبعا هذا جزء منه و فيه فوق الالف مدخل
    انا ابغي اضيف مثلا حرف او رقم إلى 123456789 بيحث يصير 050 - 123456789
    INSERT INTO `arab` VALUES (1, '050-123456789', 'hamad';
    يعني يسوي لي تعديل شامل للكل
    اتمنى المساعدة فيه
    عن طريق phpmyadmin او عن طريق برنامج او شيء
    شكرا لكم







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    281


    أخي الكريم ! ممكن توضيح صغير ؟؟ انت عندك جدول arab وفيه حقول وعاوز تعدل على حقل phone !! للكل صحيح ؟؟
    انت عندك قيمة ثابتة لحقل phone ??





    __________________
    مدونتي
    Www.AlMashroo.Com

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    هيه ،، هي ثابتة
    انا بس ابي اضيف عليه حرف او كلمة
    اي كان
    فقط لا غير






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Nov 2005
    المشاركات
    281


    في هذه الحالة ! اعتقد استخدام دالة UPDATE لايفيدك ! لأن UPDATE ستدخل من جديد قيمة !
    أما لو كانت ثابتى استخدام for !
    أحسن شيء !

    تحياتي
    فراس





    __________________
    مدونتي
    Www.AlMashroo.Com

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    اخوي انا الحين كاتب الموضوع
    بلا أحراج
    انا واحد مايخصني بالبرمجة ولا القواعد
    فأنا الحين اتوقع منك او من الاخوة يوفرون لي الامر
    شكرا لك حبوب






  6. #6


    جرب التالي عزيزي :

    كود PHP:
    $before "05"// ضع هنا الاشياء اللي تبي تضيفها قبل رقم التلفون
    $after "00"// هنا اللي بعد الرقم
    // اترك اللي ما تبي تضيفها فاضية

    $sql "select * from `arab`";
    $result mysql_query($sql);
    while (
    $row mysql_fetch_array($result)) {
             
    $update mysql_query("update `arab` set `phone`='"$before $row["phone"] . $after ."' where `id`='"$row["id"] ."'");

    كتبته وانا مستعجل ان شاء الله يكون صحيح ..

    تحياتي، sBForum





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    ماصار اخوي مع اني حطيت كود الاتصال بالقاعدة
    لم يتغير شي






  8. #8


    الغريم هذا تعديل بسيط على كود الأخ sbforum

    وتأكد من تغيير أول سطرين بحيث تعكس البيانات التالية

    اسم مستخدم قاعدة البيانات username
    كلمة المرور password
    اسم قاعدة البيانات arab

    كود PHP:
    <?
    $link
    =mysql_connect("localhost","username","password") or die("تأكد من صحة اسم المستخدم وكلمة المرور".mysql_error());
    mysql_select_db("arab") or die("لا يوجد قاعدة بيانات  " mysql_error());


    $before "05"// ضع هنا الاشياء اللي تبي تضيفها قبل رقم التلفون 
    $after "00"// هنا اللي بعد الرقم 
    // اترك اللي ما تبي تضيفها فاضية 
    $sql "select * from arab"

    $result mysql_query($sql,$link); 
    while (
    $row mysql_fetch_array($result)) 

        
    $value=$before.$row["phone"].$after;
        
    $id=$row['id'];
        
    mysql_query("update arab set phone='$value' where id='$id' LIMIT 1",$link); 
    }  
    ?>
    وعلى العموم أعتقد تقدر تسويها بأمر SQL واحد

    كود:
    UPDATE arab SET phone = CONCAT('05',phone,'00');
    حيث إن الدالة CONCAT تقوم بإلصاق النصوص بقيم أخرى
    وتقدر تغير القيمة 05 و 00 إلى أي قيم أخرى





    __________________
    al7amdan AT gmail

  9. #9
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    اخي جربت احطها في php مع تغير مايتطلب لكن ماصاار اي تعديل !!
    و جربت استخدم امر mysql
    و قال
    #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'








  10. #10


    طيب جرّب الكود التالي، يتفترض إن هذا الكود يعمل المطلوب أو على الأقل يعرض رسالة خطأ تبين سبب المشكلة.
    كود PHP:
    <? 
    $link
    =mysql_connect("localhost","username","password") or die("تأكد من صحة اسم المستخدم وكلمة المرور".mysql_error());
    mysql_select_db("arab") or die("لا يوجد قاعدة بيانات  " mysql_error($link)); 

    mysql_query("set character_set_server='cp1256'",$link); 
    mysql_query("set names cp1256",$link);

    $before "05"// ضع هنا الاشياء اللي تبي تضيفها قبل رقم التلفون  
    $after "XX"// هنا اللي بعد الرقم  
    // اترك اللي ما تبي تضيفها فاضية  
    $sql "select * from arab";  

    $result mysql_query($sql,$link);  
    while (
    $row mysql_fetch_array($result))  
    {  
        
    $value=$before.$row["phone"].$after
        
    $id=$row['id']; 
        
    mysql_query("update arab set phone='$value' where id='$id' LIMIT 1",$link);
        if(
    mysql_affected_rows($link)!=1)
        { 
              echo 
    "لم يتم تغيير الحقل: ID=$id"  
              
    .mysql_error($link)."<BR>";
         }
    }   
    ?>
    إذا ما نفع معك، افتح الملف my.ini أو my.cnf (بحسب إصدارة MySQL اللي عندك، وتلقى الملف هذا بمجلد MySQL)، وابحث عن سطرين :
    كود:
    default-character-set=
    و
    كود:
    default-collation =
    وغيّرهم بحيث يكون لهم القيم التالية:
    كود:
    default-character-set= utf8
    default-collation = utf8_general_ci
    بعد كذا أعد تشغيل السيرفر، وأعد تشغير MySQL، وجرّب نفس أمر SQL اللي أعطيتك أياه.

    [سؤال] وش إصدار MySQL اللي عندك؟ وش إصدار PHP ؟





    __________________
    al7amdan AT gmail

  11. #11
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    طلع لي
    لم يتم تغيير الحقل: ID=agentkUnknown column 'id' in 'where clause'
    اخوي شكل السالفة بتطول
    ممكن تضيفني لو سمحت
    webmaster @ algareem.com






  12. #12


    إذا تقدر ترفق ملف قاعدة البيانات SQL وفيه تركيب القاعدة والبيانات نقدر إن شاء الله نساعدك..

    جرب هذا الكود فيه بعض التعديلات..:

    وتأكد بأن حقل id مثل ماهو معرف فوق يحتوي أرقام، وبأن phone معرّف كـ varchar,

    كود PHP:
    <?  
    $link
    =mysql_connect("localhost","username","password") or die("تأكد من صحة اسم المستخدم وكلمة المرور".mysql_error()); 
    mysql_select_db("arab") or die("لا يوجد قاعدة بيانات  " mysql_error($link));  

    mysql_query("set character_set_server='cp1256'",$link);  
    mysql_query("set names cp1256",$link); 

    $before "05"// ضع هنا الاشياء اللي تبي تضيفها قبل رقم التلفون   
    $after "X"// هنا اللي بعد الرقم   
    // اترك اللي ما تبي تضيفها فاضية   
    $sql "select phone,id from arab";   

    $result mysql_query($sql,$link) or die("تأكد من زجزد حقل اسمه phone وحقل اسمه id في جدول arab! ".mysql_error());
    $updated=0;
    while (
    $row mysql_fetch_array($result))   
    {   
        
    $value=$before.$row["phone"].$after;  
        
    $id=$row['id']; 
        if(!
    is_numeric($row['id']))
        {
            die(
    "الحقل ID يجب أن يكون رقمًا ، بحسب تعريفك للحقل في الجدول الرئيسي!!");
        }
        
    mysql_query("update arab set phone='$value' where id='$id' LIMIT 1",$link); 
        if(
    mysql_affected_rows($link)!=1
        {  
                
    mysql_query("update arab set phone='$value' having id='$id' LIMIT 1",$link); 
                if(
    mysql_affected_rows($link)!=1
                {  
                    echo 
    "لم يتم تغيير الحقل: ID=$id"   
                    
    .mysql_error($link)."<BR>updated rows=$updated"
                }
                else 
                {
                    
    $updated++;    
                }
         } 
         else 
         {
             
    $updated++;
         }
    }    
    ?>






    __________________
    al7amdan AT gmail

  13. #13
    عضو فعال جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    2,775


    ياخوي ماصار
    حبيت انوهك ان الي انا كاتبه مجرد مثال
    حيث ان قاعدة بها ارقام و كلمات
    انا ودي اضيف عليهم في النهاية الكلمة
    .jpg
    فقط






  14. #14


    إيميلي في التوقيع، تقدر ترسلها لي وأضبطها لك إن شاء الله





    __________________
    al7amdan AT gmail

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    193


    مرحبا،

    1-) عزيزي أول شي أنا بدي أعرف بجدول الـ arab في primary key على حقل الـ id

    لأنه زي ما قرأت كود إنشاء الجدول فقد تبين معي أنه لا يوجد

    لاحظ الفرق، هذا الكود منك :

    CREATE TABLE `arab` (
    `id` int(10) NOT NULL auto_increment,
    `phone` varchar(255) NOT NULL default '',
    `name` varchar(255) NOT NULL default '';

    وهذا مني

    CREATE TABLE arab (
    id INT (10) NOT NULL AUTO_INCREMENT,
    phone VARCHAR (255) NOT NULL,
    name VARCHAR (255) NOT NULL,
    PRIMARY KEY(id)
    ) ;


    2-) لما جربت هذا الأمر

    UPDATE arab SET phone = concat("050-",phone);

    مع هي الرسالة التي ظهرت ؟

    3-) أنت في عندك نسخة إحتياطية يعني على إستعداد نتابع المشكلة لغاية ما تنتهي و نشوف إلها حل.

    تحياتي للجميع





    التعديل الأخير تم بواسطة snake_eyes ; 26-10-2006 الساعة 03:33 AM سبب آخر: إضافة نص
    __________________
    العزة لله.. والشفاعة لك يا رسول الله
    اللهم ارحم شهداؤنا و كل من قاتل في سبيل الله... آمين
    اللهم انصر المجاهدين المسلمين في كل مكان... آمين





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض