اذهب إلى المحتوى
  • 0

[PHP][mysql]جلب بيانات عمود بناء على قيمة عمود آخر في نفس الجدول

محمد المصري12

السؤال

السلام عليكم

الجدول التالي فيه اسم متغير و ترجمة عربي و انجليزي ( نفس المتغير )

2022-08-20_17-00-28.thumb.jpg.d7b97c22dae0f7f1cb4132e165de5f1c.jpg

 

الاستعلام طبعا انا عاملة بسيط جدا

$getDATA = $conn->query("SELECT langName, langVar, translation FROM lang ");

بنية قاعدة البيانات كالتالي 

22.jpg.a0b9df371fcb267f95c1434c70d2edab.jpg

و جدول الاستعراض كالتالي

 

                        <table id="translation" class="align-middle mb-0 table" style="width:100% text-align:center">
                            <thead>
                            <tr style="text-align:center" class="btn-light">
                                <th>المتغير</th>
                                <th>الترجمة العربية</th>
                                <th>الترجمة الانجليزية</th>
                            </tr>
                            </thead>
                            <tbody>
                            <?php
                            foreach ($getDATA AS $getDATA){
                            ?>

                            <tr>
                                <td><?php echo $getDATA['langVar'] ?></td>
                                <td><?php echo $getDATA['translation'] ?></td>
                                <td><?php echo $getDATA['translation'] ?></td>

                            </tr>
<?php } ?>

                        </table>

الان انا عاوز استعلام او طريقة اظهر اسم المتغير مرة وحدة بس و في جدول الترجمة بالعربي تظهر قيمة العربي و في الانجليزي تظهر الانجليزي 

ازاي اقدر اعمل ده

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك بطرف الخادم مباشرة تجميع وتنسيق البيانات بالشكل الذي تحتاجه الواجهة لديك، ابدأ بالاستعلام عن البيانات من الجدول كما تفعل حاليًا:

$getDATA = $conn->query("SELECT langName, langVar, translation FROM lang ");

وخزن القيم من ذلك الاستعلام ضمن مصفوفة مفاتيحها هي قيمة langVar وقيمها هي مصفوفة الترجمات المتوفرة للمصطلح كالتالي:

$byLangVar = [];

foreach($getDATA as $data) {
  $byLangVar[$data['langVar']][] = $data;
}

ستحصل على بنية بيانات مشابهة لما يلي:

[

  'ad_cmrcaldsc' => [    
    ['langVar' => 'ad_cmrcaldsc', 'langName' => 'EN', 'translation' => '..'],
    ['langVar' => 'ad_cmrcaldsc', 'langName' => 'AR', 'translation' => '..']
  ],
  ..
]

يمكنك الآن المرور على هذه المصفوفة بدلًا من بيانات الاستعلام السابقة، ولكل مفتاح تطبع سطرًا واحدًا يعبر عن الترجمات المتعددة لهذا المتغير كالتالي:

foreach($byLangVar as $langVar => $translations): ?>
  <tr>
    <td><?php echo $langVar ?></td>
    <?php foreach($translations as $translation): ?>  
      <td><?php echo $translation['translation'] ?></td>
      <td><?php echo $translation['translation'] ?></td>
    <?php endforeach ?>
  </tr>
<?php endforeach ?>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...