• 0

زر تعديل المقالات لا ينفذ في PHP؟

  • 0
بتاريخ 2 ساعات قال روب رات:

كود edit.php

 

 

edit.php

$sql="SELECT * FROM threads WHERE id='$id'";

$id لم يتم تجهيزة بأي قيمة قبل الإتصال بقواعد البيانات. يجب استيراد الـ id وتخزينه في $id ثم بعد ذلك تقوم بالإتصال بقواعد البيانات. حتى يتم تحويل المتغير الى القيمة المخزنة بداخلة (القيمة المستوردة) .

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هل يمكن ان تفسر اكثر اخي "محمد"  انا مبتدا في php

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 1 ساعة قال روب رات:

هل يمكن ان تفسر اكثر اخي "محمد"  انا مبتدا في php

المتغيرات في الـ PHP (وفي كافة لغات البرمجة) تعمل على حفظ القيم المعطاه لها. 

فمثلاً لو قمت بإنشاء متغير جديد وإعطاءه القيمة 1. سيحمل المتغير هذه القيمة, فإينما وضعت المتغير سيتم قرائتها على أنها 1. 

لكن عندما تقوم بإنشاء المتغير بدون أي قيمة مسجلة, سيعطي NULL او سيظهر خطأ على حسب لغة البرمجة. 

في الـ PHP أي متغير يتم إنشاءه بدون قيمة, سيتم تسجيل قيمة NULL بداخله. 

مثال على ذلك : 

    $id;
    $NullCheck = is_null($id); //True or False

    if($NullCheck == 1){
        echo "I'm a NULL";
    }else{
        echo "$id";
    }

في المثال أعلاه, قمنا بإنشاء متغير id$ بدون إعطاءه أي قيمة, ثم قمنا بإنشاء متغير آخر NullCheck$ وسجلنا به الدالة $NullCheck = is_null($id) ودالة is_null() في الـ PHP تقوم بمراجعة قيمة المتغير id$ فإذا كانت قيمته NULL ستكون النتيجة 1 (اي True) وإذا كانت غير ذلك ستكون النتيجة 0 (اي False). 

لو لاحظت أني لم أقم بإعطاء id$ اي قيمة, وعند محاكاة الكود اعلاه ستظهر لنا رسالة I'm a NULL وهذا بسبب أن id$ لا يحمل قيمة بداخلة بل يحمل قيمة NULL. ولو استخدمنا وضع Debug في PHP وإظهار الأخطاء error_reporting(E_ALL) سيظهر لنا خطأ Undefined variable وهذا يعيد كلامي السابق بأن المتغير لم يتم إعطاءه أي قيمة. 

ولكن لو قمنا بإعطاء المتغير id$ قيمة (مثلا 1) واستخدمنا المثال السابق, ستظهر لنا النتيجة (1) ويزول خطأ Undefined variable

مثال : 

    $id = 1;
    $NullCheck = is_null($id); //True or False

    if($NullCheck == 1){
        echo "I'm a NULL";
    }else{
        echo "$id";
    }

 

هذه فكرة ملخصة عن المتغيرات. قد تكون قيمة مضافة لك وقد تكون مراجعة.

 

نعود الى الخطأ الرئيسي في الكود الخاص بك. 

لديك 

$sql="SELECT * FROM threads WHERE id='$id'";

يجب ان يكون المتغير id$ لديه قيمة مسبقة حتى يتم استبداله بهذه القيمة, ولكن في الكود الخاص بك ليس هنالك أي قيمة مسبقة له. 

فمثلاً كحل سريع للمشكلة , لنقل أن الرقم التعريفي للمنشور المراد التعديل عليه هو 456. 

فلو قمنا بعمل الآتي : 

$id = 456;
if($connect=mysqli_connect('localhost','root','a','flip')){
$sql="SELECT * FROM threads WHERE id='$id'";
$query=mysqli_query($connect,$sql);

وبهذا تم حل مشكلة التعديل على المنشور رقم 456. ولكن هذا يعني اننا سنحتاج إلى وضع رقم المنشور في كل مره يحتاج الى تعديل بشكل يدوي. إذا سنحتاج الى طريقة لجلب رقم المنشور المراد التعديل عليه وثم تخزينة في id$. حتى يتم تنفيذ امر sql$ بدون مشاكل. وطريقة جلب رقم المنشور تعتمد على طريقة حفظ رقم المنشور نفسه واستدعائه.

 

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

بارك الله فيك اخي محمد نجح الامر

شكرا!!!!!

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن