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

دالة بحث بايثون لا تعمل في البرنامج تعطي خطأ pymysql.err.ProgrammingError 1064

Hussein Ouda

السؤال

قمت بكتابة دالة للبحث في البرنامج : 

def search(self):
        con = pymysql.connect(host='localhost', user = 'root', password = '', database = 'employ')
        cur = con.cursor()
        cur.execute("select * from employees where " +
        str(self.se_by.get())+" LIKE '%"+ str(self.se_var.get())+"%'")
        rows = cur.fetchall()
        if len (rows) !=0:
            self.student_table.delete(*self.student_table.get_children())
            for row in rows:
                self.student_table.insert("", END, value=row)
            con.commit()
        con.close()

 

ولا تعمل! حيث تعطي الخطأ التالي : 

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%'' at line 1")

الرجاء المساعدة

 

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

Recommended Posts

  • 0
بتاريخ 51 دقائق مضت قال Wael Aljamal:

حاول تعديل السطر كالتالي:


str(self.se_by.get())+" LIKE '%'"+ str(self.se_var.get())+"'%'")

أو:


str(self.se_by.get())+" LIKE " + '%' + str(self.se_var.get())+ '%')

 

قمت بالتعديل السابق ولم يختلف الخطأ 

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

  • 0
بتاريخ 1 دقيقة مضت قال Hussein Aoda:

قمت بالتعديل السابق ولم يختلف الخطأ 

هل تأكدت من حفظ الملف بعد التعديل؟ اعتقد أن الخطا بسبب تداخل علامات الاقتباس حاول تجزئة العبارة بطريقة صحيحة

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

  • 0
بتاريخ 1 ساعة قال Hussein Aoda:

قمت بالتعديل السابق ولم يختلف الخطأ 

يمكن التأكد من أن المتغير ليس فارغ لتنجب وضع %% وراء بعضهم

se_var_val = "_"

if str(self.se_var.get()) != ""
	se_var_val = str(self.se_var.get())



str(self.se_by.get())+" LIKE " + '%' + se_var_val + '%')

 

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

  • 0
بتاريخ 19 ساعات قال Wael Aljamal:

يمكن التأكد من أن المتغير ليس فارغ لتنجب وضع %% وراء بعضهم


se_var_val = "_"

if str(self.se_var.get()) != ""
	se_var_val = str(self.se_var.get())



str(self.se_by.get())+" LIKE " + '%' + se_var_val + '%')

 

قمت بتعريف المتغير في أعلى البرنامج : 

# -------- variable = بيانات البحث في البرنامج --------
        self.se_by = StringVar()
        self.se_var = StringVar()

👆

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...