masteripper Δημοσ. 14 Φεβρουαρίου 2019 Δημοσ. 14 Φεβρουαρίου 2019 Θα μπορούσες να φτιάξεις 1 πίνακα με όλες τις πιθανές περιπτώσεις και να τον διατρέχεις με βάση τα κριτήρια σου.
k33theod Δημοσ. 14 Φεβρουαρίου 2019 Δημοσ. 14 Φεβρουαρίου 2019 (επεξεργασμένο) Κοίτα λίγο αυτό def cq(**argv): start = "SELECT * FROM jobs WHERE " end = " ORDER BY lastvisit DESC" name_arg = '' other_args='' connector = ' and ' if argv.get('name'): name_arg = " clientID = (SELECT id FROM clients WHERE name = {}) ".format(argv['name'] ) argv.pop('name') other_args = connector.join ("{} = {}".format(i, argv[i]) for i in argv if argv[i]) if name_arg and other_args: name_arg+=connector return start + name_arg + other_args + end Δες τι δίνει >>> cq(name = 'PAOK', minas =13, city='Saloniki', etos = '2030' ) 'SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = PAOK) and minas = 13 and city = Saloniki and etos = 2030 ORDER BY lastvisit DESC' >>> cq(name = '', minas =13, city='Saloniki', etos = '' ) 'SELECT * FROM jobs WHERE minas = 13 and city = Saloniki ORDER BY lastvisit DESC' και το καλείς έτσι cur.execute (cq(name = request.args.get('name'), month = request.args.get('month'), year=request.args.get('year'))) ίσως μπορείς να το καλέσεις και έτσι αλλά δεν ξέρω τι σου επιστρέφουν οι συναρτήσεις σου. cur.exequte(cq(**request.args())) Δεν είναι αυτό που θες ακριβώς αλλά είναι οκ. Επεξ/σία 14 Φεβρουαρίου 2019 από k33theod
Fortistis Δημοσ. 15 Φεβρουαρίου 2019 Δημοσ. 15 Φεβρουαρίου 2019 Στις 14/2/2019 στις 12:30 ΜΜ, k33theod είπε Κοίτα λίγο αυτό def cq(**argv): start = "SELECT * FROM jobs WHERE " end = " ORDER BY lastvisit DESC" name_arg = '' other_args='' connector = ' and ' if argv.get('name'): name_arg = " clientID = (SELECT id FROM clients WHERE name = {}) ".format(argv['name'] ) argv.pop('name') other_args = connector.join ("{} = {}".format(i, argv[i]) for i in argv if argv[i]) if name_arg and other_args: name_arg+=connector return start + name_arg + other_args + end Δες τι δίνει >>> cq(name = 'PAOK', minas =13, city='Saloniki', etos = '2030' ) 'SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = PAOK) and minas = 13 and city = Saloniki and etos = 2030 ORDER BY lastvisit DESC' >>> cq(name = '', minas =13, city='Saloniki', etos = '' ) 'SELECT * FROM jobs WHERE minas = 13 and city = Saloniki ORDER BY lastvisit DESC' και το καλείς έτσι cur.execute (cq(name = request.args.get('name'), month = request.args.get('month'), year=request.args.get('year'))) ίσως μπορείς να το καλέσεις και έτσι αλλά δεν ξέρω τι σου επιστρέφουν οι συναρτήσεις σου. cur.exequte(cq(**request.args())) Δεν είναι αυτό που θες ακριβώς αλλά είναι οκ. Κάτι τέτοιο του έλεγα να φτιάξει εξαρχής, αλλά δεν τον βλέπω να θέλει να το γράψει εκείνος. Νομίζω ότι ζητάει να του γράψουνε την λύση.
thessalonik Δημοσ. 15 Φεβρουαρίου 2019 Μέλος Δημοσ. 15 Φεβρουαρίου 2019 Μα την εγραψα την κυση μονος μου, ο κωδικας ποου εγραψε ο φιλος μου φαινεται πιο συνθετος στηνν κατανοηση οποτε εμενινα στην δκη μου λυση.
k33theod Δημοσ. 16 Φεβρουαρίου 2019 Δημοσ. 16 Φεβρουαρίου 2019 16 ώρες πριν, thessalonik είπε Μα την εγραψα την κυση μονος μου, ο κωδικας ποου εγραψε ο φιλος μου φαινεται πιο συνθετος στηνν κατανοηση οποτε εμενινα στην δκη μου λυση. Σ'αυτό μαζί σου. Αυτό που καταλαβαίνουμε είναι πάντα καλύτερο από αυτό που δεν καταλαβαίνουμε. Αν δείς όμως λίγο python string θα το καταλάβεις. Κάνει αυτό που είπε ο Fortistis.
thessalonik Δημοσ. 16 Φεβρουαρίου 2019 Μέλος Δημοσ. 16 Φεβρουαρίου 2019 Ναι θα το αναλυσω, σε ευχαριστω πολυ για την βοηθεια.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα