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

السؤال

نشر

السلام عليكم

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

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 ?>

 

  • 0
نشر
بتاريخ On 10‏/11‏/2020 at 04:29 قال كريم أمعطيل:

من باب توضيح إجابة الأخ وائل وحتى يكون لديك مثال حي لما تحدث عنه

في البداية نحتاج القيام بربط بقاعدة البيانات ثم جلب بيانات حساب معين من أحد جداول القاعدة, ويكون هذا عبر الكود التالي :

<?php

mysql_connect('localhost','username','password');
@mysql_select_db('database') or die( "حدث خطأ في تحديد قاعدة البيانات");

$id = '1';
$query = "SELECT * FROM إسم الجدول WHERE id = ".$id;
$result = mysql_query($query);
$data = mysql_fetch_array($result);
mysql_close();

?>

ثم بعدها تأتي خطوة إضافة فورم(إستمارة) لإتاحة التعديل على البيانات, والكود يكون بهذا الشكل :

<form method="post" action="EditData.php" />
   <table>
      <tr>
         <td><input type="hidden" name="id" value="<?= $row['id'] ?>"></td>
      </tr>
      <tr>
         <td>الإسم الشخصي:</td>
         <td><input type="text" name="first" value="<?= $row['first'] ?>"></td>
      </tr>
      <tr>
         <td>الإسم العائلي:</td>
         <td><input type="text" name="last" value="<?= $row['last'] ?>"></td>
      </tr>
      <tr>
         <td>رقم الهاتف:</td>
         <td><input type="text" name="phone" value="<?= $row['phone'] ?>"></td>
      </tr>
      <tr>
         <td>البريد الإلكتروني:</td>
         <td><input type="text" name="email" value="<?= $row['email'] ?>"></td>
      </tr>
   </table>
</form>

ملاحظة : في الكود السابق إعتمدت <?= بدل <? echo وهذه الخاصية في الكتابة متوفرة فقط في نسخة php فوق 7, أي إذا كنت تعتمد نسخة أقدم فيجب كتابة echo وإضافة ; عند النهاية تفادياً لظهور أي أخطاء

 

كما تلاحظ في الفورم وضعنا قيمة action هي EditData.php, وتعني الملف الذي يقوم بمعالجة مٌدخلات الإستمارة

محتوى هذا الملف يكون بهذا الشكل :

<?php

mysql_connect('localhost','username','password');
@mysql_select_db('database') or die( "حدث خطأ في تحديد قاعدة البيانات");

mysql_query("UPDATE إسم الجدول SET first=".$_POST['first']." AND last=".$_POST['last']." WHERE id=".$_POST['id']);
mysql_close();

?>

بالتوفيق

 

بتاريخ On 20‏/8‏/2022 at 18:40 قال Hassan Hedr:

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

$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 ?>

 

كيف ممكن ان نجعل جدول  في صفحة php تصميمه يكون عامودي وليس أفقي.. 

الأسم.......... 

العمر.......... 

الأيميل......... 

وهكذا 

  • 0
نشر
بتاريخ 24 دقائق مضت قال Baker Mohammed:

 

كيف ممكن ان نجعل جدول  في صفحة php تصميمه يكون عامودي وليس أفقي.. 

الأسم.......... 

العمر.......... 

الأيميل......... 

وهكذا 

على حسب المطلوب، لو تريد كود HTML فقط، فسيكون الجدول كالتالي:

<table>
  <tr>
    <td>الأسم</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>العمر</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>الأيميل</td>
    <td>..........</td>
  </tr>
</table>

ومن خلال تنسيقات CSS نقوم بتنسيق الجدول:

table {
  direction: rtl;
  border-collapse: collapse;
  width: 100%;
}

th, td {
  border: 1px solid black;
  padding: 8px;
  text-align: right;
}

tr:nth-child(even) {
  background-color: #f2f2f2;
}

أما لو تريد عرض البيانات من مصفوفة أو قاعدة بيانات، فستحتاج إلى حلقة تكرار for:

<?php
$data = [
  'الأسم' => 'اسم المستخدم',
  'العمر' => '25',
  'الأيميل' => 'user@example.com',
];

echo '<table>';

foreach ($data as $key => $value) {
  echo '<tr>';
  echo '<td>' . $key . '</td>';
  echo '<td>' . $value . '</td>';
  echo '</tr>';
}

echo '</table>';
?>

 

  • 0
نشر
بتاريخ 7 ساعة قال Mustafa Suleiman:

على حسب المطلوب، لو تريد كود HTML فقط، فسيكون الجدول كالتالي:

<table>
  <tr>
    <td>الأسم</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>العمر</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>الأيميل</td>
    <td>..........</td>
  </tr>
</table>

ومن خلال تنسيقات CSS نقوم بتنسيق الجدول:

table {
  direction: rtl;
  border-collapse: collapse;
  width: 100%;
}

th, td {
  border: 1px solid black;
  padding: 8px;
  text-align: right;
}

tr:nth-child(even) {
  background-color: #f2f2f2;
}

أما لو تريد عرض البيانات من مصفوفة أو قاعدة بيانات، فستحتاج إلى حلقة تكرار for:

<?php
$data = [
  'الأسم' => 'اسم المستخدم',
  'العمر' => '25',
  'الأيميل' => 'user@example.com',
];

echo '<table>';

foreach ($data as $key => $value) {
  echo '<tr>';
  echo '<td>' . $key . '</td>';
  echo '<td>' . $value . '</td>';
  echo '</tr>';
}

echo '</table>';
?>

 

لا اخي انا اقصد يكون الجدول عامودي مع خطوط وليس نقاط هذهِ نقاط مثال فقط.... 

  • 0
نشر
بتاريخ 15 ساعة قال Mustafa Suleiman:

على حسب المطلوب، لو تريد كود HTML فقط، فسيكون الجدول كالتالي:

<table>
  <tr>
    <td>الأسم</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>العمر</td>
    <td>..........</td>
  </tr>
  <tr>
    <td>الأيميل</td>
    <td>..........</td>
  </tr>
</table>

ومن خلال تنسيقات CSS نقوم بتنسيق الجدول:

table {
  direction: rtl;
  border-collapse: collapse;
  width: 100%;
}

th, td {
  border: 1px solid black;
  padding: 8px;
  text-align: right;
}

tr:nth-child(even) {
  background-color: #f2f2f2;
}

أما لو تريد عرض البيانات من مصفوفة أو قاعدة بيانات، فستحتاج إلى حلقة تكرار for:

<?php
$data = [
  'الأسم' => 'اسم المستخدم',
  'العمر' => '25',
  'الأيميل' => 'user@example.com',
];

echo '<table>';

foreach ($data as $key => $value) {
  echo '<tr>';
  echo '<td>' . $key . '</td>';
  echo '<td>' . $value . '</td>';
  echo '</tr>';
}

echo '</table>';
?>

 

هيك يكون... مثل ماموضح في صوره 

IMG_20240713_171730_845_edit_831999887650428.jpg

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...