صفحة 2 من 2 الأولىالأولى 12
النتائج 16 إلى 28 من 28

الموضوع: اريد الاستعلام من جدولين

  1. #16


    انا كتبت الاستعلام كـسكيول خارج ال php لجل تعدله بما تريد

    ياليت ترسلي جزء بسيط من القاعدة (البنية + جزء من السجلات)





    __________________
    مجتمع حرس الأمني في خدمة الجميع

  2. #17
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    104


    تفضل اخي ابو نجم قاعدة البيانات
    كود PHP:
    -- بنية الجدول `t1`
    -- 

    CREATE TABLE `t1` (
      `
    idint(4NOT NULL auto_increment,
      `
    nuvarchar(11NOT NULL,
      `
    ryovarchar(50NOT NULL,
      `
    unixvarchar(50NOT NULL,
      `
    darvarchar(100NOT NULL,
      `
    searchvarchar(20NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM DEFAULT CHARSET=cp1256 DELAY_KEY_WRITE=1 AUTO_INCREMENT=75 ;

    -- 
    -- 
    إرجاع أو إستيراد بيانات الجدول `t1`
    -- 

    INSERT INTO `t1` (`id`, `nu`, `ryo`, `unix`, `dar`, `search`) VALUES 
    (6'145787''455''1237410000''dsq''all'),
    (
    71'144577''45665''1237842000''msh''all'),
    (
    72'777544''4654''1237842000''msh''all'),
    (
    73'4565557''3334''1237928400''msh''all'),
    (
    74'7788''4564''1238446800''msh''all');



    -- --------------------------------------------------------

    -- 
    -- 
    بنية الجدول `t2`
    -- 

    CREATE TABLE `t2` (
      `
    idint(4NOT NULL auto_increment,
      `
    nuvarchar(11NOT NULL,
      `
    ryovarchar(50NOT NULL,
      `
    unixvarchar(50NOT NULL,
      `
    darvarchar(100NOT NULL,
      `
    savarchar(100NOT NULL,
      `
    ssqvarchar(100NOT NULL,
      `
    swevarchar(100NOT NULL,
      `
    searchvarchar(20NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM DEFAULT CHARSET=cp1256 DELAY_KEY_WRITE=1 AUTO_INCREMENT=75 ;

    -- 
    -- 
    إرجاع أو إستيراد بيانات الجدول `t2`
    -- 

    INSERT INTO `t2` (`id`, `nu`, `ryo`, `unix`, `dar`, `sa`, `ssq`, `swe`, `search`) VALUES 
    (6'145787''4567''1237410000''dsq''ds1''as''open''all'),
    (
    71'144577''76786''1237842000''ddg''ds1''as''open''all'),
    (
    72'777544''987''1237842000''a''ds1''as''open''all'),
    (
    73'4565557''334''1237928400''sff''ds1''as''open''all'),
    (
    74'7788''1448''1238446800''msh''ds1''as''open''all'); 







  3. #18


    شكراً,

    عندك id في كلا الجدولين مناسب للربط مافي داعي ل search

    الاستعلام صار :

    كود:
    select * from t1,t2 where t1.id=t2.id and t1.$x like '%some words%' and t2.$x like '%some words%'
    بالأحمر استبدلت or ب and, في الحالة الأولى رح تظهر نتائج الجدول الأول + نتائج الجدول الثاني السب مثل تساوي القيم في الجدولين عندك

    لكن لو كان هذا المطلوب فرجعها الى or


    انا لاحظت ام $x عندك دال ع اسم العمود في جدولك , صح ؟





    __________________
    مجتمع حرس الأمني في خدمة الجميع

  4. #19
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    104


    اخي أبونجم

    نفس الخطاء
    كود PHP:
       Warningmysql_num_rows(): supplied argument is not a valid MySQL result  resource 
    وبالنسبه للربط id ليس شرطا ان يكون موحد في كلا الجدولين مع انه مبين في القاعدة التي و ضعتها و لكن حقل search موحد في كلا الجدولين لذلك استخدمت الاستعلام هكذا
    كود PHP:
    if(!$this_word){ echo '<div align="center">'; echo "   لا توجد نتائج   "; echo '</div>'; }

    else {

    if(
    $items==1){ $x "nu";}
    if(
    $items==2){ $x "ryo";}
    if(
    $items==3){ $x "dar";}

     
    $sql "SELECT * FROM  t1,t2  WHERE t1.search=t2.search AND t1.$x LIKE '%$this_word%'  AND t2.$x LIKE '%$this_word%'  ";
    $result mysql_query($sql);

    $num mysql_num_rows($result);


    if(
    $num<=0){ echo ' لا توجد نتائج ';   }

    else { 
    ونفس المشكلة





    التعديل الأخير تم بواسطة love php ; 02-04-2009 الساعة 02:57 PM

  5. #20


    المقصود من تساوي القيم ان القيمة في السجل اللي ترتيبه x في الجدول 1 = السجل اللي ترتيبه y في الجدول 2
    حيث x=y

    مو القيمة تكون نفسها في كل السجلات


    بالمناسبة ما جاوبتني ع سؤالي






  6. #21
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    104


    فهمت عليك اخي ابو نجم

    لقد وضعت الحقل search بنفس ترتيبه في الجدول الاخر و لكن نفس الخطاء

    بهذا الشكل
    كود PHP:
    -- بنية الجدول `t1`
    -- 

    CREATE TABLE `t1` (
      `
    idint(4NOT NULL auto_increment,
      `
    searchvarchar(20NOT NULL,
      `
    nuvarchar(11NOT NULL,
      `
    ryovarchar(50NOT NULL,
      `
    unixvarchar(50NOT NULL,
      `
    darvarchar(100NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM DEFAULT CHARSET=cp1256 DELAY_KEY_WRITE=1 AUTO_INCREMENT=75 ;

    -- --------------------------------------------------------

    -- 
    -- 
    بنية الجدول `t2`
    -- 

    CREATE TABLE `t2` (
      `
    idint(4NOT NULL auto_increment,
      `
    searchvarchar(20NOT NULL,
      `
    nuvarchar(11NOT NULL,
      `
    ryovarchar(50NOT NULL,
      `
    unixvarchar(50NOT NULL,
      `
    darvarchar(100NOT NULL,
      `
    savarchar(100NOT NULL,
      `
    ssqvarchar(100NOT NULL,
      `
    swevarchar(100NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM DEFAULT CHARSET=cp1256 DELAY_KEY_WRITE=1 AUTO_INCREMENT=75 







  7. #22


    وليش مايكون عندك عمود دوره index اي ترقيم تلقائي في جداولك يفيدك في الربط
    البنية :
    كود:
    create ....... (index int auto_increment ... )
    ع اي حال الاستعلام كصيغة هو صحيح وجربته ع قاعدتك من المي اسكيول مباشرة واسترجعت البيانات بشكل صحيح

    المشكلة انحصرت في php

    لذلك انا بحاجة للاجابة ع سؤالي السابق (للمرة الثالثة )





    __________________
    مجتمع حرس الأمني في خدمة الجميع

  8. #23
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    104


    اخي ابو نجم اولا الف شكرا على تجاوبك معي و الف شكر لباقي الاعضاء كذلك

    ثانيا بالسبه لسؤالك اذا كنت تقصد السؤال عن ..

    بالأحمر استبدلت or ب and, في الحالة الأولى رح تظهر نتائج الجدول الأول + نتائج الجدول الثاني السب مثل تساوي القيم في الجدولين عندك

    لكن لو كان هذا المطلوب فرجعها الى or


    انا لاحظت ام $x عندك دال ع اسم العمود في جدولك , صح ؟

    نعم صحيح $x دال ع اسم العمود في الجدول

    بحيث انه ياخذ على حسب العمود كما هو موضح بالكود
    كود PHP:
    if($items==1){ $x "nu";}
    if(
    $items==2){ $x "ryo";}
    if(
    $items==3){ $x "dar";} 







  9. #24
    عضو نشيط
    تاريخ التسجيل
    Mar 2009
    المشاركات
    104


    اخواني هل من حل






  10. #25
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    جرب كده الصفحة دية كده ده الي عارف اخي واسف علي التاخير بس معرفتي بال mysqlقليله

    كود PHP:

    mysql_connect
    ("localhost","root","123456");
    mysql_select_db("test2");

    switch(
    $_GET['act'])
    {
        default:
        echo
    '<form action="serch.php?act=src" method="POST">
        <input type="text" name="word"><br>
        <select name="fr">
        <option value="id">id</option>
        <option value="nu">nu</option>
        <option value="ryo">ryo</option>
        </select>
        <input type="submit" value="srcword"><br>
        </form>
        '
    ;
        break;
        case 
    'src':
        
    $word=trim($_POST['word']);
        
    $fr=$_POST['fr'];
        if(
    $fr)
        {
            
    $x="t1.".$fr;
            
    $x2="t2.".$fr;
        }
        
    $query=mysql_query("select*from t2,t1 where $x2 LIKE'%$word%' or  $x LIKE'%$word%'");
        while(
    $row=mysql_fetch_array($query))
            {
                echo
    "<pre>";
                
    print_r($row);
                echo
    "</pre>";
            }
        
        
        break;







    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  11. #26
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


    اخوي جرب هالطريقة وباذن الله بتنجح معاك ولا تنسى السمي كولن بنهاية الكود
    وللتوضيح يتم استخدام JOIN للربط بين جدولين في الاستعلام

    SELECT
    *
    FROM
    t1
    JOIN
    t2
    ON
    t2.$this_word=t1.$this_word





    __________________
    سوق الكويت

  12. #27
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    118


    استخدم الـــinner join ....

    انتبه فقط عند
    كود PHP:
    select cell1 ,cell2,cell3 from TABLE1 INNER JOIN TABLE2 on CONDITION 
    cell1 ,cell2,cell3الحقول في الجدول الأول ...وممكن أن تعممها (اجعلها كل الحقول )
    TABLE1اسم الجدول الأول
    TABLE2اسم الجدول الثاني
    CONDITIONالشرط المطلوب بين الجدولين
    جرب هذه الطريقة ...





    التعديل الأخير تم بواسطة MaJoOoDy ; 06-04-2009 الساعة 02:11 PM

  13. #28
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    392


    اخي Q8 Developer نفس الخطاء ظهر لي

    واخي MaJoOoDy ارجوا انك تتطبق على الكود لانه يوجد متغير على حسب الحقل










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

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

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