דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. העלאת קובץ csv לתוך מסד בPHP

העלאת קובץ csv לתוך מסד בPHP

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 2 כותבים 261 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    כתב ב נערך לאחרונה על ידי
    #1

    אני צריך סקריפט שבו הקובץ CSV יומר למסד MYSQL ושם הטבלה יהיה כשם הקובץ
    אני מחפש ברחבי הרשת משהו ברור
    ויצאתי קצת מבולבל
    מישהו יכול לעזור\לתת לינק?
    ועל הדרך גם איך להוריד את הנותונים מהמסד לקובץ CSV

    מייל: nigun@duck.com

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      לא משנה לך השפה? אני יכול לענות לך בC#? אני מבין שהגזמתי :), אז בא תכתוב איזה שפה/פלטפורמה אתה צריך.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

        יו פיפסתי את הכותרת, סליחה!

        צריך לבנות פוקנציה שמקבלת שתי ארגומנטים: 1) שם הקובץ, 2) מחרוזת החיבור למסד.
        בתוך הפונקציה עלינו לעשות את הצעדים הבאים:
        א. ניתוח הCSV - למערך אסוציאטיבי או כל דרך אחרת, באופן שיש לנו את כל שמות העמודות ואת אוסף השורות.
        ב. בדיקה האם טבלה בשם קיימת במסד (ואם כן הוספה/מחיקה ?) ואם לא יצירת טבלה ע"י פקודת sql של CREATE TABLE, שלמחרוזת היצירה נשרשר את כל שמות העמודות של הCSV כשדות בטבלה מסוג טקסט.
        ג. מעבר בלולאה על פני השורות עם פקודת INSERT לכל אחד.

        איפה אתה מתקשה?
        בינתיים כתעסוקה אנסה לחפש מה שחיפשת - פתרון כבר מוכן.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        2
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          שכחתי שאם קובץ הCSV נמצא בשרת בו נמצא המסד או עכ"פ אפשר להעביר אותו לשם, ישנה אפשרות לייבא אותו בפקודת LOAD DATA INFILE.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          nigunN תגובה 1 תגובה אחרונה
          3
          • nigunN מנותק
            nigunN מנותק
            nigun
            השיב לdovid ב נערך לאחרונה על ידי
            #5

            @dovid
            לגבי LOAD DATA INFILE לא הצלחתי להשתמש בזה
            כנראה בגלל איזה הגבלה בשרת השיתופי וCPANEL
            למעשה מה שחסר לי זה פונקציה לבדיקת שם הקובץ
            והעלאה בפוסט ישירות בלי לשמור בשרת עצמו

            מייל: nigun@duck.com

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לnigun ב נערך לאחרונה על ידי
              #6

              @nigun אמר בהעלאת קובץ csv לתוך מסד בPHP:

              למעשה מה שחסר לי זה פונקציה לבדיקת שם הקובץ

              $filename=$_FILES['nameofyourfileinput']['name'];
              

              https://stackoverflow.com/a/28807492/1271037

              והעלאה בפוסט ישירות בלי לשמור בשרת עצמו

              תחפש php csv parse without saving
              https://stackoverflow.com/a/18125132/1271037

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              2
              • nigunN מנותק
                nigunN מנותק
                nigun
                כתב ב נערך לאחרונה על ידי nigun
                #7

                אני לא יודע למה
                אבל לפעמים אני מחפש משהו ולא מוצא
                אחר כך אני חוזר ופתאום הכל זורם
                תכל'ס בסוף מצאתי כמה סקריפטים ושיניתי למה שאני צריך
                אבל עכשיו שם הטבלה נהיה name.csv
                ואני לא מצליח לעשות split כדי להוריד את ה.CSV
                אני כמובן ימשיך לחפש לבד
                אבל אולי יכתוב מדריך איך מחפשים בגוגל
                בכל מקרה אני יעלה פה את הקוד אם משהו ירצה את זה בעתיד
                וגם לשמוע הערות
                נ.ב. אני עשיתי מחיקה לטבלה לפני הכנסת הנתונים כי אני מעוניין לדרוס את מה שהיה לפני זה

                <?php
                
                $con=mysqli_connect("localhost","root","","db");
                
                
                 
                if ( isset( $_FILES['userfile'] ) )
                {
                  $csv_file = $_FILES['userfile']['tmp_name'];
                  $csv_name = $_FILES['userfile']['name'];
                
                $CREATE = "CREATE TABLE IF NOT EXISTS `$csv_name` (
                   `id` int(11) unsigned NOT NULL auto_increment,
                   `aa` char(50) NOT NULL default '',
                   `bb` char(50) NOT NULL default '',
                  
                   PRIMARY KEY  (`id`)
                   ) ENGINE=InnoDB  ";
                     mysqli_query($con,$CREATE);
                
                  if ( ! is_file( $csv_file ) )
                    exit('File not found.');
                 $DELETE=mysqli_query($con,"DELETE  FROM `$csv_name`");
                  $sql = '';
                
                  if (($handle = fopen( $csv_file, "r")) !== FALSE)
                  {
                      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
                      {
                      
                         $sql = mysqli_query($con,"INSERT INTO `$csv_name` SET
                            `id` = '$data[0]',
                            `aa` = '$data[1]',
                            `bb` = '$data[2]';
                          ");
                      }
                      fclose($handle);
                  }
                
                
                  exit( "Complete!  " );
                }
                ?>
                <!DOCTYPE html>
                <html>
                <head>
                  <title>CSV to MySQL Via PHP</title>
                </head>
                <body>
                  <form enctype="multipart/form-data" method="POST">
                    <input name="userfile" type="file">
                    <input type="submit" value="Upload">
                  </form>
                </body>
                </html>
                

                וכמעט שכחתי
                איך אני מתעלם מהשורה הראשונה (של הכותרות)?
                (אני יודע שאפשר עם LOAD DATA INFILE אבל זה לא עובד לי)
                עריכה: בדקתי ומצאתי שבמקרה הספיצפי הזה אני סך הכל נותן לכותרת ID 0 ואז הוא לא נרשם
                אבל אשמח לדעת מה הפתרון במקרים אחרים

                מייל: nigun@duck.com

                nigunN תגובה 1 תגובה אחרונה
                0
                • nigunN מנותק
                  nigunN מנותק
                  nigun
                  השיב לnigun ב נערך לאחרונה על ידי nigun
                  #8

                  @nigun
                  מצאתי את הפתרון
                  הייתי אמור לעשות explode
                  ככה

                  $piece = explode('.', $csv_name);
                  $name= $piece[0]; // piece1
                  

                  בכל מקרה מי מתנדב לכתוב מדריך לחיפוש בגוגל?

                  מייל: nigun@duck.com

                  תגובה 1 תגובה אחרונה
                  0
                  • nigunN מנותק
                    nigunN מנותק
                    nigun
                    כתב ב נערך לאחרונה על ידי
                    #9

                    שאלה הבאה
                    איך אני מעלה קבצים בעברית?

                    מייל: nigun@duck.com

                    תגובה 1 תגובה אחרונה
                    0

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום