24-07-2013, 20:33
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
תשמע ידידי,
אם אתה רוצה להיות מה שהכינוי שלך, ולהצליח בזה, אתה חייב ללמוד לקרוא הוראות.
אתה בא ומצטט את מה שביקשתי, ואז מביא לי חלק קטן מאוד (!) ממה שביקשתי. אם ביקשתי רשימה של דברים, יש סיבה שביקשתי אותם - אני לא בא לבזבז לך את הזמן כאן.
אני אחזור על זה שוב בפעם האחרונה - אני רוצה לקבל מלבד הקוד גם את קובץ הקלט שעליו הקוד עובד, כדי להסתכל עליו. איך אני אמור למצוא את הבעייה, אם אתה לא מביא לי את כל המרכיבים שלה???
ואת הקובץ - תעלה לאתר, אל תדביק אותו. דברים יכולים להשתנות בהדבקה, בייחוד בענייני קידוד. קובץ מצורף יישאר כפי שהוא.
אני לא מצליח להבין מדוע, למרות שהבהרתי שהנושא בעייתי, וביקשתי שתתחיל בקובץ עם תווים באנגלית ומספרים בלבד, החלטת לעשות בדיוק ההפך ולשים עברית...
כמו כן, כפי שכבר ביקשתי, זה היה נחמד אם היית מדפיס את $query לפני mysql_query, ומראה לנו מה כתוב שם. זה בכלל טיפ עבורך בחיים: קודם תעשה שהאפליקציות שאתה כותב ידפיסו את השאילתות שאמורות לרוץ - תראה שהן נכונות, ורק לאחר מכן - תריץ אותן בפועל. להתחיל לשלוח דברים למסד הנתונים בלי שהם יודעים אם הם בכלל אמורים לעבוד - זה רעיון רע - בייחוד כשאתה מתחיל.
ויודע מה, אני מוסיף עוד דרישות: אני רוצה גם לראות את סכמת הטבלה. תתחבר באמצעות לקוח MySQL (בין אם בשורת הפקודה, ובין אם גרפי, לא איכפת לי) - ותראה לי את הפלט של השאילתא:
קוד:
SHOW CREATE TABLE questions3
אם בתגובתך הבאה לא יהיו כל הדברים שביקשתי (בכל ההודעות בשרשור, לא רק בזאת), אני פורש מלנסות לעזור לך...
נ.ב. מהקוד שכן צרפת, אני רואה לפחות בעייה פוטנציאלית אחת (שאולי היא הבעייה שלך, כיוון שאין לי את קובץ ה CSV שעליו אתה עובד - אי אפשר לדעת) - וזה שאתה מכניס מחרוזות לתוך שאילתא סתם כך, בלי להגן על מקרים שבהם יש תווים שיש להם משמעות מיוחדת בשפת SQL (מה שגם גורם לבעיית אבטחה שנקראת SQL Injection). מחרוזת, לפני שדוחפים אותה לתוך שאילתא (בהנחה שלא משתמשים ב PDO / Parameterized Queries) - חייבת לעבור תהליך Escaping, באמצעות הפונקציה mysql_real_escape_string().
|