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

السؤال

نشر

السلام عليكم

كيف استطيع معرفة الـ ID المقصود

Fatal error: Uncaught mysqli_sql_exception: Unknown column 'ID' in 'where clause' in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php:95 Stack trace: #0 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php(95): mysqli->prepare('SELECT * FROM _...') #1 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php(222): db->prepare('SELECT * FROM _...', true) #2 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php(126): db->_query(Array) #3 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_user.php(693): db->_select(Array) #4 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_user.php(716): user->group_select(Array) #5 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_user.php(1090): user->get_group_data(5) #6 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_user.php(635): user->get_access(false) #7 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_user.php(443): user->get_data(Array) #8 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_visitor.php(30): user->data(Array) #9 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_visitor.php(38): visitor->user() #10 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_loader.php(143): visitor->set_access() #11 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/loader.php(24): loader->_check_user_request() #12 /home/vol17_1/infinityfree.com/if0_38415802/htdocs/index.php(6): require_once('/home/vol17_1/i...') #13 {main} thrown in /home/vol17_1/infinityfree.com/if0_38415802/htdocs/app/core/class_db.php on line 95

Recommended Posts

  • 0
نشر

لاحظ الخطأ يخبرك أنه موجود في ملف app/core/class_db.php  في سطر رقم 95 .

حيث أنك هنا تستخدم في الإستعلام العمود ID  في جملة الإستعلام where حيث يبدوا انك تقوم بالبحث من خلال العمود ID . ويبدوا أنك لا تقوم بوضع العمود ID في جملة select لهذا لا يتعرف على العمود ID في إستعلام where .

لذلك تأكد من إختيار العمود ID في جملة select والتأكد من إسم العمود الصحيح.

يمكنك إرفاق الإستعلام كاملا الموجود في سطر 95 لمساعدتك بشكل أفضل.

  • 0
نشر
بتاريخ 12 دقائق مضت قال Marwan Elatta:

السطر 95 يحتوي على:

;$run = parent::prepare( $query)$

المشكلة أنني لم أستطع معرفةالعمود المقصود في قاعدة البيانات

المشكلة تبدأ من ملفات class_user.php وclass_db.php تفقدها، فالكود يحاول جلب بيانات مستخدم أو مجموعة من خلال ID غير موجود.

قبل سطر 95 أضف التالي لطباعة الاستعلام ومعرفة محتواه وإيقاف الكود قبل الوصول للسطر 95:

echo $query; 
exit; 
$run = parent::prepare($query);

تصفح الصفحة مرة أخرى وسيظهر لك الاستعلام الكامل مشابه لللتالي SELECT * FROM users WHERE ID = 5، ولاحظ اسم الجدول واسم العمود المستخدم.

ثم اتصل بقاعدة البيانات عبر phpMyAdmin أو أي أداة إدارة قواعد بيانات متوفرة، وابحث عن الجدول المذكور في الاستعلام، وفي حال الاستعلام به ID ولكن العمود في الجدول يُسمى id فانتبه إلى حساسية الأحرف مهمة أو user_id أو أي اسم آخر، وسيكون ذلك مصدر المشكلة.

  • 0
نشر
بتاريخ 9 دقائق مضت قال Mustafa Suleiman:

المشكلة تبدأ من ملفات class_user.php وclass_db.php تفقدها، فالكود يحاول جلب بيانات مستخدم أو مجموعة من خلال ID غير موجود.

قبل سطر 95 أضف التالي لطباعة الاستعلام ومعرفة محتواه وإيقاف الكود قبل الوصول للسطر 95:

echo $query; 
exit; 
$run = parent::prepare($query);

تصفح الصفحة مرة أخرى وسيظهر لك الاستعلام الكامل مشابه لللتالي SELECT * FROM users WHERE ID = 5، ولاحظ اسم الجدول واسم العمود المستخدم.

ثم اتصل بقاعدة البيانات عبر phpMyAdmin أو أي أداة إدارة قواعد بيانات متوفرة، وابحث عن الجدول المذكور في الاستعلام، وفي حال الاستعلام به ID ولكن العمود في الجدول يُسمى id فانتبه إلى حساسية الأحرف مهمة أو user_id أو أي اسم آخر، وسيكون ذلك مصدر المشكلة.

الاستعلام:

SELECT * FROM _user_groups WHERE `ID` = ? ORDER BY ID ASC LIMIT 0, 1

الجدول لايحتوي على عمود ID

  • 0
نشر
بتاريخ 12 ساعة قال Marwan Elatta:

الاستعلام:

SELECT * FROM _user_groups WHERE `ID` = ? ORDER BY ID ASC LIMIT 0, 1

الجدول لايحتوي على عمود ID

علية إذن إلى معرفة الأعمدة الموجودة فعليًا في الجدول _user_groups من خلال phpMyAdmin تستطيع تفقد الأمر يدويًا أو من خلال الاستعلام:

SHOW COLUMNS FROM _user_groups;

عامًة الاستعلام يحاول استخدام ID كمعرّف أساسي Primary Key لتحديد سجل معين وترتيب النتائج، فمن المرجح أن العمود الحقيقي ربما يكون بالاسم:

  • id
  • group_id
  • user_group_id

بمجرد تحديد العمود الصحيح لنفترض أنه group_id، تحتاج إلى تعديل الاستعلام في الكود أو تعديل قاعدة البيانات، عامًة افتح الملف الذي يولّد الاستعلام ربما يكون في class_db.php أو class_user.php، وابحث عن السطر الذي يحتوي على:

$query = "SELECT * FROM _user_groups WHERE `ID` = ? ORDER BY ID ASC LIMIT 0, 1";

واستبدل ID باسم العمود الصحيح.

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

  • 0
نشر
بتاريخ 59 دقائق مضت قال Mustafa Suleiman:

علية إذن إلى معرفة الأعمدة الموجودة فعليًا في الجدول _user_groups من خلال phpMyAdmin تستطيع تفقد الأمر يدويًا أو من خلال الاستعلام:

SHOW COLUMNS FROM _user_groups;

عامًة الاستعلام يحاول استخدام ID كمعرّف أساسي Primary Key لتحديد سجل معين وترتيب النتائج، فمن المرجح أن العمود الحقيقي ربما يكون بالاسم:

  • id
  • group_id
  • user_group_id

بمجرد تحديد العمود الصحيح لنفترض أنه group_id، تحتاج إلى تعديل الاستعلام في الكود أو تعديل قاعدة البيانات، عامًة افتح الملف الذي يولّد الاستعلام ربما يكون في class_db.php أو class_user.php، وابحث عن السطر الذي يحتوي على:

$query = "SELECT * FROM _user_groups WHERE `ID` = ? ORDER BY ID ASC LIMIT 0, 1";

واستبدل ID باسم العمود الصحيح.

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

هنا الجدول المقصود

 

Untitled.png

  • 0
نشر
بتاريخ 12 دقائق مضت قال Marwan Elatta:

هنا الجدول المقصود

لاحظ أن الجدول لا يحوي على أى حقل يسمى ID . هل قمت بتعديل الجدول أو قمت بحذف هذا العمود ؟

يرجى التأكد من تطبيق أخر تعديلات على قاعدة البيانات لديك إذا لم تكن قد طبقت أخر التعديلات.

او يمكنك إضافة هذا العمود من خلال الإستعلام التالي ولكن يجب التأكد من أن هذا العمود يجب أن يكون في ذلك الجدول وأن الإستعلام صحيح وليس خاطئ لديك حيث هذا الجدول يحتوي على بيانات قاعدة البيانات وأعتقد انه لا يجب أن يوجد به حقل id .

ALTER TABLE _user_groups
ADD COLUMN ID INT AUTO_INCREMENT PRIMARY KEY;

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...