‏إظهار الرسائل ذات التسميات تصميم وبرمجة مواقع. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات تصميم وبرمجة مواقع. إظهار كافة الرسائل
مشروع إدارة مدرسة بلغة #C مفتوح المصدر (كود متكامل)

برنامج إدارة مدرسة مشاريع بلغة #C مفتوحة المصدر



ملف المشروع في صندوق الوصف للفيديو على اليوتيوب

مشاهدة المزيد

لغة PHP (الدرس السابع) تابع المصفوفات في لغة php


دوال المصفوفات

الدالة key  
لنفرض أن لدينا مصفوفة مكونة من عنصرين :
مثال :
$s= array ("على","محمد");
الآن لنضف إليها هذه السطور
<?
$s= array (“على”,”محمد”);
$t=key ($s);
echo $t;
?>
يقوم الأمر key بإيجاد رقم الفهرسه (index) العنصر النشط حالياً .... وهو الرقم صفر حيث أننا لم نضع فهرسة وهذه هي الفهرسة التي وضعها الـPHP تلقائياً عندما لم نضع فهرسة ... قد تحيرك كلمة النشط لكن ستعرف أننا  نستطيع التجول بين عناصر المصفوفة لاحقاً .
قد يكون رقم الفهرسة حروف أو كلمات

مثال :
<?
$s= array (“ع”=>“على”,”م”=>”محمد”);
$t=key ($s);
echo $t;
?>


الدالة ()current
تقوم الدالة current بإيجاد القيمة  لعنصر المصفوفة الحالى (index value)  .
مثال :
<?
$s= array (“ع”=>“على”,”م”=>”محمد”);
$p=current ($s);
echo $p;
?>
في المثال السابق قمنا بإيجاد القيمة الحالية للعنصر النشط .... لاحظ أننا أوجدنا بالأمر key رقم الفهرسة بينما أوجدنا بالأمر current القيمة للعنصر المفهرس .

كيف يمكننا تنشيط العناصر الاخري للمصفوفه ؟!

يمكننا ذلك عن طريق الدالتين()next  و prev اللتان تقومان بالتجول بين عناصر المصفوفة ..... لنفرض أن لدينا مصفوفة تتكون من ثلاثة عناصر
مثال :
<?
$s= array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);
echo key($s).”<br>”;
echo current($s) .”<br>”;
?>
لقد قمنا في هذا المثال بطباعة قيمة رقم الفهرسة للعنصر الحالى وقيمته ( اقصد برقم الفهرسة الحرف(ع) واقصد بالقيمة (على) .... لنقم الآن بالتجول بين عناصر المصفوفة ولنر نتيجة الطباعة .

مثال  :
<?
$s= array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);
next($s);
echo key($s).”<br>”;
echo current($s) .”<br>”;
?>

<?
$s= array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);
next($s);
next($s);
echo key($s).”<br>”;
echo current($s) .”<br>”;
?>
لاحظ أننا كتبنا الدالة()next قبل أن نقوم بالإنتقال لكي يتم تنشيط العنصر الثاني في أول مثال ولتنشيط العنصر الثالث في ثالث مثال (ولاحظ أننا كتبنا()next مرتين )  .

يمكننا الرجوع لتنشيط العنصر السابق بوضع الدالة prev() فمثلاً يمكننا تعديل المثال التالى :
<?
$s= array (“ع”=>“على”,”م”=>”محمد”,”ا”=>”احمد”);
next($s);
next($s);
prev($s);
echo key($s).”<br>”;
echo current($s) .”<br>”;
?>
فسيقوم الـPHP في هذه الحاله طباعة العنصر الثاني وليس الثالث لأنه تم التراجع خطوه عن طريق prev()

ماذا سيحصل إذا قمنا بإضافة عنصر على مصفوفة غير محدودة الفهرسة ؟!
لنفرض أن لدينا مصفوفة وأضفنا إليها عنصر غير محدد الفهرسة . مثل :
<?
$s= array (12=>“على”,5=>”محمد”,44=>”احمد”);
$s[ ]= “هشام”;
Next($s);
Next($s);
Next($s);
Echo key ($s).”<br>”;
Echo current( $s ).”<br>”;
?>

سيقوم الـPHP ببساطة بالبحث عن أكبر رقم فهرسة وبعد ذلك يبدأ بإعطاء الفهرسة تسلسلاً بعده فإذا كانت أرقام الفهرسة حروفاً بدأ من الصفر في اعطاء الرقم .. ولاحظ في هذا المثال بأنه قام بإعطاء العنصر الرقم 45 لأن أكبر عنصر في المصفوفة هو 44 وعلى ذلك قام بإعطاء الأرقام تسلسلاً بعد هذا الرقم .

الدالة List و Each
لنفرض أنك قد قمت بصنع مصفوفة غير مفهرسة بالترتيب
مثال :
<?
$s= array (12=>“على”,5=>”محمد”,44=>”احمد”);
?>
على ذلك دعنا نخبرك بخبر سار وهو أنك تستطيع أن تجعل حياتك مع PHP أسهل مع حياتك مع نفسك !
While (list(ارقام الفهرسة  Index,Element valueقيمة العنصر  )=each (array)
تستطيع بواسطة هذه الدالتين وعن طريق التكرار while  استخراج جميع العناصر الموجودة في المصفوفة
While (list($e,$r) = each ($s))
{
echo “<br> $e<br> $r”;
}
أولاً أنت تقوم بتسمية متغيرين واحد منهما لرقم الفهرسة ($e) والثاني للعنصر ($r) ويمكننا تسميتهما بأي اسم وفي حالة ما إذا أردنا عرض العنصر فقط أو معرفة العنصر فقط فيمكننا حذف ($e) ولكننا لانحذف الفاصلة
While (list(,$r) = each ($s))
{
echo “<br> $e<br> $r”;
}
لنعد الى المثال الذي فيه رقم الفهرسة والعنصر ... سيقوم التكرار بوضع رقم الفهرسة (الذي قد يكون نصياً) في المتغير $e وسيضع قيمة العنصر الذي رقم الفهرسة له هو $e  في المتغير $r  ثم سيقوم بطباعة العناصر حتي ينتهي منها جميعها ...
ملاحظة مهمة : إذا لم تقم بتعريف فهرسة للمصفوفة (حروف أو أرقام أيا كان) فسيتم استخدام العناصر عندما يطلب التكرار الفهارس .
مثال :
<?
$e=array("fsda","terhfgfd","tewr");
While (list ($I,$V)=each($e))
{
echo "<br>$e[$I]";
}
?>

لاحظ مع Hننا طلبنا طباعة الفهرسة (index) إلا أنه تم أخذ العناصر(elements) بدلاً من الفهرسة

يمكننا بواسطة هذه الدالة صناعة أشياء مفيده وكمثال لذلك لنفرض أن لدينا مصفوفة أرقام هواتف ونريد أن نخرج هذه المصفوفة على جدول html  فسنستطيع صناعة هذا الجدول عن طريق التكرار السابق بكل سهولة .
مثال :
<table align='center' dir = "rtl" border="1" width="100%" cellspacing="0" bordercolorlight="#000000" bordercolordark="#000000" bordercolor="#000000">
<tr>
    <td align='center'>الاسم</td>
    <td align='center'>رقم التلفون</td>
  </tr>
<?
$s = array (658=>"عادل" ,456546=>"سالم" , 465873);
While (list($e,$r) = each ($s))
{
echo "<tr><td align='center'>". $r . "</td><td align='center'>" .$e . "</td></tr>";
}
?>
</table>
أرايت كيف استخرجنا جميع أرقام التلفونات في جدول بواسطه تكرار بسيط ، يمكنك صناعة الأكثر واختصار الكثير من الوقت على ذلك إذا كانت المصفوفة تحتوي على المئات  من الأرقام بواسطة هذا الكود بدلاً من أن تكتب الكود على شكل html وتكتب البيانات وتتعب نفسك .

يمكنك أيضا معرفة عدد العناصر في مصفوفة معينة إذا كنت تريد معرفة عددها وذلك بالطريقة التالية :
<?
$s= array (12=>“على”,5=>”محمد”,44=>”احمد”);
$S=0;
While (list($E,$r) = each ($s))
{
$S++;
}
ECHO “عدد عناصر المصفوفه ” . $S++;
?>

مشاهدة المزيد

لغة PHP (الدرس السادس) المصفوفات في لغة php

المصفوفات
لقد قمنا بتعريف المصفوفات سابقاً بشكل بسيط وحان الوقت الآن لنعرفها ونعرف كيفية عملها . المصفوفات عبارة عن متغير وهذا المتغير يحتوي على أكثر من قيمة أو عنصر (element) وكل عنصر له فهرسة (Index)  تبدأ هذه الفهرسة من الصفر إذا لم تقم بتحديدها

مثال :
<?
$A[ ] = "alfareees";
$A[ ] = 13;
?>

في هذا المثال سيقوم الـPHP  بإعطاء الفهرسة تلقائياً فسيقوم بوضع الرقم فتصبح المتغير فهرسته كالتالى :

$A[0] = "dammag";
$A[1] = 13;

إننا لم نقم بإدخال هذه الأرقام من تلقاء أنفسنا ولكن الـPHP قام بوضعها مع أنه يمكننا أن ندخلها بشكل عادي فمثلاً لو كتبنا :
<?
$A[0]="dammag" ;
$A[1] = 13;
?>
سيقوم الـPHP بأخذ الفهرسة المعتمدة ولن يضع أي فهرسة أخري يمكننا أيضا أن نكتب أي فهرسة ولانعتمد على الترتيب في الارقام  .

مثال :
<?
$A[10 ] = "dammag";
$A[ 25] = 13;
?>
هل لاحظت أيضا أننا لم نقم بتعريف نوع متغيرات المصفوفة وقام الـPHP بتعريفها تلقائياً بدلاً منا فمرة استخدمنا قيمة حرفية ومرة استخدمنا رقماُ ورغم ذلك فلم يقم الـPHP بعمل أي اعتراض إضافة إلى ذلك فإن الـPHP يقوم بتحديد عدد  عناصر المصفوفة تلقائياً فهو يعرف مثلاً من المثال السابق أن عدد عناصر المصفوفة الكلي هو عنصرين .
يمنحنا الـPHP ميزة أخري وهي عدم التقيد بالأرقام في الفهرسة فمثلاً يمكننا استخدام حروف عادية .

مثال :
<?
$A["a" ] = "alfareees";
$A["b" ] = 13;
?>

لاحظ أننا استخدمنا القيم الحرفية ولم يعترض الPHPJ بتاتاً ويمكننا طباعة  أي عنصر من عناصر المصفوفة بكل بساطة .

مثال :
<?
$r [“aa”] = "odai yasser";
$r [1] = 13273;
$r [20] = 13273;
echo $r[aa];
echo $r[20];
echo $r["aa"];
?>

لا فرق بين أن نكتب النص الحرفي (aa) بين علامتي تنصيص عند الطباعه وعند كتابته بدون علامات تنصيص ... سيقوم الـPHP بمعرفة ذلك تلقائياً .

يمكننا تعريف المصفوفات أيضا بطريقة أخري

$variable = array (elements) ;

مثال :
<?
$t =array ("odai", "yasser","amr","ahmed");
echo $t [0];
?>
يقوم الـPHP بإعطاء كل عنصر من عناصر المصفوفة رقم فهرسة فتصبح كالتالى :

Element العنصرIndex الفهرسه
odai0
yasser1
amr2
ahmed3

إذن القيمة التي سيطبعها الـPHP في النهايه هي ahmed ، لاحظ أن الـPHP قام بإعطاء رقم الفهرسة وقام بالبدء من الصفر ولكن يمكننا جعل الـPHP يبدأ الفهرسة من الرقم واحد كالتالي :
<?
$r = array (1=>"odai", "yasser","amr","ahmed");
?>

عند تعريفك لرقم الفهرسة للقيمة الأولى سيقوم الـPHP بإعطاء أرقام فهرسة بشكل تسلسلي ،
عندئذ ستصبح الفهرسة كالتالى :

Element العنصرIndex الفهرسه
odai1
yasser2
amr3
ahmed4




هناك طريقة لتكون أيضا الفهرسة هي عبارة عن حروف :
<?
$r = array ("a"=>"ahmed", "b"=> "ali", "c"=>"ammar", "e"=> "amr");
?>
عندئذ ستصبح الفهرسة كالتالى  :

Element العنصرIndex الفهرسه
Ahmeda
Alib
ammarc
amre

عندما نريد تغيير أي عنصر في المصفوفة فيمكننا عمل ذلك ببساطه .

مثال :
$r [a]= "لمياء";
لاحظ أننا قمنا بتغيير القيمة من (ahmed) الى (لمياء) .

قراءه المصفوفات واستخراج القيم
تكلمنا سابقا عن التكرار For
يمكننا استخراج عناصر مصفوفة وطباعتها في بساطة وتوفير وقت عن طريق التكرارات

لنفرض أن لديك هذه المصفوفة :
<?
$people =array ("ahmed", "ali", "salem", "alfarsi");
?>

واردت أن تطبع أسماء جميع الاشخاص المتواجدين فيها
أولاً نحن نعرف أن المصفوفة إذا لم نقم بتعريف رقم فهرسة لها فإن الـPHP يقوم ببداية فهرستها من الصفر وعلى ذلك فان رقم العنصر الأول 0 ورقم العنصر الرابع 3 ... على ذلك يمكننا بكل بساطه كتابة الكود التالي الذي يقوم بطباعة المصفوفة كالتالى :
<?
$people =array ("ahmed", "ali","salem", "alfarsi");
echo “$people[0]. <br>”;
echo “$people[1]. <br>”;
echo “$people[2]. <br>”;
echo “$people[3]. <br>”;
?>

لنفرض أن لديك ثلاثين أو ثلاثة آلاف اسم في مصفوفة ألن تبدو هذه الطريقة متعبة قليلا !!!
هناك طريقة أخري وهي عن طريق التكرارات .
لنفرض أننا أردنا  كتابة تكرار يقوم بطباعة الارقام من واحد الى عشرة فإننا نستطيع كتابة التكرار بالشكل التالى :
<?
For ($I=1;$I<11;$I++)
{
Echo "$I <br>";
}
?>



والآن لنقل أننا نريد طباعة الأربعة عناصر في المصفوفة كل ماعلينا هو إجراء عملية بسيطة على الكود لكي يتم ذلك :
<?
$people =array ("ahmed", "ali", "salem", "alfarsi");
For ($I=0;$I<4;$I++)
{
Echo "$people[$I] <br>";
}
?>
لاحظ أننا بدأنا العداد بالقيمة صفر ثم اشترطنا أن يكون أقل من 4 لأن آخر عنصر في المصفوفة رقم فهرسته 3 ثم قمنا بجعله يزداد بقيمة 1 لأننا نريد طباعة جميع عناصر المصفوفة وقمنا بوضع رقم العداد في خانة الفهرسة وعلى ذلك سيتم في كل تكرار طباع عنصر المصفوفة الذي فهرسته تساوي رقم العداد .

لقد تكلمنا سابقاً في درس النماذج عن إخراج القيم من قائمة على شكل مصفوفة .

مثال :
<form action = "array.php" method = post>
ما هو مشروبك المفضل ؟
<br>
<select name = "a[]" multiple>
<option>شاي</option>
<option>قهوة</option>
<option>كابتشينو</option>
<option>توت</option>
<option>برتقال</option>
</select>
<br>
<input type=submit value = "لذيذ" >
</form>
في ملف الـarray.php اكتب :
<html>
لقد قمت باختيار التالى :
<?
For ($I=0;$I<4;$I++)
{
Echo "$a[$I] <br>";
}
?>
</html>

لقد عرضنا في القائمة خمسة عناصر ... لاحظ أننا وضعنا في اسم المتغير للقائمة قوسين [ ]  لكي يتعرف الـhtml على أنه سيتم تخزين البيانات تلقائياً بعد ذلك قام الـPHP بفهرسة العناصر التي تم إرسالها من قبل العميل سواء كانت ثلاثة أو أربعة ولكنها بالطبع لن تزيد على خمسة  .... على ذلك سيكون آخر رقم تنتهي به المصفوفة هو 4 .






أتوقع أنك الآن بدأت تحب المصفوفات  .... يمكننا صناعة القائمة عن طريق المصفوفة أيضاً ....

مثال :
<form action ="list.php" method = post>
ما هو مشروبك المفضل ؟
<br>
<select name = "s" >
<?
$shrab =array("شاي","قهوة","كابتشينو","توت","برتقال");
For ($k=0;$k<4;$k++)
{
echo "<option>".$shrab[$k]."</option>";
}
?>
</select>
</form>

عند اختيار المستخدم للقيمة سيتم وضعها في المتغير $s  يمكنك مراجعة درس النماذج لكي تفعل ذلك ، هذا المثال يقوم بصناعة مصفوفة للمشروبات ثم يقوم بإخراجها في قائمة مما يوفر علينا الوقت في كتابة الكود فلو كان لديك مثلا حوالى مئة دولة فيمكنك مثلا وضعها في مصفوفة وبعد ذلك بناء القائمة التي سوف تقوم ببناء القائمة التي ستحتوي على هذه الدول عن طريق المصفوفات والتكرارات .

قم بحفظ التغييرات في ملف إمتداده php وقم بكتابة الملف list.php اعتمادا على معلوماتك السابقة في درس النماذج  .
مشاهدة المزيد

لغة PHP (الدرس الخامس) حلقات التكرار بلغة PHP

لغة PHP (الدرس الخامس) حلقات التكرار بلغة PHP
حلقات التكرار

حلقات التكرار عبارة عن  تكرار أمر معين بعدد معين من المرات ولقد اخذنا سابقاً الدوال الشرطية أو العبارات الشرطية بالأصح فوجدنا أن الكود الذي نكتبه في العبارات الشرطية لا تتنفذ إلا عندما يكون الشرط صحيحاً
أيضا التكرارت فهي تختبر الشرط فإذا كانت قيمته صحيحة فإنها تقوم بعمل الكود المطلوب ثم تقوم بإعادة اختبار القيمة فإذا كان صحيحاً فإنها تقوم بإعادة تنفيذ الكود وهكذا ، أما عندما لا يكون الشرط صحيحاً فإنها تتوقف عن تنفيذ الكود ويتم اكمال البرنامج بشكل عادي ... هناك ثلاثة أنواع من التكرارات .
إن أول دالة نقوم بأخذها في البداية هي الدالة while



حلقة التكرار while   

لقد قمنا بأخذ حلقة التكرار while لأنه بسيط جداً وصيغه هذا التكرار هي  :
While (condition شرط )
{
code
}
 مثال :
<?
$d =10 ;
while ($d<15)
{
echo "$d <br>";
$d++;
}
?>
سيقوم الـPHP أولا بإعطاء المتغير $d القيمة 10 ثم يقوم بعد ببدء التكرار while فإذا كان الشرط صحيحاً (وهو أن المتغير أصغر من الرقم 15) فإنه يقوم بتنفيذ الكود الذي بين الأقواس وعمل هذا الكود أن يقوم بطباعة المتغير ثم  يقوم بإضافة واحد على القيمة الموجودة في المتغير $d ثم بعد ذلك سيتم اختبار الشرط مرة ثانية فإذا كان صحيحاً فسيتم نفس العملية حتي يكون الشرط غير صحيح فيتوقف عندها التكرار ويتم إكمال الكود التي تقع بعد الاقواس .
إذا لم تقم بوضع حد للتكرار فلن يتوقف التكرار وقد يكون لانهائي ....
مثال :
<?
$d =10 ;
while ($d<15)
{
echo "$d <br>";
}
?>
سيتم طباعة الرقم 10 ولن يتوقف التكرار لأن الشرط صحيح دائماً وليس هناك مايوقفه بينما في الكود السابق استطعنا إيقاف الكود بسبب أننا كنا نضيف واحد على القيمة الموجودة في المتغير وكلما يتم اعادة اختبار الكود كل ما تتغير القيمة حتي يصبح الشرط غير صحيح بسبب أن $d أكبر من 15 .

حلقة التكرار do - while   
هذا التكرار يعمل بنفس طريقه التكرار الأول إلا أنه يوجد بعض الاختلافات البسيطة  وصيغته كالتالى :
do{
code
}
while (conditionشرط );
مثال :
<?
$f=15 ;
do
{
echo “$f”;
$f ++
}
while () ;
سيقوم التكرار بتنفيذ السطر الموجود بين القوسين أولا ثم يقوم بتنفيذ بإختبار الشرط فإذا كان الشرط صحيحاً قام بإعادة العملية الموجودة بين القوسين وهي إضافة واحد على المتغير $f وهكذا حتي يكون الشرط غير صحيح فيتم التوقف  .. لاحظ أننا في التكرار الأول قمنا باختبار الشرط قبل صناعة أي عمل بينما في التكرار الثاني قمنا بتنفيذ الكود أولا ثم قمنا بإجراء الاختبار .

حلقة التكرار FOR
يختلف هذا التكرار عن سابقيه لكن وظيفته هي نفس وظيفتهما وهي تكرار الأوامر عند حصول شي معين

الصيغة :
For (counter عداد ; test value اختبار القيمة  ; set counter اداء عمليه على العداد )
{
code  شفرة
}
مثال :
<?
For ($u = 18 ; $u>10 ; $u--)
{
echo $u;
}
 ?>

يتكون هذا التكرار من ثلاثة أقسام .... القسم الأول نضع فيه متغير يحتوي على قيمة حيث سيبدأ التكرار العمل من عند هذه القيمة والقسم الثاني نكتب فيه الشرط الذي سيقوم التكرار بفحصه (والذي هو كالمعتاد اختبار لقيمة المتغير في القسم الاول ) والقسم الثالث نضع فيه العمل الذي سيجري على المتغير عند كل تكرار ثم نقوم بكتابة كود التي سيقوم بتنفيذها التكرار بين القوسين .

كأننا نقول للـphp بشكل عامي أن يقوم في البداية بإعطاء المتغير $u القيمة 18 وقبل ان يقوم بتنفيذ الكود عليه أن يقوم بتحليل الشرط فإذا كان الشرط صحيحاً فإنه يقوم بإنقاص واحد من المتغير $u ويتم تنفيذ الكود حتي يصبح المتغير$u قيمته 9  فيقوم الـPHP آنذاك بالخروج من التكرار والذهاب الي الكود الذي يلى القوسين  .
حلقة التكرار  foreach
هذا التكرار هو من الأشياء الجديدة في الـphp4 وهو يساعدك على معرفة عناصر مصفوفة معينة أو طباعة محتوياتها .
Foreach ($ArrayName As $ArrayItem)
{
         code شفره
}
مثال :
<?
 $T= array (a=>”ahmed “ , b => “basem”, c=>”car”)
Foreach ($T As $A => $r)
{
      echo $A .”-----”. $r;
}
?>

الدالة count
تقوم بحساب عدد العناصر الموجودة في المصفوفة
مثال :
<?
$c=array("a","b","c");
$v=count($c);
echo $v;
?>
مشاهدة المزيد