اذهب إلى المحتوى
  • 0

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

أيمن دوبابي

السؤال

Recommended Posts

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

كود edit.php

 

 

edit.php

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 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$ بدون مشاكل. وطريقة جلب رقم المنشور تعتمد على طريقة حفظ رقم المنشور نفسه واستدعائه.

 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...