למה הקוד לא עובד?

GPhoenixX

New member
מה זה ?

מה זה הif (!result) הזה ? תנסה להשתמש ב if (mysql_num_rows($result)==0) {
 

shanor

New member
מממ...

כפי ש GPhoenixX כתב, תבדוק באמת מה בדיוק אתה מקבל ב- result.... העיניין הוא שאין חשיבות להאם התקבלה תוצאה כל שהיא מהשאילתה או לא, אתה עדיין מקבל פויינטר לתוך המיקום בזיכרון ששם נמצאת התוצאה (שיכולה להיות כלום)... ה- result לא יהיה אף פעם FALSE (אלא אם השאילתה לא התבצעה בגלל שגיאה כל שהיא. בכל מקרה אחר ה-result יכיל משהו כמוResorce #1... האפשרות ש-GPhoenixX מציע היא אפשרות אחת טובה לעשות את מה שאתה מנסה לעשות ובדרך כלל הייתי בוחר בה כדי לבצע את התנאי שאותו אתה רוצה. לדעתי, התבלבלת קצת בעיניין ה- FALSE, כאשר הקודה הבא יסתיים כאשר התוצאה תהיה FALSE:
while ($MyVar=mysql_fetch_array($result)) { do something.... }​
כך אין משמעות לכמה שורות התקבלו. אם התקבלו 0 שורות אז לא יהיה כאן ביצוע של מה שבתוך ה- WHILE... בהצלחה, שנאור.
 

golanet

New member
עדיין!!!!! הצילווו!!!

אז ככה.. תודה shanor עזרת לי בנוגע לelse אבל!!!! עדיין זה לא מכניס נתונים לטבלה!!!!!!!!!!!!!!!!!!!!!!!!
הנה הקוד של ההוספה!
$query="INSERT INTO `details` (`id`,`user`,`pass`,`email`,`name`,`admin`) VALUES (\'\','$user','$pass','$email','$name','n')";​
 

golanet

New member
הוא לא נותן שגיאה! הוא לא מציג בכלל

הוא לא נותן שגיאה! הוא לא מציג בכלל!!! הוא אומר שכאילו: "נוסף בהצלחה" אך שאני מגיע לרשימה של הטבלה אני רואה שאין שינויים!
 

MasterNir

New member
אבל הוא אומר נוסף בהצלחה ?

כאילו אתה בטוח שהוא עובר את שורת הקוד הזאת ? או שהוא מציג דף ריק ?
 

N i X

New member
אולי ככה...

$result = mysql_query("SELECT * FROM **** WHER user='" . $user . "';","$link); if(! $result) { $sql = 'INSERT INTO `****` ( `id` , `user` , `pass` , `email` , `name` ) '; $sql .= ' VALUES ( \'\', $user, $pass, $email, $name );'; $sql .= ''; }​
 

golanet

New member
משום מה..

משום מה... הקוד משאיר את כל הקודים האחרים פתוחים ועושה ERROR עם כל האחרים הבאים אחרי זה!
 

MasterNir

New member
חחחחחחחחחחחחחחחחחחחחחחח LOLOLOLOLOL

LOLOLOLOLOLOLOLOLOLOLOLOLOLOL חחחחחחחחח זה יותר גרוע ממני .....
 

erezhod

New member
אוף למה להסתבך תכניס נתונים ככה

mysql_query("INSERT INTO **** (user,pass,email,name) VALUES('$user', '$pass','$email','$name')") or die(mysql_error());​
סתם בלאגן היה פה, זה הכי פשוט וזה עובד.
 

erezhod

New member
אה ועוד משהו!

אם עשיתי לשדה של הID את האפשרות של auto_increment אז לא מכניסים ID בשאילתה לכן לא כתבתי.
 

shanor

New member
המשך שרשור...(הודעה מ-18:14).

אתה אומר שהוא לא נותן שום הודעת שגיאה... אתה מריץ את ה- MYSQL על המחשב שלך? אם כן, תריץ את MYSQL.EXE (בהנחה ואתה על WIN),ותראה מה הוא אומר, אם יש שגיאה או חוסר התאמה הוא יגיד את זה שם.... שנאור.
 

golanet

New member
לא! יש לי שרת איחסון!

לא! יש לי שרת איחסון! עם PHPMYADMIN! :\
 

shanor

New member
מממ...

נסה רגע משהו כזה: 1. צור שאילתה שתראה לך את הרשומה האחרונה של הטבלה (אני רוצה לראות את האינדקס שלה. משהו כזה:
select ID from TABLE order by id desc limit 1​
(כאשר אני מניח ש-ID, הוא ה- INDEX שלך והוא AUTOINC...). ו- TABLE היא אותה טבלה שאליה אתה עושה את ה- INSERT שלך. תרשום לעצמך מה קיבלת בתור ה- ID. 2. בשלב הזה תבצע שוב את השאילתה של הכנסת הנתונים שלך. 3. בצע את השאילתה הבאה:
select last_insert_id() as last​
אני יודע שהשאילתה הזו נראה כאילו חסרים בה כמה דברים, אבל תריץ אותה בדיוק ככה כמו שהיא. ותבדוק מה התוצאה שאתה מקבל בעמודה של last. עכשיו, אם קיבלת ב-last מספר שהוא גדול מהמספר שקיבלת בשאילתה הראשונה (של שלב 1) אז הרשומה נכנסה לתוך המערכת. - במקרה זה תבדוק שוב את הטבלאות שלך, אולי תנסה לייצא אחת מהן לתוך קובץ טקסט ותראה מה אתה מקבל בו (האם יש בו את השורה האחרונה). אם קיבלת ב- last את התוצאה של 0 (או אולי את התוצאה שקיבלת בשלב ראשון) אז השאילתה לא נכנסה למאגר הנתונים בכלל. - במקרה זה שוב צריך לבדוק האם יש התאמה בין הטבלה שלך לבין שאילתה שלך וכו'. ועוד משהו, אם אכן ה- ID הוא AUTOINC, אז, תוותר על '\'\ ופשוט תעבור לנתון הבא בלי לציין כלום לגבי ה- ID גם בחלק הראשון של שמות השדות וגם בחלק של הערכים. שנאור.
 

golanet

New member
בשביל מה..?

למה לא כל התסבוכת של הפקודות שאמרת לי לעשות ? יש לי PHPMYADMIN! אני רואה את כל מה שהתווסף! יש לי מערכת מאוד נוחה בPHPMYADMIN המאפשרת לי ליצור טבלאות ולהוסיף נתונים ולערוך וכל מיני דרך ממשק מנהל! אז אני תמיד בודק מתי שאני מנסה להוסיף דרך שם..
 
למעלה