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

السؤال

نشر

فيه عندي قاعدة بيانات mysqli... 

يوجد فيها جدولين 

الأول اسمه UN مرتبط مع form 

الثاني اسمه CH مرتبط مع form 

أنشأت جداول php... حتى يتم عرض البيانات من قاعدة بيانات mysqli.... 

لديه 10 ملفات جداول php خاصة لعرض بيانات من جدول UN..... 

اسماء ملفات الخاصة بعرض بيانات من جدول UN

SHOW1. PHP

SHOW2. PHP

SHOW3. PHP 

SHOW4. PHP

SHOW5. PHP

SHOW6. PHP

SHOW7. PHP

SHOW8. PHP 

SHOW9. PHP 

SHOW10. PHP 

لديه 10 ملفات جداول php خاصة لعرض بيانات من جدول CH

اسماء ملفات الخاصة ب جداول الذي تعرض بيانات من جدول بيانات CH

SHOW_1.PHP

SHOW_2.PHP

SHOW_3.PHP

SHOW_4.PHP

SHOW_5.PHP

SHOW_6.PHP

SHOW_7.PHP

SHOW_8.PHP

SHOW_9.PHP

SHOW_10.PHP

الى هنا عمليه الاتصال والإرسال والعرض ناجحة ومافيها مشكله...... 

............................ 

 

بدي اعمل زر تحميل البيانات من جدول PHP إلى اكسل... البيانات الموجودة نصوص وصور... علمآ ملفات جداول UN فيها اعمده مختلفه عن ملفات جداول CH.... فقط بدي كود الخاص ب تحميل البيانات من جدول PHP إلى اكسل...

Recommended Posts

  • 0
نشر

يمكنك استخدام المكتبة الحديثة PHPSpreadsheet لأنها تحظى بدعم مستمر، تأكد من تثبيت مكتبة PHPSpreadsheet باستخدام Composer. إذا لم تكن قد ثبت Composer بعد، يمكنك تنزيله من الموقع الرسمي Composer.

ثم، لتثبيت PHPSpreadsheet، افتح نافذة الأوامر في مجلد مشروعك واستخدم الأمر التالي:

composer require phpoffice/phpspreadsheet

بعد تثبيت المكتبة، يمكنك استخدام الكود التالي لتحميل البيانات من قاعدة البيانات إلى ملف Excel:

<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// تحديد الجدول الذي ترغب في تحميل بياناته
$tableName = "UN"; // أو "CH" حسب ما ترغب
$sql = "SELECT * FROM $tableName";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();

    // الحصول على أسماء الأعمدة
    $fields = $result->fetch_fields();
    $column = 'A';
    foreach ($fields as $field) {
        $sheet->setCellValue($column . '1', $field->name);
        $column++;
    }

    // الحصول على البيانات
    $rowNumber = 2;
    while($row = $result->fetch_assoc()) {
        $column = 'A';
        foreach ($row as $cell) {
            $sheet->setCellValue($column . $rowNumber, $cell);
            $column++;
        }
        $rowNumber++;
    }

    // حفظ الملف
    $writer = new Xlsx($spreadsheet);
    $filename = "data_from_$tableName.xlsx";
    $writer->save($filename);

    echo "Data has been exported to $filename successfully.";
} else {
    echo "0 results";
}

$conn->close();
?>

بعد الاتصال بقاعدة البيانات، نقوم بكتابة استعلام جميع البيانات من الجدول المحدد (UN أو CH)، ثم إنشاء ملف Excel جديد باستخدام مكتبة PHPSpreadsheet، و تعبئة الملف بأسماء الأعمدة والبيانات، ثم في الأخير نقوم بحفظ الملف باسم data_from_UN.xlsx أو data_from_CH.xlsx حسب الجدول المستخدم.

و تأكد من تغيير بيانات الاتصال بقاعدة البيانات ($servername، $username، $password، $dbname) بما يتناسب مع إعدادات قاعدة البيانات الخاصة بك.

  • 0
نشر
بتاريخ 4 دقائق مضت قال Chihab Hedidi:

يمكنك استخدام المكتبة الحديثة PHPSpreadsheet لأنها تحظى بدعم مستمر، تأكد من تثبيت مكتبة PHPSpreadsheet باستخدام Composer. إذا لم تكن قد ثبت Composer بعد، يمكنك تنزيله من الموقع الرسمي Composer.

ثم، لتثبيت PHPSpreadsheet، افتح نافذة الأوامر في مجلد مشروعك واستخدم الأمر التالي:

composer require phpoffice/phpspreadsheet

بعد تثبيت المكتبة، يمكنك استخدام الكود التالي لتحميل البيانات من قاعدة البيانات إلى ملف Excel:

<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// تحديد الجدول الذي ترغب في تحميل بياناته
$tableName = "UN"; // أو "CH" حسب ما ترغب
$sql = "SELECT * FROM $tableName";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();

    // الحصول على أسماء الأعمدة
    $fields = $result->fetch_fields();
    $column = 'A';
    foreach ($fields as $field) {
        $sheet->setCellValue($column . '1', $field->name);
        $column++;
    }

    // الحصول على البيانات
    $rowNumber = 2;
    while($row = $result->fetch_assoc()) {
        $column = 'A';
        foreach ($row as $cell) {
            $sheet->setCellValue($column . $rowNumber, $cell);
            $column++;
        }
        $rowNumber++;
    }

    // حفظ الملف
    $writer = new Xlsx($spreadsheet);
    $filename = "data_from_$tableName.xlsx";
    $writer->save($filename);

    echo "Data has been exported to $filename successfully.";
} else {
    echo "0 results";
}

$conn->close();
?>

بعد الاتصال بقاعدة البيانات، نقوم بكتابة استعلام جميع البيانات من الجدول المحدد (UN أو CH)، ثم إنشاء ملف Excel جديد باستخدام مكتبة PHPSpreadsheet، و تعبئة الملف بأسماء الأعمدة والبيانات، ثم في الأخير نقوم بحفظ الملف باسم data_from_UN.xlsx أو data_from_CH.xlsx حسب الجدول المستخدم.

و تأكد من تغيير بيانات الاتصال بقاعدة البيانات ($servername، $username، $password، $dbname) بما يتناسب مع إعدادات قاعدة البيانات الخاصة بك.

هل يوجد طريقة غير استخدام المكتبة؟! هل يوجد كود خاص فقط ب تحميل البيانات إلى الأكسل يناسب الجداول والصفحات الموجودة؟ اما موضوع الاتصال بقاعدة بيانات ف هذا الموضوع موضوع في ملف conn ولا حاجة لتكراره

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Omer Amad:

هل يوجد طريقة غير استخدام المكتبة؟! هل يوجد كود خاص فقط ب تحميل البيانات إلى الأكسل يناسب الجداول والصفحات الموجودة؟ اما موضوع الاتصال بقاعدة بيانات ف هذا الموضوع موضوع في ملف conn ولا حاجة لتكراره

يمكنك استخدام وظائف PHP المدمجة لإنشاء ملف Excel بصيغة CSV بدون استخدام مكتبة خارجية، حيث أن صيغة CSV مدعومة من قبل Excel ويمكن فتحها وعرضها بسهولة، بالشكل التالي:

<?php
include('conn.php'); // تضمين ملف الاتصال بقاعدة البيانات

// تحديد الجدول الذي ترغب في تحميل بياناته
$tableName = "UN"; // أو "CH" حسب ما ترغب

// استعلام للحصول على البيانات من الجدول المحدد
$sql = "SELECT * FROM $tableName";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // تحديد اسم الملف
    $filename = "data_from_$tableName.csv";
    
    // ضبط ترويسات HTTP
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=' . $filename);
    
    // فتح تدفق الخرج
    $output = fopen('php://output', 'w');
    
    // الحصول على أسماء الأعمدة
    $fields = $result->fetch_fields();
    $header = [];
    foreach ($fields as $field) {
        $header[] = $field->name;
    }
    
    // كتابة أسماء الأعمدة إلى ملف CSV
    fputcsv($output, $header);
    
    // كتابة البيانات إلى ملف CSV
    while ($row = $result->fetch_assoc()) {
        fputcsv($output, $row);
    }
    
    // إغلاق تدفق الخرج
    fclose($output);
    exit();
} else {
    echo "No data found in the table.";
}

$conn->close();
?>

 

  • 0
نشر
بتاريخ 11 دقائق مضت قال Chihab Hedidi:

يمكنك استخدام وظائف PHP المدمجة لإنشاء ملف Excel بصيغة CSV بدون استخدام مكتبة خارجية، حيث أن صيغة CSV مدعومة من قبل Excel ويمكن فتحها وعرضها بسهولة، بالشكل التالي:

<?php
include('conn.php'); // تضمين ملف الاتصال بقاعدة البيانات

// تحديد الجدول الذي ترغب في تحميل بياناته
$tableName = "UN"; // أو "CH" حسب ما ترغب

// استعلام للحصول على البيانات من الجدول المحدد
$sql = "SELECT * FROM $tableName";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // تحديد اسم الملف
    $filename = "data_from_$tableName.csv";
    
    // ضبط ترويسات HTTP
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=' . $filename);
    
    // فتح تدفق الخرج
    $output = fopen('php://output', 'w');
    
    // الحصول على أسماء الأعمدة
    $fields = $result->fetch_fields();
    $header = [];
    foreach ($fields as $field) {
        $header[] = $field->name;
    }
    
    // كتابة أسماء الأعمدة إلى ملف CSV
    fputcsv($output, $header);
    
    // كتابة البيانات إلى ملف CSV
    while ($row = $result->fetch_assoc()) {
        fputcsv($output, $row);
    }
    
    // إغلاق تدفق الخرج
    fclose($output);
    exit();
} else {
    echo "No data found in the table.";
}

$conn->close();
?>

 

لم يضبط.... والسبب هو جدول UN لديه 10 ملفات PHP.... كل ملف يحتوي على جدول يعرض فيه البيانات حسب نوع المرض.... مثال.. 

جدول UN يحتوي على بيانات المرضى

اسم المريض 

عنوان المريض 

نوع المرض 

فيه ملف اسمه AHOW_1.PHP هذا الملف يعرضلي بيانات المرضى الموجودين في جدول UN على اساس نوع المرض مثلاً هذا الملف خاص ب مرضى السكر.... وباقي الملفات كل ملف يعرض البيانات على اساس نوعية المرض 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال Omer Amad:

لم يضبط.... والسبب هو جدول UN لديه 10 ملفات PHP.... كل ملف يحتوي على جدول يعرض فيه البيانات حسب نوع المرض.... مثال.. 

جدول UN يحتوي على بيانات المرضى

اسم المريض 

عنوان المريض 

نوع المرض 

فيه ملف اسمه AHOW_1.PHP هذا الملف يعرضلي بيانات المرضى الموجودين في جدول UN على اساس نوع المرض مثلاً هذا الملف خاص ب مرضى السكر.... وباقي الملفات كل ملف يعرض البيانات على اساس نوعية المرض 

في هذه الحالة أعتقد أنه من الأفضل تضمين الكود في ملفات PHP الخاصة بك (مثل SHOW1.PHP, SHOW2.PHP, إلخ) لتصدير البيانات مباشرة إلى ملف Excel، و هذا عن طريق إنشاء زر تصدير للبيانات إلى Excel في كل ملف PHP، وسيتعامل الكود مع تصدير البيانات فقط للمرض المحدد في ذلك الملف، على سبيل المثال ملف SHOW1.PHP الذي يعرض بيانات مرضى السكر:

<?php
include('conn.php');

$disease_type = "Diabetes"; // نوع المرض لهذا الملف

$sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table border='1'>
    <tr>
    <th>اسم المريض</th>
    <th>عنوان المريض</th>
    <th>نوع المرض</th>
    </tr>";

    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row['patient_name'] . "</td>";
        echo "<td>" . $row['patient_address'] . "</td>";
        echo "<td>" . $row['disease_type'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "No data found for this disease type.";
}

$conn->close();
?>

<!-- زر تحميل البيانات إلى Excel -->
<form method="post" action="export_to_excel.php">
    <input type="hidden" name="disease_type" value="<?php echo $disease_type; ?>">
    <button type="submit">تصدير البيانات إلى Excel</button>
</form>

يمكن أن يكون هكذا و أيضا قم بإنشاء ملف جديد export_to_excel.php لتنفيذ تصدير البيانات إلى ملف Excel:

<?php
include('conn.php');

if (isset($_POST['disease_type'])) {
    $disease_type = $_POST['disease_type'];

    $sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $filename = "data_from_UN_$disease_type.csv";
        header('Content-Type: text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $output = fopen('php://output', 'w');

        $header = ['اسم المريض', 'عنوان المريض', 'نوع المرض'];
        fputcsv($output, $header);

        while ($row = $result->fetch_assoc()) {
            fputcsv($output, $row);
        }

        fclose($output);
        exit();
    } else {
        echo "No data found for this disease type.";
    }
}

$conn->close();
?>

هكذا بالإضافة لعرض البيانات المحددة حسب نوع المرض، نقوم بإضافة زر لتصدير البيانات إلى Excel، والذي يرسل نوع المرض إلى export_to_excel.php، سيقوم هذا املف باستقبال نوع المرض من النموذج، و استعلام البيانات من جدول UN بناء على نوع المرض، ثم تصدير البيانات إلى ملف CSV وتحميله.

  • 0
نشر
بتاريخ 9 ساعة قال Chihab Hedidi:

في هذه الحالة أعتقد أنه من الأفضل تضمين الكود في ملفات PHP الخاصة بك (مثل SHOW1.PHP, SHOW2.PHP, إلخ) لتصدير البيانات مباشرة إلى ملف Excel، و هذا عن طريق إنشاء زر تصدير للبيانات إلى Excel في كل ملف PHP، وسيتعامل الكود مع تصدير البيانات فقط للمرض المحدد في ذلك الملف، على سبيل المثال ملف SHOW1.PHP الذي يعرض بيانات مرضى السكر:

<?php
include('conn.php');

$disease_type = "Diabetes"; // نوع المرض لهذا الملف

$sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table border='1'>
    <tr>
    <th>اسم المريض</th>
    <th>عنوان المريض</th>
    <th>نوع المرض</th>
    </tr>";

    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row['patient_name'] . "</td>";
        echo "<td>" . $row['patient_address'] . "</td>";
        echo "<td>" . $row['disease_type'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "No data found for this disease type.";
}

$conn->close();
?>

<!-- زر تحميل البيانات إلى Excel -->
<form method="post" action="export_to_excel.php">
    <input type="hidden" name="disease_type" value="<?php echo $disease_type; ?>">
    <button type="submit">تصدير البيانات إلى Excel</button>
</form>

يمكن أن يكون هكذا و أيضا قم بإنشاء ملف جديد export_to_excel.php لتنفيذ تصدير البيانات إلى ملف Excel:

<?php
include('conn.php');

if (isset($_POST['disease_type'])) {
    $disease_type = $_POST['disease_type'];

    $sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $filename = "data_from_UN_$disease_type.csv";
        header('Content-Type: text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $output = fopen('php://output', 'w');

        $header = ['اسم المريض', 'عنوان المريض', 'نوع المرض'];
        fputcsv($output, $header);

        while ($row = $result->fetch_assoc()) {
            fputcsv($output, $row);
        }

        fclose($output);
        exit();
    } else {
        echo "No data found for this disease type.";
    }
}

$conn->close();
?>

هكذا بالإضافة لعرض البيانات المحددة حسب نوع المرض، نقوم بإضافة زر لتصدير البيانات إلى Excel، والذي يرسل نوع المرض إلى export_to_excel.php، سيقوم هذا املف باستقبال نوع المرض من النموذج، و استعلام البيانات من جدول UN بناء على نوع المرض، ثم تصدير البيانات إلى ملف CSV وتحميله.

لم يضبط

  • 0
نشر
بتاريخ 20 ساعة قال Chihab Hedidi:

في هذه الحالة أعتقد أنه من الأفضل تضمين الكود في ملفات PHP الخاصة بك (مثل SHOW1.PHP, SHOW2.PHP, إلخ) لتصدير البيانات مباشرة إلى ملف Excel، و هذا عن طريق إنشاء زر تصدير للبيانات إلى Excel في كل ملف PHP، وسيتعامل الكود مع تصدير البيانات فقط للمرض المحدد في ذلك الملف، على سبيل المثال ملف SHOW1.PHP الذي يعرض بيانات مرضى السكر:

<?php
include('conn.php');

$disease_type = "Diabetes"; // نوع المرض لهذا الملف

$sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table border='1'>
    <tr>
    <th>اسم المريض</th>
    <th>عنوان المريض</th>
    <th>نوع المرض</th>
    </tr>";

    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row['patient_name'] . "</td>";
        echo "<td>" . $row['patient_address'] . "</td>";
        echo "<td>" . $row['disease_type'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "No data found for this disease type.";
}

$conn->close();
?>

<!-- زر تحميل البيانات إلى Excel -->
<form method="post" action="export_to_excel.php">
    <input type="hidden" name="disease_type" value="<?php echo $disease_type; ?>">
    <button type="submit">تصدير البيانات إلى Excel</button>
</form>

يمكن أن يكون هكذا و أيضا قم بإنشاء ملف جديد export_to_excel.php لتنفيذ تصدير البيانات إلى ملف Excel:

<?php
include('conn.php');

if (isset($_POST['disease_type'])) {
    $disease_type = $_POST['disease_type'];

    $sql = "SELECT * FROM UN WHERE disease_type = '$disease_type'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $filename = "data_from_UN_$disease_type.csv";
        header('Content-Type: text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $output = fopen('php://output', 'w');

        $header = ['اسم المريض', 'عنوان المريض', 'نوع المرض'];
        fputcsv($output, $header);

        while ($row = $result->fetch_assoc()) {
            fputcsv($output, $row);
        }

        fclose($output);
        exit();
    } else {
        echo "No data found for this disease type.";
    }
}

$conn->close();
?>

هكذا بالإضافة لعرض البيانات المحددة حسب نوع المرض، نقوم بإضافة زر لتصدير البيانات إلى Excel، والذي يرسل نوع المرض إلى export_to_excel.php، سيقوم هذا املف باستقبال نوع المرض من النموذج، و استعلام البيانات من جدول UN بناء على نوع المرض، ثم تصدير البيانات إلى ملف CSV وتحميله.

ضبط لكن مشكلة اللغة العربية عنده تحميل البيانات تظهر في الاكسل احرف غير معروفة 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...