-
שלום וברכה לכל החברים היקרים.
יש לי קובץ TXT שנמצא בשרת, קוד PHP קורא אותו ומעלה את התוכן שלו למסד נתונים בצורה כזו:
Name = SARA; age = 60;
כלומר המחרוזת שנמצאת בשורה Name תכנס במסד נתונים לטבלא שנקראת Name.
המחרוזת שנמצאת בשורה age תכנס במסד נתונים לטבלא שנקראת age, וכן ע"ז הדרך.אני רוצה להדגיר שהמילה Name תהיה שמורה, בכדי:
- שהקוד לא יחשיב את Name כחלק ממה שצריך להעלות לשרת.
- יעלה את כל המחרוזת שאחרי
= Name
, עד סימן כל שהוא, נגיד;
(כל המודגש):
; Name = SARA
כלומר יעלה את הערכים שבאים אחרי ה =Name עד הסימן;
. - שלא משנה איפה
; Name = String
יהיה ממוקם במסמך הוא יזהה להעלות את המחרוזת לטבלא Name במסד הנתונים.
אודה מאוד לכל עזרה בנושא.
תודה רבה. -
@ass לא ממש הבנתי מה הקובץ שאתה נותן ממנו דוגמא ואיך הוא נכנס למסד נתונים.
להבנתי יש לך קובץ שכתוב פהname=shmuel ago=11
ואתה רוצה להכניס את זה למסד נתונים ואתה רוצה לשנות את המפתחות (name,ago) ולהשאיר את הערכים ולהעניס אותם לטבלא?
תתן דוגמא למה שאתה עושה עכשיו בצורה יפה לא רחבה. -
@שמואל4
כרגע אין למפתחות שם תפקיד, הקוד הופך את הקובץ למערך כך שכל שורה מקבלת אינדקס.
ואז מעלה את כל שורה לטבלא יחד עם המפתחות.
כלומר מעלה את כל זה: name=shmuel
במקום רק את זה: shmuelאני יכול להשתמש ב str_replace ולהוריד את המפתח. אבל אני רוצה שיזהה את הערכים לפי המפתחות.
-
@ass וואו. אתה לא מבין עברית?
אני לא מבין איך הקוד הופך, עם איזה פונקציות אתה משתמש, איזה שאילת אתה מריץ בסוף, איך היא נוצרת, מה הצורך, מה קורה עכשיו, ומה אתה רוצה שיקרה.
עד שאתה לא עונה על כל השאלות אני לא יכול לעזור כי השאלה לא נותנת שום מידע שאני יכול לנסות להבין מה הבעיה ולמה אתה מחפש עזרה.
סורי. -
@שמואל4 אמר בהגדרת מילה שמורה ב PHP:
@ass אמר בהגדרת מילה שמורה ב PHP:
אם זה במבנה של ini יש לזה פונקציות ברורות.איפה אני יכול ללמוד איך לבצע פונקציות כאלה ב ini .
-
@ass אמר בהגדרת מילה שמורה ב PHP:
לבצע פונקציות כאלה
לא יודע מה זה כאלה, אני לא יודע מה אתה רוצה.
יש ל php פונקציות להמרת ini למערך ולהמרת סטרינג במבנה ini למערך.https://www.php.net/manual/en/function.parse-ini-file.php
https://www.php.net/manual/en/function.parse-ini-string.php
לא יודע אם זה יעזור לך כי אין לי מושג מה אתה רוצה לעשות...
-
@שמואל4
אוקי, צודק אני יפרט.$file= explode("\n",file_get_contents("https://www.call2all.co.il/ym/api/DownloadFile?token=${token}&path=${path_txt}")); //הוצאה ממערך ושליחה למסד $name = $file_get[0]; $ago = $file_get[1]; $Login = new mysqli("localhost", "root", ""); if ($Login->connect_error) {die("נכשלה"." phpmyadnin "."ההתחברות ל ". $Login->connect_error);} $db = mysqli_select_db ($Login , 'W') ; if ($db == false) {die("<br>" ."התחברות למסד נתונים נכשלה");} $Enter_data = "INSERT INTO `data`(`name`, `ago`) VALUES ($name , '$ago')"; mysqli_query($Login, $Enter_data);
-
@שמואל4
אני באמת לא מבין מה אני צריך לענות?!הקוד הופך למערך עם
explode
.
כל שורה בעצם נכנסת למסד בנפרד ע"י הצבת משתנים.זה מה שיש כעת, וזה בעייתי כי אני לא רוצה שאם אני יוסיף הערה בתחילת הקובץ וירד שורה, אז הכל ישתבש.
אני צריך שהקוד ידע ש name בקובץ זה מפתח ולא חלק ממה שעולה למסד. -
@ass ה"בעייה" שלך היא באמת לא בעיה. אתה פשוט צריך לשלוח למסד הנתונים את הנתונים בפורמט JSON ולא INI. תן ל-API של המסד נתונים להתמודד, הוא ידע לעשות זאת נפלא, ו"להבין" לבד מהו שם של מאפיין באובייקט ומהו הערך שלו. זו יכולת בסיסית של כל API או מסד נתונים, להפוך JSON לאובייקט.
לדוגמא תשלח כך:
[{ name: 'Sara', age: 30 }, { name: 'Avraham', age: 40 }]
ה-API "יבין" שמדובר במערך שמכיל שני אובייקטים, וידע להקצות את הערכים בהתאמה, כי כך הוא אמור לנתח את ה-JSON.
עריכה:
גם סדר הופעת המאפיינים באובייקט אינו משנה כלל, כך שהדוגמא לעיל יכולה להיות גם כך:[{ age: 30, name: 'Sara' }, { age: 40, name: 'Avraham' }]
והתוצאה תהיה זהה.
עם זאת, סדר האיברים במערך - כן משנה, והם ייכנסו למערך שיווצר לפי סדר הופעתם, דהינו שרה תהיה בתא [0], ואברהם בתא [1]. -