الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد التعديل على كود رفع الملفات

بدأه man in dark في 10 ديسمبر 2008 · 9 رد · 774 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

اخواني اريد التعديل على كود رفع الملفات

بحيث عند رفع اي ملف في قاعدة البيانت يصبح في القاعدة بهذا الشكل

ajf96298.jpg

انا اريدة ان يدخل البيانات التي في ملف data.txt في القاعدة ليصبح هكذا

1PM96298.jpg

السكربت

  1.  
  2. <?
  3. mysql_connect("localhost", "root", "");
  4.  
  5. if($_FILES['filedata']['tmp_name'] != "")
  6. {
  7. $fileName = $_FILES['filedata']['name'];
  8. $tmpName = $_FILES['filedata']['tmp_name'];
  9. $fo = @fopen($tmpName, "r");
  10. }
  11. $result = @mysql_query("INSERT INTO `files` VALUES ('', '$fileName')");
  12. if($result)
  13. {
  14. echo "file added";
  15. }
  16. else
  17. {
  18. echo "error";
  19. }
  20.  
  21. ?>
  22.  

#2

يمكنك قراءة الملف و إضافة ماتريد فى القاعدة

فيمكنك إضافة السطر

  1. $contents = fread($fo, filesize($_FILES['filedata']['tmp_name']));
  2.  

بعد عملية فتح الملف ب fopen

ثم قم بتعديل عملية الحفظ بدلا من حفظ $filename

يقوم بحفظ ال $content

الكود كاملا

  1.  
  2. <?
  3. mysql_connect("localhost", "root", "");
  4.  
  5. if($_FILES['filedata']['tmp_name'] != "")
  6. {
  7. $fileName = $_FILES['filedata']['name'];
  8. $tmpName = $_FILES['filedata']['tmp_name'];
  9. $fo = @fopen($tmpName, "r");
  10. $contents = fread($fo, filesize($_FILES['filedata']['tmp_name']));
  11. }
  12. $result = @mysql_query("INSERT INTO `files` VALUES ('', '$Contents')");
  13. if($result)
  14. {
  15. echo "file added";
  16. }
  17. else
  18. {
  19. echo "error";
  20. }
  21.  
  22. ?>
  23.  

و لكن هذا الكود يحفظ محتويات الملف فى سجل واحد إذا كنت تريدة فى عدة سجلات مثلا كل أسم فى سجل إذا كان الملف يحتوى على عدة أسماء فيجب أن تعرف كيف تفصل هذه الأسماء

فهل هى مثلا فى ملف XML أو CVS أو ملف آخر

الرجاء التوضيح إذا كان هذا مقصدك

لا تراجع و لا إستسلام

#3

مشكور اخي على ردك و الكود الاخير نعم يحفظه في سجل واحد

طبعا السجل الذي اريد ان ادخله هو في ملف txt و يحتوي على العديد من الاسماء مثلا...

احمد

محمد

عبدالله

خالد

علي

وكل اسم سطر جديد . فكيف يمكن عمل ذلك بحيث ان كل اسم سجل جديد

#4

يمكنك إستخدام fgets لقراءة الملف سطر بسطر

  1.  
  2. while(!feof($handle)){
  3. $line = fgets($handle);
  4. $result = @mysql_query("INSERT INTO `files` VALUES ('', '$line')");
  5. }
  6.  

أنصحك أن تقرأ أكثر فى التعامل مع الملفات بال PHP

و لكن الأفضل من هذه الطريقة أن يكون الملف CVS أو الأفضل XML لأنه إذا كنت تريد عمليات أكثر تعقيدا ستكون العملية صعبة جدا

لا تراجع و لا إستسلام

#5

طيب اخي لو قلنا ان الملف CVS هل هنالك طريقة اسهل لدخال البيانات

لانه لدي اخي اسماء كثيرة جدا اريد ان ادخلها الى قاعدة البيانات

تم تعديل هذه المشاركة بواسطة man in dark في 11 ديسمبر 2008 في 17:06

#6

إدخال البيانات داخل ملف CSV ( نوع الملفات CSV و ليس CVS آسف على الخطأ ) يعتمد على فصل الحقول ب "," أو غيرها و إن كانت ال Comma أشهرها و فصل ال records ب \r\n

و يمكنك إستخدام الدالتان

fputcsv

و

fgetcsv

للتعامل مع الإدخال و الأخراج مع ال CSV

آسف على الرد المقتضب كنت أريد أن أضع مثال لكن ليس لدى و قت الآن , إذا كنت تريد أى مساعدة إضافية لا تتردد

لا تراجع و لا إستسلام

#7

طيب اخي هل توجد طريقة لإدخال البيانات التي ملف txt الى قاعدة البيانات باستخدم السكربت

#8

طيب اخي لو حذفنا حقل id بحيث يبقى حقل واحد في قاعدة البيانات

قاعدة البيانات

-- phpMyAdmin SQL Dump
 -- version 2.9.1.1
 -- http://www.phpmyadmin.net
 -- 
 -- المزود: localhost
 -- أنشئ في: 12 ديسمبر 2008 الساعة 01:30
 -- إصدارة المزود: 5.0.22
 --  PHP إصدارة: 4.4.4
 -- 
 -- قاعدة البيانات: `text`
 -- 

 -- --------------------------------------------------------

 -- 
 -- بنية الجدول `files`
 -- 

 CREATE TABLE `files` (
   `filename` varchar(20) NOT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=cp1256;

 -- 
 -- إرجاع أو إستيراد بيانات الجدول `files`
 --

ونريد عمل استيراد لملف data.txt من phpmyadmin بذهاب الى Import

طبعا ملف data.txt يحتوي على اسماء مثل ...

احمد

محمد

عبدالله

خالد

علي

وتحديد الملف data.txt ونختار الخيار CSV using LOAD DATA فسوف يحفظ البيانات بالشكل التالي

r7D36046.jpg

sML35799.jpg

هذا الذي اريد ان اتوصل له بس عن طريق سكربت و ليس من جهه phpmyadmin

تم تعديل هذه المشاركة بواسطة man in dark في 12 ديسمبر 2008 في 01:48

#9

اخواني في المرفقات سكربت استيراد ملفات csv الى قاعدة البيانات

ولكن كل ما تسوي استيراد لملف بنشاء جدول جديد و يضع البيانات في الجدول الجديد

انا اريدة ان ينقل البيانات الى الجدول files في الحقل filename

وهذه هي قاعدة البيانات

-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
-- 
-- المزود: localhost
-- أنشئ في: 12 ديسمبر 2008 الساعة 01:30
-- إصدارة المزود: 5.0.22
--  PHP إصدارة: 4.4.4
-- 
-- قاعدة البيانات: `text`
-- 

-- --------------------------------------------------------

-- 
-- بنية الجدول `files`
-- 

CREATE TABLE `files` (
   `filename` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1256;

-- 
-- إرجاع أو إستيراد بيانات الجدول `files`
--

quick_csv_import.rar

#10

اخواني لو ممكن المساعدة في التعديل على السكربت

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…