ممكن حل لهذه المشكلة في PHP و MySQL

  • p3r0

هاهو الكود

$new_serial_post = $_POST['new_serial'];

$new_student_name_post = $_POST['new_student_name'];

$new_course_type_post = $_POST['new_course_type'];

$new_certificates_post = $_POST['new_certificates'];

$new_grade_post = $_POST['new_grade'];

$update_sql = "UPDATE students SET serial=".$_POST['new_serial'].", student_name=".$_POST['new_student_name'].", course_type=".$_POST['new_course_type'].", certificates=".$_POST['new_certificates'].", grade=".$_POST['new_grade']."WHERE serial=".$_GET['q'];

$update_query = mysql_query($update_sql);

if ($update_query) {

echo 'Done! Student Data Successfly Updated';

} else {

echo'Oh snap! Something Went Wrong :(';

}

الكود غرضه التعديل علي بيانات داخل قاعدة البيانات ولكنه لا يفعل شيئا .. ارجو مساعدتي بسرعة

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

هاهو الكود الذي اعتقد ان به الخطأ :

لماذا تكتب متغيرات التقاط القيم بما انك لم تستخدمها .. فالكود يكفي ان يكتب بهذه الطريقة

$update_sql = "UPDATE students SET serial=".$_POST['new_serial'].", student_name=".$_POST['new_student_name'].", course_type=".$_POST['new_course_type'].", certificates=".$_POST['new_certificates'].", grade=".$_POST['new_grade']."WHERE serial=".$_GET['q'];

$update_query = mysql_query($update_sql);

if ($update_query) {

echo 'Done! Student Data Successfly Updated';

} else {

echo'Oh snap! Something Went Wrong :(';

}

شكرا لمرورك :)

تم حل المشكلة سابقا

لديك خطا صديقي نسيت ' ' بين النصوص

$update_sql = "UPDATE students SET serial=".$_POST['new_serial'].", student_name=".$_POST['new_student_name'].", course_type=".$_POST['new_course_type'].", certificates=".$_POST['new_certificates'].", grade=".$_POST['new_grade']."WHERE serial=".$_GET['q'];

استبدله ب

$update_sql = "UPDATE students SET serial='{$_POST['new_serial']}' , student_name='{$_POST['new_student_name']}' , course_type='{$_POST['new_course_type']}' , certificates='{$_POST['new_certificates']}' , grade='{$_POST['new_grade']}' WHERE serial='{$_GET['q']}'";

نصيحة الكود الخاص بك به ثغرة الحقن اذا كان الكود المدخل بواستطة اعضاء او زوار تاكد من ترقيعه وانت مازلت تستخدم mysql غيرها الي mysqli لانها ستحذف في الاصدارات الجديدة

مرحبا بك في اي وقت

شكرا لك :)

وبخصوص ثغرة الحقن .. هذه الصفحة هي للأدمن فقط وليست للزوار او المستخدمين

وممكن توضح لي ما الخطأ بالظبط لانتبه له في المرات القادمة .. ؟؟

اخي الخطأ مازال موجود ولا يتم تعديل البيانات في القاعدة .. :(

اضف هذا بعد كود الاستعلام

echo mysql_error();

لنري ما المشكلة

لا يظهر اي خطأ ..

غريب !! هل احد انواع الحقول ليس حقل نصي مثلا رقمي ؟

لا ..

هل تاكدت من انك متصل بقاعدة البيانات او ان mysql تعمل عندك ؟

بالتأكيد اخي .. فإن باقي الاوامر تعمل بشكل صحيح .. ولكن هذا فقط هو المشكلة

اكتب

print_R($_GET);

وتاكد هل جميع المدخلات ظاهرة لك ام لا لان كودك ليس به مشاكل ظاهرة لي

وهل انت مخفي اخطأ php

شكرا لك اخي وعلي وقتك .. حليت المشكلة :)

المشكلة كانت في فورم الـHTML نفسه وليس في الـPHP اصلا :)

شكرا لك مجددا

في اكواد sql اذا كنت تتعامل مع نص يجب ان تضيف 'نص' وليس نص لكي يعمل الا اذ كان نوع الحقل ليس نص مثل int