النتائج 1 إلى 15 من 15

الموضوع: سؤال : في الاتصال بأكثر من قاعدة بيانات في نفس الموقع

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113

    سؤال : في الاتصال بأكثر من قاعدة بيانات في نفس الموقع



    السلام عليكم
    عندي قاعدة بيانات كبيرة قسمتها إلى خمسة أقسام في كل قسم مجموعة جداول ،
    تمام ؟

    الآن سأعمل لكل قاعدة بيانات ملف اتصال بهذا الشكل

    كود:
    # ملف الاتصال بقاعدة البيانات الأولى
    $hostname= "localhost";
    $database = "database01";
    $username= "root";
    $password = "123";
    $conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
    كود:
    # ملف الاتصال بقاعدة البيانات الثانية
    $hostname= "localhost";
    $database = "database02";
    $username= "root";
    $password = "123";
    $conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
    كود:
    # ملف الاتصال بقاعدة البيانات الثالثة
    $hostname= "localhost";
    $database = "database03";
    $username= "root";
    $password = "123";
    $conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
    مع ملاحظة أن جميع الجداول في قاعدة البيانات رقم 1 تنتهي بالرقم 1 مثل
    table01
    table11
    table21
    table31

    قاعدة البيانات رقم 2 تنتهي بالرقم 2 مثل
    table02
    table12
    table22
    table22

    وهكذا بقية الجداول في كل قاعدة بيانات

    المطلوب الآن
    إذا اختير الجدول رقم 955 مثلاً يروح يفتح لي الكونكشن رقم 5 لأنه سيجد الجدول هناك
    علماً بأنه سيعرف رقم الجدول من الرابط POST

    والمطلوب عمل select case وجملة if لهذه العملية توضع في كل صفحة من الموقع ستتصل بقواعد البيانات
    من يتكرم ويحلها لنا او يحاول
    وفق الله الجميع
    وهكذا







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


    وهل يمكن وضع كل ملفات الاتصال في ملف واحد مع تغيير

    $conn

    إلى

    $conn1
    $conn2
    $conn3

    أتمنى أن يكون الرد هذا اليوم يا أخوان وفقكم الله






  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    354


    عزيزي اعملهم دوال

    الداله الاولى اسمها connectdb1
    الثانيه connectdb2
    وهكذا.. وعند كل عملية تكتب اسم الداله

    تحياتي






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


    أخي ابو الويس شكراً لك
    الفكرة ليست كذلك لكن كما يلي:
    في كل مرة سيستخدم البرنامج دالة وبشكل متغير مرتبط باللنك post
    يعني إذا كان اللنك يحمل الآي دي رقم 5 سنفتح الدالة connectdb5
    وإذا سبعة يفتح 7 وهكذا
    تحتاج سيليكت كيس وجملة منطقية
    أظنها سهلة على المبرمجين ، من يكتبها لنا ؟؟






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    354


    ما زلت لم افهم 100%
    ولكن لنفرض انه من الاي دي 0 حتى 100 تريد ان تستعمل القاعده الاولى
    ومن 100 حتى 200 تستعمل الثانيه وهكذا

    اذا انت عملت ملف واحد به 4 دوال كل واحد تتصل بقاعده صح ؟؟

    اذا تعمل داله شرطيه عندما تستقبل الاي دي :

    اذا الاي دي اكبر او يساوي صفر واصغر من 100 :
    coonectdb1();
    elseif الاي دي اكبر او يساوي 100 واصغر من 200 :
    connectdb2

    وهكذا

    ولكن هذه الطريقة ليست عمليه انا مش عارف ليش تعمل هيك!






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


    طيب
    السؤال بصيغة ثانية
    عندي ألف كتاب قسمتهم في عشر قواعد بيانات
    كل قاعدة بيانات وضعت فيها 100 كتاب
    كل كتاب في جدول مستقل
    أسماء الجداول تبدأ من 1 إلى 1000
    الجداول اللي رقم آحادها واحد وضعتها في قاعدة بيانات رقم 1
    الجداول اللي رقم آحادها اثنين في قاعدة بيانات رقم 2
    وهكذا
    أول قاعدة بيانات فيها جدول بالتصنيفات وجدول آخر بأسماء الكتب، وكل كتاب له رقم آي دي هو نفس رقم الجدول
    الآن
    في صفحة قائمة الكتب سيضع الزائر المؤشر على الكتاب اللي اسمه (تفسير ابن كثير ) مثلاً
    المتغير سيكون بناءا على رقم آي دي الكتاب ، خلنا نقول رقم الآي دي 239
    هنا لازم نفتح قاعدة البيانات رقم 9 ونعطيه الجول رقم 239
    لذلك قلت أحتاج إلى سيليكت كيس وجملة إف
    مين يكتب لنا الجملة ويحلها لنا ؟
    وإذا فيه حل أسهل علموني






  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    354


    عزيزي ليش هالخربطه ؟ ؟

    هذه الطريقه ليست جيده

    حطهم في قاعده واحده افضل.. او لو اضطريت تفصلهم حط عدة جداول في نفس القاعده..
    وايضا اعذرني اخي مش فاهم 100% يعني لو ترفق ملف القاعده يكون افضل!!

    على كل حال الزائر وضع المؤشر على الموضوع رقم 239 وضغط موافق مثلا اذا سيكون لدينا متغير هو 239..

    يجب ان تفحص اخر رقم الي هو 9 بان تعتبر المتغير نص وتاخذ منه فقط اخر منزله يعني 9 وهنا تأتي الداله الشرطيه
    هل هذا ما تقصده؟؟؟






  8. #8
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


    أخي الحبيب ابو اويس شاكر لك تواصلك واهتمامك ، لولا وجودك لاستوحشت في هذا المكان
    لاأحد يجيب ، لا أحد يشارك ، الموضوع يجلس يوم ويومين ولا حد يشارك
    بل القسم كله شبه ميت ،
    سوالف ماعاد هي سوالف اللي عرفناها ،، الله المستعان
    المهم عزيزي
    تقسيم قاعدة البيانات ضروري إذا عرفت أن حجمها على الـ SQL Server أكثر من عشرة جيجابايت
    بعد تحويلها إلى MySql أصبحت في حدود 4 جيجابايت ، والتقسيم ضروريحتى يمكن فتح الداتابيس بسهولة والبحث فيها
    والبرنامج سبق لي أن عملته على الـ ASP على الشبكة المحلية وطريقتي في عمل الاتصال كما يلي
    أولاً انشأت عدة اتصالات لكل قاعدة بيانات ملف اتصال بهذا الشكل

    الملف الأول
    كود:
    Dim MM_connection_STRING
    MM_connection_STRING = "Driver={SQL Server};Server=(local);Database=booksww;Uid=sa;Pwd=111;"
    الملف الثاني

    كود:
    Dim MM_connection01_STRING
    MM_connection01_STRING = "Driver={SQL Server};Server=(local);Database=booksww01;Uid=sa;Pwd=111;"
    والملفات من الثالث إلى العاشر بنفس الطريقة مع تغير اسم قاعدة البيانات
    booksww02
    booksww03
    booksww04
    booksww05
    وهكذا

    نأتي إلى الصفحة التي ستعرض البيانات
    وضعنا فيها كل ملفات الاتصال بقواعد البيانات العشرة

    كود:
    <!--#include file="Connections/connection.asp" -->
    <!--#include file="Connections/connection00.asp" -->
    <!--#include file="Connections/connection01.asp" -->
    <!--#include file="Connections/connection03.asp" -->
    <!--#include file="Connections/connection04.asp" -->
    <!--#include file="Connections/connection05.asp" -->
    <!--#include file="Connections/connection06.asp" -->
    <!--#include file="Connections/connection07.asp" -->
    <!--#include file="Connections/connection08.asp" -->
    <!--#include file="Connections/connection09.asp" -->
    الآن نريد أن نغير اختيار الاتصال حسب المتغير الذي سيأخذه من الرابط وهو رقم آي دي الكتاب
    الكتاب وجوده في أي قاعدة بيانات يعتمد على رقم الآحاد حسب المنطقية اللي شرحتها لك سابقاً إذا آحاده 9 يروح لقاعدة البيانات 9 إذا 5 يروح قاعدة بيانات 5 ويفتح اتصال معها وهكذا
    الكود بالـ ASP كما يلي

    كود:
    Dim rs_boostitle
    Dim rs_boostitle_numRows
    ' إنشاء متغير لتحديد الجدول حسب رقم الآي دي 
    Dim booktable 
    
    if Request("bkid") then
    DIM firstno
    
    		booktable = request("bkid")
    		firstno = right(booktable,1)
    		
    		select case firstno
    			
    			case 0
    			MM_connection_STRING=MM_connection00_STRING
    			case 1
    			MM_connection_STRING=MM_connection01_STRING
    			case 2
    			MM_connection_STRING=MM_connection02_STRING
    			case 3
    			MM_connection_STRING=MM_connection03_STRING
    			case 4
    			MM_connection_STRING=MM_connection04_STRING
    			case 5
    			MM_connection_STRING=MM_connection05_STRING
    			case 6
    			MM_connection_STRING=MM_connection06_STRING
    			case 7
    			MM_connection_STRING=MM_connection07_STRING
    			case 8
    			MM_connection_STRING=MM_connection08_STRING
    			case 9
    			MM_connection_STRING=MM_connection09_STRING
    					
    		end select
    		
    end if
    سمينا متغير
    أعطيناه قيمة آخر رقم في الآي دي
    حولنا للكونكشن اللي سيجد جدول الكتاب فيها

    هذا الكود نريد مثله بالـ PHP
    وإن شاء الله تكون الصورة واضحة 100%
    وفقك الله ورعاك






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    كود PHP:
    // --------------------- Code By -----------------
    // Rewaq Network - [url]http://it.rewaq.com[/url]
    // --------------------- CONFIG -----------------
    $hostname"localhost";
    $username"root";
    $password "123";

    $database = array(
        
    '0' => 'booksww0',
        
    '1' => 'booksww1',
        
    '2' => 'booksww2',
        
    '3' => 'booksww3',
        
    '4' => 'booksww4',
        
    '5' => 'booksww5',
        
    '6' => 'booksww6',
        
    '7' => 'booksww7',
        
    '8' => 'booksww8',
        
    '9' => 'booksww9',
        );

    // --------------------- INFO -----------------
    $id intval($_POST['id']);// or $_GET['id']
    $ext $id 10;

    // --------------------- CONNECT -----------------
    $conn mysql_pconnect($hostname$username$password) or die(mysql_error()); 
    mysql_select_db($database[$ext],$conn); 
    جرب هذا الكود


    ارق تحية





    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


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






  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    كود PHP:
    // بداية سنحدد بعض المتغيرات الأساسية
    // --------------------- CONFIG ----------------- 
    $hostname"localhost"// الهوست .. لا تغيره
    $username"root"// مستخدم قاعدة البيانات
    $password "123"// كلمة المرور لمستخدم قاعدة البيانات

    // الآن مصفوفة تضم اسماء قواعد البيانات
    // لاحظ ان ترتيب القواعد يعتمد على رقم الآحاد لرقم الكتاب
    // اي ان الكتاب رقم 90 في القاعدة صفر
    // والكتاب ذو الرقم 567 في القاعدة سبعة 
    // وهكذا
    $database = array( 
        
    '0' => 'booksww0'
        
    '1' => 'booksww1'
        
    '2' => 'booksww2'
        
    '3' => 'booksww3'
        
    '4' => 'booksww4'
        
    '5' => 'booksww5'
        
    '6' => 'booksww6'
        
    '7' => 'booksww7'
        
    '8' => 'booksww8'
        
    '9' => 'booksww9'
        ); 

    // --------------------- INFO ----------------- 
    // تحديد رقم الكتاب
    $id intval($_POST['id']);// or $_GET['id'] 

    // تحديد رقم الآحاد
    $ext $id 10

    // --------------------- CONNECT ----------------- 
    $conn mysql_pconnect($hostname$username$password) or die(mysql_error());  
    mysql_select_db($database[$ext],$conn); 






    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com

  12. #12
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


    أخوي القائد
    أعطاني البرنامج هذا الخطأ

    Undefined index: id in c:\inetpub\wwwroot\booksww\index2.php on line 24

    والسطر المقصود هو
    كود PHP:
    $id intval($_POST['id']);// 







  13. #13
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    اظن ان المشكلة هي بعدم وجود المتغير
    كود PHP:
    $_POST['id'
    جرب استخدام المتغير الخاص برقم الكتاب عوضا عنه


    ارق تحية





    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Sep 2005
    المشاركات
    113


    عزيزي القائد مشكور وصلنا إلى جزء من الحل ولم يكتمل
    المشكلة الآن عزيزي كما يلي
    جدول التصنيفات وجدول أسماء الكتب في قاعدة بيانات مستقلة دعنا نقول اسمها booksww
    هذه القاعدة سيكون البرنامج متصلاً بها بشكل افتراضي في كل الحالات
    إذا طلب الزائر كتاب رقم 368 مثلاً سيتصل البرنامج بقاعدة البيانات الثانية booksww8 ويستعرض الجدول رقم 368
    مع ملاحظة أن ملفات الاتصال تكون في ملفات خارجية وتضاف بطريقة include
    وفقك الله
    بالمناسبة الخطأ السابق كما ذكرت بسبب عدم وجود المتغير
    لكن لما نقلت الكود لصفحة تاخذ متغير استمرت المشكلة ولكن اختفت عندما استبعدت intval وأعطى نتيجة سليمة






  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    364


    لم افهم المطلوب تحديدا ...

    اتمنى عليك ان تراسلني بالماسنجر الخاص بك حتى اتمكن من التحدث اليك بشكل مباشر:
    http://it.rewaq.com/rewaq-contact



    ارق تحية





    __________________
    الخدمات البرمجية
    تعديلات برمجية - تطوير برمجيات جاهزة - صيانة قواعد بيانات
    برمجة خاصة (الأولوية للأفكار الجديدة والخاصة)

    المراسلة : http://it.rewaq.com





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

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

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