Εμφάνιση 1-5 από 5
  1. #1
    Εγγραφή
    27-03-2009
    Μηνύματα
    143
    Downloads
    0
    Uploads
    0
    Καλησπέρα,έχω φτιάξει αυτή τη φόρμα στην python με την tkinter
    Κώδικας:
    #!/usr/bin/env python3
    from tkinter import*
    from tkinter import ttk
    import tkinter as tk
    import sqlite3
    
    root=Tk()
    
    #Listbox
    l=tk.Listbox(root)
    l.grid(row=0, column=0, pady=3, padx=3, sticky=W)
    field = ('id','onoma', 'epitheto', 'work', 'mobile', 'afm')
    tree = ttk.Treeview(columns=field)
    tree.config(height=4)
    
    ysb = ttk.Scrollbar(orient=VERTICAL, command= tree.yview)
    xsb = ttk.Scrollbar(orient=HORIZONTAL, command= tree.xview)
    tree['yscroll'] = ysb.set
    tree['xscroll'] = xsb.set
    
    #Δημιουργία στηλών
    tree.heading('#0', text='#',  anchor=W)
    tree.heading('id', text='id', anchor=W)
    tree.heading('onoma', text='  Όνομα  ', anchor=W)
    tree.heading('epitheto', text='  Επίθετο  ', anchor=W)
    tree.heading('work', text='  Επάγγελμα  ',  anchor=W)
    tree.heading('mobile', text='  Τηλέφωνο  ', anchor=W)
    tree.heading('afm', text='  Α.Φ.Μ.  ', anchor=W)
    
    tree.column('#0', stretch=0, width=0, anchor=W)
    tree.column('id', stretch=0, width=25, anchor=E)
    tree.column('onoma', stretch=0, width=188)
    tree.column('epitheto', stretch=0, width=188, anchor=W)
    tree.column('work', stretch=0, width=188)
    tree.column('mobile', stretch=0, width=188)
    tree.column('afm', stretch=0, width=188)
    
    ysb.grid(row=0, column=1, sticky=NS)
    xsb.grid(row=1, column=0, sticky=EW)
    
    tree.grid(in_=l, row=0, column=0, sticky=NSEW)
    ysb.grid(in_=l, row=0, column=1, sticky=NS)
    xsb.grid(in_=l, row=1, column=0, sticky=EW)
    
    #entry
    entry=Entry(root, width=24, font=('Times',12))
    entry.grid(column=0, row=1, padx=5, pady=5, sticky=N+E)
    entry.get()
    
    def LoadRecords():
        #Σύνδεση με τη βάση δεδομένων
        connect = sqlite3.connect("dedomena.db")
        cur = connect.cursor()
        #Εμφάνιση εγγραφών
        cur.execute (''' SELECT id, onoma, epitheto, work, mobile, afm FROM data WHERE onoma='%s' '''%(entry.get()))
        result = cur.fetchall()
        count = (len(result))
        for i in tree.get_children():
            tree.delete(i)
        for item in result:
            tree.insert('', 'end', values=item)
        entry.delete(0, END)
        connect.commit()
        connect.close()
    
    #Button
    #Searchbutton
    ButtonSearch=Button(root, text='Εμφάνιση', command=LoadRecords)
    ButtonSearch.grid(column=0, row=2, sticky=N+E, padx=9, pady=5)
    
    root.mainloop()
    Εχω δύο ερωτήματα:
    πρώτον πώς μπορώ να αποθηκεύω κάτι στη βάση δεδομένων με κεφαλαία και να κάνω εύρεση με πεζά. π.χ (Αντώνης - αντώνης)
    και δεύτερον ας υποθέσουμε ότι έχουμε κάνει την εγγραφή «Αντώνης» και «Ανδρέας» ποιός είναι ο κώδικας, ώστε αν αναζητήσουμε «Αν» να βγάλει και τις δύο εγγραφές;
    Ευχαριστώ εκ των προτέρων

  2. #2
    Εγγραφή
    17-03-2003
    Περιοχή
    Ηράκλειο Κρήτης
    Μηνύματα
    2.260
    Downloads
    6
    Uploads
    0
    Ταχύτητα
    11050/648
    ISP
    COSMOTE
    Router
    OTE Oxygen Multigateway
    Παράθεση Αρχικό μήνυμα από Αάατος Εμφάνιση μηνυμάτων
    Καλησπέρα,έχω φτιάξει αυτή τη φόρμα στην python με την tkinter
    Κώδικας:
    #!/usr/bin/env python3
    from tkinter import*
    from tkinter import ttk
    import tkinter as tk
    import sqlite3
    
    root=Tk()
    
    #Listbox
    l=tk.Listbox(root)
    l.grid(row=0, column=0, pady=3, padx=3, sticky=W)
    field = ('id','onoma', 'epitheto', 'work', 'mobile', 'afm')
    tree = ttk.Treeview(columns=field)
    tree.config(height=4)
    
    ysb = ttk.Scrollbar(orient=VERTICAL, command= tree.yview)
    xsb = ttk.Scrollbar(orient=HORIZONTAL, command= tree.xview)
    tree['yscroll'] = ysb.set
    tree['xscroll'] = xsb.set
    
    #Δημιουργία στηλών
    tree.heading('#0', text='#',  anchor=W)
    tree.heading('id', text='id', anchor=W)
    tree.heading('onoma', text='  Όνομα  ', anchor=W)
    tree.heading('epitheto', text='  Επίθετο  ', anchor=W)
    tree.heading('work', text='  Επάγγελμα  ',  anchor=W)
    tree.heading('mobile', text='  Τηλέφωνο  ', anchor=W)
    tree.heading('afm', text='  Α.Φ.Μ.  ', anchor=W)
    
    tree.column('#0', stretch=0, width=0, anchor=W)
    tree.column('id', stretch=0, width=25, anchor=E)
    tree.column('onoma', stretch=0, width=188)
    tree.column('epitheto', stretch=0, width=188, anchor=W)
    tree.column('work', stretch=0, width=188)
    tree.column('mobile', stretch=0, width=188)
    tree.column('afm', stretch=0, width=188)
    
    ysb.grid(row=0, column=1, sticky=NS)
    xsb.grid(row=1, column=0, sticky=EW)
    
    tree.grid(in_=l, row=0, column=0, sticky=NSEW)
    ysb.grid(in_=l, row=0, column=1, sticky=NS)
    xsb.grid(in_=l, row=1, column=0, sticky=EW)
    
    #entry
    entry=Entry(root, width=24, font=('Times',12))
    entry.grid(column=0, row=1, padx=5, pady=5, sticky=N+E)
    entry.get()
    
    def LoadRecords():
        #Σύνδεση με τη βάση δεδομένων
        connect = sqlite3.connect("dedomena.db")
        cur = connect.cursor()
        #Εμφάνιση εγγραφών
        cur.execute (''' SELECT id, onoma, epitheto, work, mobile, afm FROM data WHERE onoma='%s' '''%(entry.get()))
        result = cur.fetchall()
        count = (len(result))
        for i in tree.get_children():
            tree.delete(i)
        for item in result:
            tree.insert('', 'end', values=item)
        entry.delete(0, END)
        connect.commit()
        connect.close()
    
    #Button
    #Searchbutton
    ButtonSearch=Button(root, text='Εμφάνιση', command=LoadRecords)
    ButtonSearch.grid(column=0, row=2, sticky=N+E, padx=9, pady=5)
    
    root.mainloop()
    Εχω δύο ερωτήματα:
    πρώτον πώς μπορώ να αποθηκεύω κάτι στη βάση δεδομένων με κεφαλαία και να κάνω εύρεση με πεζά. π.χ (Αντώνης - αντώνης)
    και δεύτερον ας υποθέσουμε ότι έχουμε κάνει την εγγραφή «Αντώνης» και «Ανδρέας» ποιός είναι ο κώδικας, ώστε αν αναζητήσουμε «Αν» να βγάλει και τις δύο εγγραφές;
    Ευχαριστώ εκ των προτέρων
    Για το a) με την NOCASE:

    https://stackoverflow.com/questions/...ring-comparing

    Για το b) δες εδώ:

    https://www.sqlitetutorial.net/sqlite-like/
    Intel i7 Skylake, Nvidia GTX1080Ti - Arch Linux/Windows 10
    Lenovo Thinkpad T470s - Ubuntu 19.04
    iMac G5 - Leaky MB capacitors

  3. #3
    Εγγραφή
    27-03-2009
    Μηνύματα
    143
    Downloads
    0
    Uploads
    0
    Αυτά τα είχα βρει
    Ας εστιάσουμε στο β ερώτημα δεν ξέρω τι κάνω λάθος, αλλά δεν ξέρω πώς θα πρέπει να συντάξω το LIKE εδώ
    Κώδικας:
     cur.execute (''' SELECT id, onoma, epitheto, work, mobile, afm FROM data WHERE onoma='%s' '''%(entry.get()))
    Εκτός και αν στον κώδικα που έχω γράψει πρέπει να προσθέσω και κάτι άλλο.
    Πάντως ευχαριστώ για τη βοήθεια.

  4. #4
    Εγγραφή
    17-03-2003
    Περιοχή
    Ηράκλειο Κρήτης
    Μηνύματα
    2.260
    Downloads
    6
    Uploads
    0
    Ταχύτητα
    11050/648
    ISP
    COSMOTE
    Router
    OTE Oxygen Multigateway
    Κώδικας:
     cur.execute (''' SELECT id, onoma, epitheto, work, mobile, afm FROM data WHERE onoma LIKE '%s%%' '''% '''%(entry.get()))
    Κάνει match όταν το column 'onoma' ξεκινάει απο entry.get()

    To %% δίνει τον χαρακτήρα % και δεν το περνάει σαν mixin στο string
    Intel i7 Skylake, Nvidia GTX1080Ti - Arch Linux/Windows 10
    Lenovo Thinkpad T470s - Ubuntu 19.04
    iMac G5 - Leaky MB capacitors

  5. #5
    Εγγραφή
    27-03-2009
    Μηνύματα
    143
    Downloads
    0
    Uploads
    0
    Ευχαριστώ πολύ δουλεύει κανονικά

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας