למה זה כותב לי שגיאה?

Some1here

New member
למה זה כותב לי שגיאה?

$Confirm = "Valid" if($User_Name == "") { $Confirm = "NotValid"; } else { echo "1234"; } "Parse error: parse error in C:\Inetpub\wwwroot\UserSignUp.php on line 4"
 

orenphp

New member
חסר לך נקודה פסיק (;)

שיניתי לך גם קצת את הקוד:
$Confirm = "Valid"; (כאן היה חסר לך את הפסיק) if(empty($User_Name)) { //like if ($User_Name == "") $Confirm = "NotValid"; } else { echo "1234"; }​
מקווה שעזרתי, אורן.
 

orenphp

New member
דבר נוסף...

בד"כ כאשר אני בודק משתנה לראות אם הוא קיים אז אני עושה בדיקה כזו:
<? if (!isset($User) || empty($User)) { echo "error - user not set correctly"; } else { echo "hello user"; }​
זה בודק שהמתשנה אכן מיושם עם ערך מסוים ושאין בו ערך שהוא "" או 0. אורן.
 

Some1here

New member
עוד שאלה קטנטונת:

לכתוב ככה מותר? if((!isset(mysql_fetch_array($result)) || empty(mysql_fetch_array($result)))
 

orenphp

New member
ממש ממש לא!

אם אתה רוצה לבדוק אם יש לך תוצאות בשאילתה שלך תשתמש בcount:
<? $query = "SELECT count(*) FROM $mytable WHERE name=´Some1here´"; $count = mysql_fetch_array(mysql_query($query)); if (!$count[0]) { // $count[0]==0 echo "no results found!"; } else { echo "results number: ".$count[0]; } ?>​
מקווה שזה קצת יותר ברור עכשיו... אורן.
 

תמר,

New member
בשביל לבדוק אם יש תוצאות בשאילתה

משתמשים בפונקציה mysql_num_rows, ובנוסף ניתן להשתמש בפונקציה mysql_errno כדי לבדוק אם יש שגיאה (0 = אין שגיאה). אין סיבה לעשות שתי שאילתות עבור שאלה אחת.
 

orenphp

New member
באמת??? תבדקי ...

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

orenphp

New member
בנוסף את גם ככה צריכה שני פניות

$query = "select * FROM table where bla=´bla´"; echo mysql_num_rows(mysql_query($query)); // גם פה יש שני פניות למיי אס קיו אל​
תשתמש ב count בדוק, הרבה יותר מהיר
 

תמר,

New member
זו לא הדרך. עושים זאת כך:

$query = "select x,y,z FROM table where bla=´bla´"; $result = mysql_query($query); if(mysql_errno()==0 && mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { printf("X: %s\tY: %s\tZ: %s<br>\n",$row["x"],$row["y"],$row["z"]); } } else { printf("Error in mysql OR rows not found"); }​
למיטב ידיעתי, הפונקציות mysql_errno ו-mysql_num_rows לא נגשות למסד הנתונים, אלא בודקות משתנים בזכרון (ולכן זה יותר מהיר). אם אתה רוצה לתכנת בצורה לא נכונה ולא תקנית, תמשיך בדרך שלך. אחרת - תמשיך בדרך של php, שבה גם אני משתמשת. תמר.
 

orenphp

New member
מה?!!!!!!!

יופי, שמרת עכשיו X תוצאות בזיכרון עם הSELECT שלך! זה כל העיקרון של הcount, הוא לא שומר כלום, רק סופר!! ודיר באלק על התכנות שלי! את מכירה אותי בגרוש... ואפילו בפחות מזה את התכנות שלי, אז הטפות תשאירי לחברים שלך. הא ודרך אגב ד"ש לצורה הנכונה והתקנית שלך! ומיטב איחוליי... אורן.
 

תמר,

New member
אם רוצים רק לבדוק כמות נתונים

בודקים עם select count(*) from וכו´, אם רוצים גם לשלוף נותנים, וגם לדעת כמה שלפו, אם בכלל, עושים זאת בדרך שלי.
 

Some1here

New member
ראיתי לבד שזה לא עובד ועקפתי את זה

ככה: ;(result2 = mysql_fetch_array($result$ ...((if((!isset($result2) || empty($result2
 

orenphp

New member
רגע... מה בדיוק אתה מנסה לעשות?

אם אתה רוצה לראות אם יש תוצאות לשאילתה שלך: אז מה שכתבת כאו ממש לא נכון מבחינת תכנות, אם כבר היית עושה:
<? $get = mysql_query("SELECT * FROM bla WHERE h=´t´"); $res = mysql_fetch_array($get); //יקח את התוצאות בצורת מערך (fetch_array)!! if (count($res)) { echo "יש תוצאות לשאילתה"; } else { echo "אין תוצאות לשאילתה"; } ?>​
אני בכלל הייתי עובד עם count בשביל לראות אם אכן ישנם תוצאות (יותר מהיר) אבל רצונך כבודך..
 

Some1here

New member
אקי, עוד שאלה

כשאני כותב mysql_query("SELECT * FROM bla WHERE h=´t´"); ו- mysql_fetch_array($result); $result לא מכיל אוטמטית את התוצאות? אני חייב להכניס את ה- mysql_query לתוך המשתנה $result לפני כן?
 

orenphp

New member
תראה...

דבר ראשון אתה חייב להתחיל להשתמש ב"תחילת קוד" וב"סיום קוד" (בשורה כאן למטה) - כדי שנוכל להבין את מה שאתה כותב!!! (זה נורא מתסכל לראות איך הכל זז ימינה ומתהפך לחלוטין ולהתחיל להבין למה התכוונת - ואין לי כוח להעביר כל פעם את ההודעה שלך לאיזה עורך טקסט) דבר שני, אני אסביר פעם אחת את כל התהליך ויקווה שזה יעזור לך להבין את הכל:
<? $query = "SELECT * FROM mytable WHERE name=´oren´"; $get = mysql_query($query); //מחזיק כרגע בשאילתה $get -> זה עדיין לא תוצאות "נקיות" - צריך להמשיך להפריד אותן. if (mysql_num_rows($get)) { //כלומר יש תוצאות, שים לב שכאן בחרתי שלא להשתמש ב // count, מאחר ואתה גם רוצה להדפיס את התוצאות ולא רק לספור אותם while ($res = mysql_fetch_array($get)) { //כעת $res //מכיל במערך(!) את השורה הראשונה, השנייה וכך הלאה - while extract($res); //תקרא על הפונקציה הזאת = מה שהיא עושה זה לתת כמשתנה את הkey של המערך. echo $name."<br>"; } } else { echo "אין תוצאות לשאילתה"; } מקווה שעכשיו זה יותר ברור. אם אתה רוצה עוד פירוט תפנה לתא האישי שלי. אורן​
 
למעלה