-
@mgm-ivr
א) קובץ CSV הוא לא הצורה המיטבית לשמור את הדאטה אם יש לך יותר מכמה אלפים שורות (וגם אם לא). אני מציע שתכניס את המידע למסד נתונים.
ב) הצורה שבה אתה צריך לחפש הוא קודם כל לקרוא ולפרסר את כל המידע מקובץ ה-CSV לתוך הזכרון ואז לעשות חיפוש.
יש פונקציה ב-PHP שקוראת שורה שורה מתוך קובץ CSV ומכניס את המידע לתוך array. דוגמאות לשימוש
אחרי שיש לך כל המידע במערך צריך לעשות חיפוש על המערך. זה אמור להיות PHP בסיסי. תעבור בלולאה על המערך ותחפש את השורה שבו מספר הטלפון מתאים לחיפוש. -
@yossiz אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@mgm-ivr
א) קובץ CSV הוא לא הצורה המיטבית לשמור את הדאטה אם יש לך יותר מכמה אלפים שורות (וגם אם לא). אני מציע שתכניס את המידע למסד נתונים.
ב) הצורה שבה אתה צריך לחפש הוא קודם כל לקרוא ולפרסר את כל המידע מקובץ ה-CSV לתוך הזכרון ואז לעשות חיפוש.
יש פונקציה ב-PHP שקוראת שורה שורה מתוך קובץ CSV ומכניס את המידע לתוך array. דוגמאות לשימוש
אחרי שיש לך כל המידע במערך צריך לעשות חיפוש על המערך. זה אמור להיות PHP בסיסי. תעבור בלולאה על המערך ותחפש את השורה שבו מספר הטלפון מתאים לחיפוש.במסד נתונים יהיה לי יותר קל לחפש ולהחליף נתון לפי נתון מסויים( למשל כשאני ישלח שוב את הפרטים של הבן אדם אחרי עריכה הוא יזהה שהפלאפון קיים כבר וימחק את הנתון הישן לטובת הפרט החדש)?
-
@ivrtikshoret אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@mgm-ivr
וודאי.אוקיי
שכנעתם
איך אני עובר למסדי נתונים?
(יש לי כבר כמה רק אני לא יודע איך להשתמש איתם)
מהם ה$ הרלונטים? כל פעולה אני מתחבר מחדש? -
@mgm-ivr
יש לי פיתרון בשבילך בלי שרת (הכוונה במקרה ואין לך יכולת להריץ קוד בשרת, כמו github pages ודומיו),
לשים את הקובץ CSV בתור קובץ סטאטי, להשתמש בספריית datatables בשביל להפוך את זה לטבלה בקליינט, זה כבר מגיע עם פונקציית חיפוש.
יש באפשרויות בdatatables לשנות את המידע שמגיע לפני שאתה מכניס אותו לטבלה, אתה צריך להפוך את זה מCSV לאובייקט\מערךcsv.split('\n').map(line => line.split(','))
הקוד למעלה לא נבדק, אבל זה אמור לעבוד.
תבדוק באפשרויות של דאטאטייבלס איך אתה נותן שמות לעמודות.לגבי העצה לעבוד עם מסדי נתונים, זה נכון באופן כללי, אבל תלוי במשאבים שלך, ואם ידוע לך שלא תעבור את הכמה אלפי שורות או לא.
-
@חגי הקוד שלך לא כל כך מומלץ לפרודקשיין כי יש כמה פרטים שאתה לא מטפל בהם כמו escape characters וגרשיים והורדת רווחיים וטאבים
אבל בעקרון כאשר יש פחות מכמה אלפים שורות אתה צודק שניתן לעשות את הכל בצד לקוח. (לא הצעתי את זה כי א) זה תלוי מה הגודל המקסימלי של המידע, וב) השואל החליט שהוא רוצה PHP...). -
@yossiz אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@mgm-ivr זה מתסכל לענות לבן אדם שמנסה לרוץ לפני שהוא למד ללכת...
(אני מוצא את עצמי כותב את זה שוב ושוב לאחרונה... מה איתי? משהו השתנה בשואלים או בי?)התחלתי ביום חמישי ללמוד לכתוב עם קבצים (fopen a/a+'/r/r+/w) וכו', זה עבד,
אחרי כמה שעות נמאס לי כי זה מאוד קשה כל פעם לחשבן כל קובץ, החלטתי ללכת על CSV, ברוך השם במוצש הצלחתי לכתוב כל מיני פקודות שירשמו לתוך הCSV שלי, אבל נתקעתי כי אני צריך חיפוש
כלומר חיפוש כבר הסתדרתי, להפוך למערך ולחפש, הנקודה היא בעריכת הקובץ כשאני רוצה לשנות נתון עם זה אני כרגע מתקשה.
לגבי@mgm-ivr זה מתסכל לענות לבן אדם שמנסה לרוץ לפני שהוא למד ללכת...
היה לי כל כך הרבה סייעתה דשמיא בימים האלה
שרציתי לרוץ עד הסוף... -
@mgm-ivr אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@yossiz אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@mgm-ivr זה מתסכל לענות לבן אדם שמנסה לרוץ לפני שהוא למד ללכת...
(אני מוצא את עצמי כותב את זה שוב ושוב לאחרונה... מה איתי? משהו השתנה בשואלים או בי?)התחלתי ביום חמישי ללמוד לכתוב עם קבצים (fopen a/a+'/r/r+/w) וכו', זה עבד,
אחרי כמה שעות נמאס לי כי זה מאוד קשה כל פעם לחשבן כל קובץ, החלטתי ללכת על CSV, ברוך השם במוצש הצלחתי לכתוב כל מיני פקודות שירשמו לתוך הCSV שלי, אבל נתקעתי כי אני צריך חיפוש
כלומר חיפוש כבר הסתדרתי, להפוך למערך ולחפש, הנקודה היא בעריכת הקובץ כשאני רוצה לשנות נתון עם זה אני כרגע מתקשה.
לגבי@mgm-ivr זה מתסכל לענות לבן אדם שמנסה לרוץ לפני שהוא למד ללכת...
היה לי כל כך הרבה סייעתה דשמיא בימים האלה
שרציתי לרוץ עד הסוף...כעיקרון בכדי לשנות תוכן בקובץ csv אתה צריך להשתמש עם
str_replace
אבל אם יש לך מסד נתונים אז זה הכי טוב והכי קל והכי נכון והכי מהיר
תעבור על האתר הזה יש לך שם הסבר איך להתחבר ולשנות ערכים וכו במסד נתונים מסוג mysql -
יצרתי מסד נתונים
לצורך העניין קראתי לו DB
יוזר MGM
סיסמה 1234בפרטים שהוא מבקש ממני הוא דורש כך
$servername = "localhost"; $username = "MGM"; $password = "1234";
הבעיה היא שהוא לא מזהה את זה
הפלט שלו זהConnection failed: Access denied for user 'MGM'@'localhost' (using password: YES)
אני חושש שזה בגלל שלא הגדרתי לו את שם המסד (DB) אבל לא היה שום מקום לכתוב אותו! רק אלה המשתנים שהייתי צריך למלאות ושנדרשים בקוד
הקוד המלא לפניכם (באדיבות https://www.w3schools.com/php/php_mysql_connect.asp)
<?php $servername = "localhost"; $username = "MGM"; $password = "1234"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; ?>
כמובן שהשם משתמש וסיסמה מומצאים אבל גם שהם נכונים יש שגיאה
-
@ivrtikshoret אמר בעזרה ב PHP| חיפוש בקובץ CSV:
@mgm-ivr
בהתחברות לבד אין צורך בלהכניס את שם הטבלה
בכדי לעזור לך באיזה חברה נמצא המסד נתונים שלך?השרת בהוסטינגר
וזה מובנה שם -
@ivrtikshoret אמר בעזרה ב PHP| חיפוש בקובץ CSV:
בהתחברות לבד אין צורך בלהכניס את שם הטבלה
לא הכנסתי את שם המסד!
המסד עדיין ריק לגמרי בלי טבלאות
כרגע רשמתי רק יוזר וסיסמה
בלי מסד -