Εμφάνιση 1-3 από 3
  1. #1
    Εγγραφή
    08-03-2005
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.994
    Downloads
    29
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    12288/1024
    ISP
    Forthnet
    Router
    HUAWEI™
    SNR / Attn
    6.5(dB) / 25(dB)
    Path Level
    Fastpath
    Ζηταω να δω αποτελεσματα με βαση τους εξης συνδυασμους απο 3 dropdwon menus.


    Κώδικας:
    	name = request.args.get('name')
    	month = request.args.get('month')
    	year = request.args.get('year')
    
    		if year:
    			cur.execute( '''SELECT * FROM jobs WHERE YEAR(lastvisit) = %s ORDER BY lastvisit ASC''', year )
    
    			if name:
    				cur.execute( '''SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = %s) and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (name, year) )
    
    			elif month:
    				if name:		
    					cur.execute( '''SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = %s) and MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (name, month, year) )
    				else:
    					cur.execute( '''SELECT * FROM jobs WHERE MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (month, year) )

    year

    name + year

    month + year

    name + month + year

    Εχω προσπαθησει να το γραψω με 10002 τροπους αλλα παλι δεν τα πετυχιανω και τα 4 αποτελεσματα

    Σε αυτο που εχω παραθεσει εαν ο χρηστης επιλεξει απο το dropdown menu mono το year η πρωτη cur.execute διενι αδειο συνολο δεδομενων ενω αυτα υπαρχουν.

    ΚΑθως επισης στο name + month + year γινεται επιστροφη δεδομενων ολου του χρονου αντι για τον συγκεκριμενο μηνα.

    Μπορειτε να με βοηθησετε να το γραψω σωστα?
    What is now proved was at first only imagined!

  2. #2
    Εγγραφή
    18-02-2004
    Μηνύματα
    3.400
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΑΛΑΝΔΡΙ
    Router
    Fritz!box Fon 7590
    SNR / Attn
    10(dB) / 21(dB)
    Γιατί δεν χτίζεις δυναμικά το query ανάλογα με τις τιμές των μεταβλητών;
    Το άλλο που μπορείς να κάνεις είναι να υπάρχουν όλα τα columns στο query αλλά το where clause του κάθε column αν δεν έχει δοθεί τιμή από το menu να επιστρέφει όλα τα rows.

  3. #3
    Εγγραφή
    08-03-2005
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.994
    Downloads
    29
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    12288/1024
    ISP
    Forthnet
    Router
    HUAWEI™
    SNR / Attn
    6.5(dB) / 25(dB)
    Path Level
    Fastpath
    Μα δυναμικα νομιζω το χτιζω.

    Μπορεις να μου το γραψεις σε κωδικα να δω πως το εννοεις?

    - - - Updated - - -

    Κώδικας:
    	if name and month and year:
    			cur.execute( '''SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = %s) and MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (name, month, year) )
    			print( 1 )
    
    		elif name and year:
    			cur.execute( '''SELECT * FROM jobs WHERE clientID = (SELECT id FROM clients WHERE name = %s) and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (name, year) )
    			print( 2 )
    
    		elif month and year:
    			cur.execute( '''SELECT * FROM jobs WHERE MONTH(lastvisit) = %s and YEAR(lastvisit) = %s ORDER BY lastvisit DESC''', (month, year) ) 
    			print( 3 )
    
    		elif year:
    			cur.execute( '''SELECT * FROM jobs WHERE YEAR(lastvisit) = %s ORDER BY lastvisit ASC''', year )
    			print( 4 )

    Its almost correct except the fast that the last "elif" never gets executed. Even if 'month=0', which mean no selection of month still this clause 'elif month and year:' always executes instead of the last one.
    What is now proved was at first only imagined!

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

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

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