سؤال

تحيات،

لدي بيانات مخزنة في الخلية مع محدد ""، في جدول واحد.لدي صفوف وأعمدة مخزنة في قاعدة البيانات أيضًا.الآن لا بد لي من إخراج البيانات باستخدام أرقام الصفوف والأعمدة المخزنة في قاعدة البيانات لرسم الجدول.

أرقام الصفوف والأعمدة هي مدخلات المستخدم، لذلك قد تختلف.

لنفترض أن هناك رقم 3 في العمود و3 في الصفوف.

أحتاج إلى القيام بذلك مثل العرض مثل،

|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|

حيث d1-d9 هي البيانات المخزنة في قاعدة بيانات mysql بمحدد "" في جدول واحد.

شكرا لمساعدتي.

هل كانت مفيدة؟

المحلول

ويمكنك تحويل القيم مفصولة بفواصل من عمود البيانات الخاصة بك في صفيف باستخدام وظيفة تنفجر ():

<?php
  $result = mysql_query('SELECT rows, columns, data from table_name where id=1');
  $record = mysql_fetch_assoc($result);

  $rows = $record['rows'];
  $columns = $record['columns'];

  $data = explode(',' , $record['data']);

  if (sizeof($data) != $rows * $columns) die('invalid data');
?>

لعرض الجدول، تحتاج اثنين متداخلة لالحلقات:

<table>
<?php for ($row = 0; $row < $rows; $row++) : ?>
    <tr>
    <?php for ($column = 0; $column < $columns; $column++) : ?>
        <td>
            <?php echo $data[$row * $columns + $column]; ?>
        </td>
    <?php endfor ?>
    </tr>
<?php endfor ?>
</table>

نصائح أخرى

وهذا لن يساعد على حل هذه المشكلة بالذات، ولكن نصيحة جيدة: أبدا EVER إرسال فاصلة القيم فصل في حقل قاعدة البيانات. لا يمكنك الاستعلام بشكل معقول المعلومات المخزنة مثل هذا، وسيتم تشوش رمز التطبيق الخاص بك مع التحويلات قبيحة. بدلا من ذلك، استخدام جدول منفصل مع الإشارة إلى الجدول الرئيسي وصف واحد لكل قيمة.

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

2،3، د1، د2، د3، د4، د5، د6

عندما تقوم بجلب البيانات من الخلية وتنفجر على السلسلة التي تم جلبها، ستحصل على مجموعة أبعاد واحدة تحتوي على 8 عناصر

$r = $e[0] الصفوف

$c = $e[1] عمود

بيانات $e[2-7].

  • اكتب علامة الافتتاح <الجدول>
  • حلقتان، واحدة في الأخرى،
  • سيقوم الأول بإنشاء رمز لبداية الصف
  • اكتب علامة الافتتاح <tr>
  • داخل واحد سيتم إنشاء رمز للصف.
  • اكتب علامة الافتتاح <td>
  • كتابة البيانات $e[1 + الموضع المحسوب من داخل الحلقات وخارجها]
  • اكتب علامة الإغلاق <td>
  • نهاية الحلقة الداخلية
  • كتابة علامة الإغلاق <tr>
  • نهاية الحلقة الخارجية
  • كتابة علامة الإغلاق <الجدول>

ينبغي أن تعطيك هذه الفكرة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top