ABA


"עזרה במציאת הטעות ב PHP"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #13150 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13150
waseem
חבר מתאריך 1.7.02
1045 הודעות, דרג אמינות חבר זה
   23:36   28.10.07   
אל הפורום  
  עזרה במציאת הטעות ב PHP  
 
   עבר עריכה לאחרונה בתאריך 29.10.07 בשעה 07:59 על-ידי MeToR (מפקח)
 
נכון שזה יהיה קל לכולם
כי פשוט רק היום התחלתי ללמוד את השפה
הקוד הזה אמור להדפיס NOT GOOD כי המערך לא ממוין אבל הוא נותן דף ריק
איפה בדיוק הבעיה ולמה זה קורה?
תודה רבה


<?php
$arr=array(42,920,609,40,850) ;
for ($i=0;$i<4;$i++)
{
if ($arr[i]>$arr[i+1])
{
echo "not good";
}
}
?>

זה לא יצא טוב אבל רשום בתוך התנאי אם האיבר במקום ה I גדול מהאיבר במקום ה I+1 אז..

כבר לא נהג חדש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תרשום את הכל בתגית CODE: Ice Cold  28.10.07 23:39 1
  if ($arr$arr) lior066 29.10.07 02:21 2
     חחחח הוא פשוט לא המיר סוגריים מרובעים :) MeToR 29.10.07 07:58 3
  להבא תשתמש ב-''המרת סוגריים מרובעים'', MeToR 29.10.07 08:13 4
     תודה לשניכם waseem 29.10.07 09:42 5
         לאט לאט :) MeToR 29.10.07 13:26 6
             תודה רבה waseem 29.10.07 14:37 7
     אין קידום של המשתנה . . . owner 12.11.07 16:32 8

       
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק, 36 נקודות
   23:39   28.10.07   
אל הפורום  
  1. תרשום את הכל בתגית CODE:  
בתגובה להודעה מספר 0
 
[code]
הקוד שלך כאן
[/code]


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

דרג אמינות חבר זה
   02:21   29.10.07   
אל הפורום  
  2. if ($arr$arr)  
בתגובה להודעה מספר 0
 
  

if ($arr>$arr)

זאת הטעות שלך...

אתה לא יכול להגיד אם ARR גדול מ ARR כיוון ש
ARR = ARR תמיד לא משנה מה
תחשיב משתנה כמו X
זה כמו להגיד
X<X
כאשר X הוא משתנה , אבל X = X תמיד כי הוא אותו משתנה
לכן את ההשוואה אתה צריך לעשות בין X ל- Y
כלומר


IF X > Y

כאשר האנלוגייה היא לפי משתנים עם שמות שונים.
המשפט תמיד יהיה FALSE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות, דרג אמינות חבר זה
   07:58   29.10.07   
אל הפורום  
  3. חחחח הוא פשוט לא המיר סוגריים מרובעים :)  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות, דרג אמינות חבר זה
   08:13   29.10.07   
אל הפורום  
  4. להבא תשתמש ב-''המרת סוגריים מרובעים'',  
בתגובה להודעה מספר 0
 
   זה יאפשר לנו לראות סוגריים מרובעים כשאתה משתמש בהם ב-CODE.

בכל אופן, הרעיון נכון, אך צריך להשתמש במשתנה בוליאני, משום שאם יש
כמה איברים שהם גדולים מהאיברים העוקבים להם, זה כל פעם ידפיס not good.

עכשיו, הבעיה שבגללה זה לא מדפיס אפילו פעם אחת, זה בגלל שעשית:


$arr[i]>$arr[i+1]

במקום:

$arr[$i]>$arr[$+1]

* שים לב לסימן הדולר, זה חשוב, ככה משתמשים במשתנים ב-PHP.

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


<?php
$arr=array(42,920,609,40,850);
$bool=true // המערך ממויין
for ($i=0; $i<4; $i++)
{
if ($arr[$i]>$arr[$i+1])
$bool=false; // המערך לא ממויין
}

if (!$bool) // אם המערך לא ממויין
echo "Not Good";
?>

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


<?php
$arr=array(42,920,609,40,850);
$bool=true; // המערך ממויין
$i=0; // נאפס את מונה הלולאה
while (($i<4) and ($bool)) // כל עוד המונה לא מגיע לסוף וגם המערך ממויין
{
if ($arr[$i]>$arr[$i+1])
$bool=false // המערך לא ממויין, וזה הסיבוב האחרון של הלולאה לפני שהיא מפסיקה
}

if (!$bool) // אם המערך לא ממויין
echo "Not Good";
?>

אם יש שאלות, אני פה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
waseem
חבר מתאריך 1.7.02
1045 הודעות, דרג אמינות חבר זה
   09:42   29.10.07   
אל הפורום  
  5. תודה לשניכם  
בתגובה להודעה מספר 4
 
   ונכון זאת הייתה הבעיה ששכחתי את הדולר

אני מבין אולי את רוב הפקודות של השפה
אבל עדיין לא מבין איך מתכנתים עם זה אתר חח

כבר לא נהג חדש


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MeToR
חבר מתאריך 26.1.07
11 הודעות, דרג אמינות חבר זה
   13:26   29.10.07   
אל הפורום  
  6. לאט לאט :)  
בתגובה להודעה מספר 5
 
   אחרי שתלמד את השפות הדרושות ותתחיל לבנות אתר מסויים, אתה פתאום תראה
שלדוגמא אתה צריך להציג למשתמש "שלום מושיק" אם הוא מחובר, ואחרת שיציג לו סרגל התחברות...
ואז תגיד לעצמך, "רגע, אולי אני אעשה פה תנאי ב-PHP?".
או שלמשל תצטרך להוציא נתונים ממסד לתוך טבלה, למשל טבלת כתבות,
ואז תגיד, "אולי אני אריץ פה לולאה?".

בכל מקרה, כדי לבנות אתר לא צריך רק לדעת תכנות, אלא לחשוב ולתכנן את
מה שאתה צריך לעשות, וכל פעם לשאול את עצמך "מה כדאי לעשות פה? אהה אם אני אעשה א' ו-ב', אז אני אקבל את ג'...".

בכל בעיה שאתה נתקל, אתה מוזמן לפנות אלינו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
waseem
חבר מתאריך 1.7.02
1045 הודעות, דרג אמינות חבר זה
   14:37   29.10.07   
אל הפורום  
  7. תודה רבה  
בתגובה להודעה מספר 6
 
   איזה ידע צריך כדי לממש את זה

http://rotter.name/nor/webgraph/13144.shtml

כבר לא נהג חדש


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
owner

דרג אמינות חבר זה
   16:32   12.11.07   
אל הפורום  
  8. אין קידום של המשתנה . . .  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net