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

السؤال

نشر (معدل)

كيفكم يا اصدقاء فيه عندي هذا الكود لتحميل بيانات من جدول PHP الى اكسل ....... عملية التحميل ناجحه لكن مشكلة البيانات  في الاكسل تظهر حروف غير معرفة وغير عربية كيف يتم معالجة هذه المشكلة بدي تكون البيانات باللغة العربية كما هي في جدول PHP

 
 

 

Screenshot_20240808_121324.jpg

Screenshot_20240808_121431.jpg

تم التعديل في بواسطة Omer Amad

Recommended Posts

  • 0
نشر

يجب التأكد من أن الملف الناتج يحفظ بالترميز الصحيح UTF-8، يمكنك القيام بذلك عن طريق التأكد من استخدام الترميز الصحيح عند كتابة البيانات إلى ملف CSV بهذا الشكل:

<?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');
        fprintf($output, "\xEF\xBB\xBF");

        $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();
?>

حيث نقوم بإضافة الـ BOM (\xEF\xBB\xBF) في بداية ملف CSV. هذا يساعد في تأكيد أن Excel سيتعرف على الترميز UTF-8 ويعرض النصوص العربية بشكل صحيح.

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 09:49 قال Chihab Hedidi:

يجب التأكد من أن الملف الناتج يحفظ بالترميز الصحيح UTF-8، يمكنك القيام بذلك عن طريق التأكد من استخدام الترميز الصحيح عند كتابة البيانات إلى ملف CSV بهذا الشكل:

<?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');
        fprintf($output, "\xEF\xBB\xBF");

        $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();
?>

حيث نقوم بإضافة الـ BOM (\xEF\xBB\xBF) في بداية ملف CSV. هذا يساعد في تأكيد أن Excel سيتعرف على الترميز UTF-8 ويعرض النصوص العربية بشكل صحيح.

أظهر المزيد  

لم أفهم.... كيف يتم معالجة هذه المشكلة لطفاً 

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 10:14 قال Omer Amad:

لم أفهم.... كيف يتم معالجة هذه المشكلة لطفاً 

أظهر المزيد  

المشكلة بسبب الترميز و يجب التأكد من أن ملف Excel الناتج يتم ترميزه بشكل صحيح بتنسيق UTF-8، و هذا يتطلب القيام ببعض الخطوات البسيطة في الكود لضمان ترميز النصوص بشكل صحيح عند كتابتها إلى ملف CSV، عند إنشاء ملف CSV يجب إضافة

BOM (Byte Order Mark) في بداية الملف، هذه العلامة تساعد Excel على التعرف على أن النصوص في الملف مرمزة بـ UTF-8 وبالتالي تعرض الحروف العربية بشكل صحيح.

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 10:40 قال Chihab Hedidi:

المشكلة بسبب الترميز و يجب التأكد من أن ملف Excel الناتج يتم ترميزه بشكل صحيح بتنسيق UTF-8، و هذا يتطلب القيام ببعض الخطوات البسيطة في الكود لضمان ترميز النصوص بشكل صحيح عند كتابتها إلى ملف CSV، عند إنشاء ملف CSV يجب إضافة

BOM (Byte Order Mark) في بداية الملف، هذه العلامة تساعد Excel على التعرف على أن النصوص في الملف مرمزة بـ UTF-8 وبالتالي تعرض الحروف العربية بشكل صحيح.

أظهر المزيد  

 هل تقصد اضافة BOM (Byte Order Mark)  داخل ملفات ال php  عذرا لم افهمك

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 10:48 قال Chihab Hedidi:

نعم مثل الكود الذي أرسلته يمكنك نسخه أو أضافة هذا السطر:

fprintf($output, "\xEF\xBB\xBF");

 

أظهر المزيد  

شكرا اخي سؤال هل هذا الكود او عملية تحميل البيانات ستكون شغاله في الاستضافة ام ستحدث مشاكل

  • 0
نشر (معدل)
  بتاريخ On 8‏/8‏/2024 at 11:05 قال Omer Amad:

فيه  عامود يحتوي على صوره كيف اضع ال td في الجدول

 echo "<td>" . $row['file'] . "</td>"

أظهر المزيد  

 

  بتاريخ On 8‏/8‏/2024 at 11:02 قال Chihab Hedidi:

نعم ستكون شغالة.

أظهر المزيد  

وضعت هذا الكود    عملية ظهور الصور في جدول تمت بنجاح لكن لما يتم تحميل البيانات لم تظهر الصور في اكسل تظهر فقط البيانات النصية اما الصور تظهر فقط امتداد بدون صورة   عملت في صفحة جدول وضعت متغير  base_url لغرض جلب الصور من فولدر اسم الفولدر um ولم اعرف اين يضع هذا المتغير في الكود ادناه ارجوا التوضيح

   echo '<td>  <img src="um/'.$row['file'].'" width="50px" height="50px"> </td>';

 

تم التعديل في بواسطة Omer Amad
  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 11:05 قال Omer Amad:

فيه  عامود يحتوي على صوره كيف اضع ال td في الجدول

 echo "<td>" . $row['file'] . "</td>"

أظهر المزيد  

  إن كان المقصود جدول في صفحة ويب، فمن خلال عنصر img كالتالي:

echo '<td><img src="' . $row['file'] . '" width="100" height="100"></td>';

أيضًا بالإمكان وضع الصورة داخل عنصر a لكي تصبح قابلة للنقر:

echo '<td><a href="' . $row['file'] . '"><img src="' . $row['file'] . '" width="100" height="100"></a></td>';

وبإمكانك توفير رابط لتحميلها من خلال سمة download:

echo "<td><a href='" . $row['file'] . "' download>تحميل الصورة</a></td>";

 

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 16:30 قال Mustafa Suleiman:

  إن كان المقصود جدول في صفحة ويب، فمن خلال عنصر img كالتالي:

echo '<td><img src="' . $row['file'] . '" width="100" height="100"></td>';

أيضًا بالإمكان وضع الصورة داخل عنصر a لكي تصبح قابلة للنقر:

echo '<td><a href="' . $row['file'] . '"><img src="' . $row['file'] . '" width="100" height="100"></a></td>';

وبإمكانك توفير رابط لتحميلها من خلال سمة download:

echo "<td><a href='" . $row['file'] . "' download>تحميل الصورة</a></td>";

 

أظهر المزيد  

وضعت هذا الكود    عملية ظهور الصور في جدول تمت بنجاح لكن لما يتم تحميل البيانات لم تظهر الصور في اكسل تظهر فقط البيانات النصية اما الصور تظهر فقط امتداد بدون صورة   عملت في صفحة جدول وضعت متغير  base_url لغرض جلب الصور من فولدر اسم الفولدر um ولم اعرف اين يضع هذا المتغير في الكود ادناه ارجوا التوضيح

echo '<td>  <img src="um/'.$row['file'].'" width="50px" height="50px"> </td>';

 

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 16:33 قال Omer Amad:

وضعت هذا الكود    عملية ظهور الصور في جدول تمت بنجاح لكن لما يتم تحميل البيانات لم تظهر الصور في اكسل تظهر فقط البيانات النصية اما الصور تظهر فقط امتداد بدون صورة   عملت في صفحة جدول وضعت متغير  base_url لغرض جلب الصور من فولدر اسم الفولدر um ولم اعرف اين يضع هذا المتغير في الكود ادناه ارجوا التوضيح

echo '<td>  <img src="um/'.$row['file'].'" width="50px" height="50px"> </td>';

 

أظهر المزيد  

عليك توضيح كامل الكود الذي تستخدمه حاليًا لتفقد موضع المشكلة.

  • 0
نشر (معدل)
  بتاريخ On 8‏/8‏/2024 at 16:35 قال Mustafa Suleiman:

عليك توضيح كامل الكود الذي تستخدمه حاليًا لتفقد موضع المشكلة.

أظهر المزيد  

 

 

 

هذا 

<html>
    <head>
    <meta name="viewport" content="width=device-width; initial-scale=0.43; maximum-scale=1.5;">
    <link rel="apple-touch-icon" href="images/template/picture.png"/>
    <link rel="stylesheet" href="style.css">
        <title></title>
       
    </head>
 
    <body >
  

  

    

    <?php 
include "conn.php";
$base_url = "http://localhost/HOS/";


include('conn.php');

if(!isset($_GET['Re'])){

    $Re="UN";
}else{
  $Re =@$_GET['Re'];

} // نوع المرض لهذا الملف

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

if ($result->num_rows > 0) {
    echo "<table border='1'>
    <tr>
    <th>id</th><br>
        <th>الاسم </th>
        <th>اسم الام </th>

    </tr>";

    while($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row['name1'] . "</td>";
        echo "<td>" . $row['name2'] . "</td>";
        echo '<td>  <img src="img/'.$row['file'].'" width="50px" height="50px"> </td>';

  
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "No data found for this disease type.";
}

$conn->close();
?>

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

 

تم التعديل في بواسطة Omer Amad
  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 16:37 قال Omer Amad:

الكود

أظهر المزيد  

لا تستطيع عرض الصور مباشرة من مسار على الخادم في ملفات Excel كما تفعل في صفحات الويب، ستحتاج إلى استخدام مكتبة PHP خاصة بالتعامل مع ملفات Excel مثل PHPExcel أو PHPSpreadsheet.

  • 0
نشر (معدل)

كيف يعني لا استطيع هل من المعقول هذا

<?php
include('con.php');
if (isset($_POST['Re'])) {
    $Re = $_POST['Re'];

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

    if ($result->num_rows > 0) {
        $filename = "data_from_iP_$Re.csv";
        header('Content-Type:text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $output = fopen('php://output', 'w');
           fprintf($output, "\xEF\xBB\xBF");
        $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();
?>

 

تم التعديل في بواسطة Omer Amad
  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 16:52 قال Omer Amad:

كيف يعني لا استطيع هل من المعقول هذا

<?php
include('con.php');
if (isset($_POST['Re'])) {
    $Re = $_POST['Re'];

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

    if ($result->num_rows > 0) {
        $filename = "data_from_iP_$Re.csv";
        header('Content-Type:text/csv; charset=utf-8');
        header('Content-Disposition: attachment; filename=' . $filename);
        $output = fopen('php://output', 'w');
           fprintf($output, "\xEF\xBB\xBF");
        $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();
?>

 

أظهر المزيد  

ما تقوم به هو تحميل بيانات من قاعدة البيانات إلى ملف CSV، ولكنك لا تقوم بتحميل الصور نفسها إلى ملف Excel.

ولفعل ذلك في ملف Excel، فعليك استخدام ملف Excel_BINARY ( بصيغة xls أو xlsx ) بدلاً من ملف CSV، وستحتاج إلى استخدام مكتبة مثل PHPExcel أو Spreadsheet_Excel_Writer لكتابة الصور إلى ملف Excel أو المكتبات السابق ذكرها.

  • 0
نشر
  بتاريخ On 8‏/8‏/2024 at 20:07 قال Mustafa Suleiman:

ما تقوم به هو تحميل بيانات من قاعدة البيانات إلى ملف CSV، ولكنك لا تقوم بتحميل الصور نفسها إلى ملف Excel.

ولفعل ذلك في ملف Excel، فعليك استخدام ملف Excel_BINARY ( بصيغة xls أو xlsx ) بدلاً من ملف CSV، وستحتاج إلى استخدام مكتبة مثل PHPExcel أو Spreadsheet_Excel_Writer لكتابة الصور إلى ملف Excel أو المكتبات السابق ذكرها.

أظهر المزيد  

طيب... استاذ فيه طريقة جعل الصوره عندما يتم إرسالها عبر الفورم ترسل بأسم الشخص الذي ارسلها؟ اي بمعنى مثال... اسم الصوره img. Jpg..... لما يتم إرسالها ستظهر في ملف فولدر img... باسم عمر عماد؟ 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...