Omer Amad نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس (معدل) كيفكم يا اصدقاء فيه عندي هذا الكود لتحميل بيانات من جدول PHP الى اكسل ....... عملية التحميل ناجحه لكن مشكلة البيانات في الاكسل تظهر حروف غير معرفة وغير عربية كيف يتم معالجة هذه المشكلة بدي تكون البيانات باللغة العربية كما هي في جدول PHP تم التعديل في 8 أغسطس بواسطة Omer Amad 1 اقتباس
0 Chihab Hedidi نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس يجب التأكد من أن الملف الناتج يحفظ بالترميز الصحيح 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 ويعرض النصوص العربية بشكل صحيح. 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 26 دقائق مضت قال 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 Chihab Hedidi نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ 25 دقائق مضت قال Omer Amad: لم أفهم.... كيف يتم معالجة هذه المشكلة لطفاً المشكلة بسبب الترميز و يجب التأكد من أن ملف Excel الناتج يتم ترميزه بشكل صحيح بتنسيق UTF-8، و هذا يتطلب القيام ببعض الخطوات البسيطة في الكود لضمان ترميز النصوص بشكل صحيح عند كتابتها إلى ملف CSV، عند إنشاء ملف CSV يجب إضافة BOM (Byte Order Mark) في بداية الملف، هذه العلامة تساعد Excel على التعرف على أن النصوص في الملف مرمزة بـ UTF-8 وبالتالي تعرض الحروف العربية بشكل صحيح. اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 6 دقائق مضت قال Chihab Hedidi: المشكلة بسبب الترميز و يجب التأكد من أن ملف Excel الناتج يتم ترميزه بشكل صحيح بتنسيق UTF-8، و هذا يتطلب القيام ببعض الخطوات البسيطة في الكود لضمان ترميز النصوص بشكل صحيح عند كتابتها إلى ملف CSV، عند إنشاء ملف CSV يجب إضافة BOM (Byte Order Mark) في بداية الملف، هذه العلامة تساعد Excel على التعرف على أن النصوص في الملف مرمزة بـ UTF-8 وبالتالي تعرض الحروف العربية بشكل صحيح. هل تقصد اضافة BOM (Byte Order Mark) داخل ملفات ال php عذرا لم افهمك اقتباس
0 Chihab Hedidi نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ الآن قال Omer Amad: هل تقصد اضافة BOM (Byte Order Mark) داخل ملفات ال php عذرا لم افهمك نعم مثل الكود الذي أرسلته يمكنك نسخه أو أضافة هذا السطر: fprintf($output, "\xEF\xBB\xBF"); 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 4 دقائق مضت قال Chihab Hedidi: نعم مثل الكود الذي أرسلته يمكنك نسخه أو أضافة هذا السطر: fprintf($output, "\xEF\xBB\xBF"); شكرا اخي سؤال هل هذا الكود او عملية تحميل البيانات ستكون شغاله في الاستضافة ام ستحدث مشاكل اقتباس
0 Chihab Hedidi نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ 7 دقائق مضت قال Omer Amad: شكرا اخي سؤال هل هذا الكود او عملية تحميل البيانات ستكون شغاله في الاستضافة ام ستحدث مشاكل نعم ستكون شغالة. 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 1 دقيقة مضت قال Chihab Hedidi: نعم ستكون شغالة. فيه عامود يحتوي على صوره كيف اضع ال td في الجدول echo "<td>" . $row['file'] . "</td>" 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس (معدل) بتاريخ 5 ساعة قال Omer Amad: فيه عامود يحتوي على صوره كيف اضع ال td في الجدول echo "<td>" . $row['file'] . "</td>" بتاريخ 5 ساعة قال Chihab Hedidi: نعم ستكون شغالة. وضعت هذا الكود عملية ظهور الصور في جدول تمت بنجاح لكن لما يتم تحميل البيانات لم تظهر الصور في اكسل تظهر فقط البيانات النصية اما الصور تظهر فقط امتداد بدون صورة عملت في صفحة جدول وضعت متغير base_url لغرض جلب الصور من فولدر اسم الفولدر um ولم اعرف اين يضع هذا المتغير في الكود ادناه ارجوا التوضيح echo '<td> <img src="um/'.$row['file'].'" width="50px" height="50px"> </td>'; تم التعديل في 8 أغسطس بواسطة Omer Amad اقتباس
0 Mustafa Suleiman نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ 5 ساعة قال 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>"; 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 18 دقائق مضت قال 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 Mustafa Suleiman نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ الآن قال Omer Amad: وضعت هذا الكود عملية ظهور الصور في جدول تمت بنجاح لكن لما يتم تحميل البيانات لم تظهر الصور في اكسل تظهر فقط البيانات النصية اما الصور تظهر فقط امتداد بدون صورة عملت في صفحة جدول وضعت متغير base_url لغرض جلب الصور من فولدر اسم الفولدر um ولم اعرف اين يضع هذا المتغير في الكود ادناه ارجوا التوضيح echo '<td> <img src="um/'.$row['file'].'" width="50px" height="50px"> </td>'; عليك توضيح كامل الكود الذي تستخدمه حاليًا لتفقد موضع المشكلة. 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس (معدل) بتاريخ 33 دقائق مضت قال 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> تم التعديل في 8 أغسطس بواسطة Omer Amad اقتباس
0 Mustafa Suleiman نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ 6 دقائق مضت قال Omer Amad: الكود لا تستطيع عرض الصور مباشرة من مسار على الخادم في ملفات Excel كما تفعل في صفحات الويب، ستحتاج إلى استخدام مكتبة PHP خاصة بالتعامل مع ملفات Excel مثل PHPExcel أو PHPSpreadsheet. 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس (معدل) كيف يعني لا استطيع هل من المعقول هذا <?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(); ?> تم التعديل في 8 أغسطس بواسطة Omer Amad اقتباس
0 Mustafa Suleiman نشر 8 أغسطس أرسل تقرير نشر 8 أغسطس بتاريخ 5 دقائق مضت قال 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 أو المكتبات السابق ذكرها. 1 اقتباس
0 Omer Amad نشر 8 أغسطس الكاتب أرسل تقرير نشر 8 أغسطس بتاريخ 4 دقائق مضت قال Mustafa Suleiman: ما تقوم به هو تحميل بيانات من قاعدة البيانات إلى ملف CSV، ولكنك لا تقوم بتحميل الصور نفسها إلى ملف Excel. ولفعل ذلك في ملف Excel، فعليك استخدام ملف Excel_BINARY ( بصيغة xls أو xlsx ) بدلاً من ملف CSV، وستحتاج إلى استخدام مكتبة مثل PHPExcel أو Spreadsheet_Excel_Writer لكتابة الصور إلى ملف Excel أو المكتبات السابق ذكرها. طيب... استاذ فيه طريقة جعل الصوره عندما يتم إرسالها عبر الفورم ترسل بأسم الشخص الذي ارسلها؟ اي بمعنى مثال... اسم الصوره img. Jpg..... لما يتم إرسالها ستظهر في ملف فولدر img... باسم عمر عماد؟ اقتباس
السؤال
Omer Amad
كيفكم يا اصدقاء فيه عندي هذا الكود لتحميل بيانات من جدول PHP الى اكسل ....... عملية التحميل ناجحه لكن مشكلة البيانات في الاكسل تظهر حروف غير معرفة وغير عربية كيف يتم معالجة هذه المشكلة بدي تكون البيانات باللغة العربية كما هي في جدول PHP
تم التعديل في بواسطة Omer Amad
17 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.