עזרה במשפט SQL

IceL

New member
עזרה במשפט SQL

יש לי קוד (מצורף) בו אני מנסה להעביר נתונים מטופס HTML (בדף אחר) אל טבלה במסד הנתונים שלי. א. סביבת העבודה של Zend מודיע לי על שגיאת תחביר במשפט: INSERT INTO users(nick, pass, fname, lname, email); ב. כשאני מנסה להריץ את הדף, מתקבלת השגיאה הבאה:
Warning: main(\inc\header.inc): failed to open stream: No such file or directory in c:\inetpub\wwwroot\action\reg_a.php on line 3 Warning: main(): Failed opening '\inc\header.inc' for inclusion (include_path='.;c:\php4\pear') in c:\inetpub\wwwroot\action\reg_a.php on line 3 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 6 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 7 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 8 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 9 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 10 Notice: Undefined variable: _post in c:\inetpub\wwwroot\action\reg_a.php on line 11 INSERT INTO users(nick, pass, fname, lname, email); VALUES($nick, $pass1, $fname, $lname, $email); Warning: main(\inc\footer.inc): failed to open stream: No such file or directory in c:\inetpub\wwwroot\action\reg_a.php on line 29 Warning: main(): Failed opening '\inc\footer.inc' for inclusion (include_path='.;c:\php4\pear') in c:\inetpub\wwwroot\action\reg_a.php on line 29​
מה עושים?
 

IceL

New member
תיקון

גלשתי לכמה אתרים ותיקנתי את שאילתת ה-SQL (קוד חדש מצורף). הודעת השגיאה שרשמתי עדיין מופיעה.
 

kensaggy

New member
כמה דברים...

1) שים לב שהמערך הגלובלי הוא $_POST ולא $_post (חשוב אותיות גדולות. PHP היא שפה case sensitive) 2) הרצת פקודות SQL נעשית דרך mysql_query() ולא שם על ידי הרצת הפקודה כפקודת של PHP. זוהי שגיאה בהבנה הבסיסית של כל עניין ה PHP-MySQL. אני ממליץ לך לעבור ולקרוא כמה מדריכים (יש כמה טובים באתר www.guides.co.il ). מה שאתה הרצת אמור לרוץ ישירות על השרת, ומכיוון שאתה לא רוצה\יכול לעשות זאת (מכיוון שאתה רוצה את התוצאות חזרה לדף ה PHP שלך) אתה צריך להשתמש בפונקציות "עזר" של PHP לתקשר בינך לבין שרת ה SQL. ראה עוד מידע ב http://il.php.net/mysql ובמיוחד ב http://il.php.net/mysql_query 3) שאילתת הSQL שלך גם כן לא נכון בעצמה (אחרי שתתקן את סעיף 2).. כאשר מכניסים ערכים הערכים שמכניסים צריכים להיות עטופים במרכאות. שוב, אני ממליץ לך לקרוא מדריך SQL כלשהו...יש אחד ב: www.webmaster.org.il ובעוד אתרים רבים: http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=learn+sql זה הכל נדמה לי... שיהיה לך בהצלחה. בברכה, חן.
 

IceL

New member
תיקנתי את...

השאליתה (ראה קוד בהודעה "תיקון". עכשיו נכנסתי לאתר שהצעת וכתב שם להציב את תוצאת השאילתה במשתנה, אבל זה נכון ל-משפטי SELECT. מה אני עושה כשאני רוצה להעביר את התוצאה לתוך מסד הנתונים? האם אני עדיין משתמש במשתנה עזר או שהמשפט VALUES מספיק?
 

IceL

New member
ושוב...

אני מצטער על ריבוי ההודעות, אבל השינוי הסופי שעשיתי לאחר קריאה:
mysql_query("INSERT INTO users (nick, pass, fname, lname, email) values ('$nick', '$pass1', '$fname', '$lname', '$email')");​
הודעת השגיאה, לעומת זאת, נשארת בעינה.
 

IceL

New member
הגעתי למסקנה...

שמשום מה, לא הצלחתי להגדיר את המשתנים. כנאה שהם לא חוזרים מהטופס. הטופס מטורף להודעה זו.
 

IceL

New member
נפתר!

לאחר תיקון שאילת ה-SQL, הבנתי שהבעיה הייתה שברוב טימטומי השארתי טבלה ריקה, אבל כדי שיכנסו אליה נתונים צריכה להיות בה לפחות רשומה אחת. הבעיה הזאת נפתרה.
 
למעלה