Crazy Priest Δημοσ. 29 Δεκεμβρίου 2012 Δημοσ. 29 Δεκεμβρίου 2012 (επεξεργασμένο) Καλησπέρα, Λέω να το δημοσιεύσω εδώ πριν κάτσω να το ψάξω το θέμα, για να μου πείτε γνώμες σε ένα μικρό θεματάκι με ένα function. To function τραβάει από 2 tables τις εγγραφές και τις περνάει σε ένα pricing table του index. Στο ένα table υπάρχουν 4 εγγραφές, όπου εχει ID / Title / Popular / Price / Link / Button Στο δεύτερο table υπάρχουν 32 (8x4) εγγραφές, όπου έχει ID / Value / Label / Status. και τα δύο tables, συνδέονται ως προς το ID. Αυτό που κάνει το function είναι να τραβάει τις 4 εγγραφές του πρώτου table και επαναλαμβάνει τις εγγραφές του δεύτερου 4 φορές. Αντί να παίρνει 8 εγγραφές για το 1 ID, παίρνει 4 φορές την ίδια εγγραφή, για κάθε row του table. Table1.Row1 / Table1.Row2 Table2.Row1 / Table2.Row3 Table2.Row1 / Table2.Row3 Table2.Row1 / Table2.Row3 Table2.Row1 / Table2.Row3 Table2.Row2 / Table2.Row4 Table2.Row2 / Table2.Row4 Table2.Row2 / Table2.Row4 Table2.Row2 / Table2.Row4 ...... To ζητούμενο είναι 1 εγγραφή για κάθε Row, όχι 4. Function.source: [REMOVED] Επεξ/σία 30 Δεκεμβρίου 2012 από Crazy Priest
defacer Δημοσ. 29 Δεκεμβρίου 2012 Δημοσ. 29 Δεκεμβρίου 2012 Κάνε στο εαυτό σου τα εξής 2 γιορτινά δώρα: Αντί να κάνεις N+1 queries, διάβασε περι joins και κάντο με ένα query σωστά. Για την ακρίβεια το εσωτερικά query σου (αυτό που εκτελείται N φορές) είναι ήδη cross join και δεδομένου ότι κάνεις την ερώτηση είναι λάθος, αλλά δε μπορώ να ξέρω τις λεπτομέρειες για το τι ακριβώς πρέπει να γίνει και δεν υπάρχει και εγγύηση ότι το σχήμα της βάσης είναι κατάλληλο για να υποστηρίξει το σωστό join. Ξεχώρισε το business logic σου από το presentation logic. Κάνε μια function που τραβάει τα δεδομένα και τα επιστρέφει σε κάποια επεξεργασμένη μορφή (π.χ. σαν πολυδιάστατο πίνακα στην απλούστερη των περιπτώσεων) και μια διαφορετική function η οποία θα παίρνει αυτό τον πίνακα και θα τον εμφανίζει. Η πρώτη δε χρειάζεται να ξέρει από HTML, και η δεύτερη δε χρειάζεται να ξέρει από SQL.
Crazy Priest Δημοσ. 29 Δεκεμβρίου 2012 Μέλος Δημοσ. 29 Δεκεμβρίου 2012 (επεξεργασμένο) Σωστό αυτό με το JOIN. Άλλαξα το 2ο query και μου επιστρέφει όλες τις 32 εγγραφές. Το θέμα είναι να κάνει σωστά το loop με διαφορετικό ID. Δηλ: O πίνακας #1: [REMOVED] Ο πίνακας #2 έχει (με το join) : [REMOVED] Αυτό που θέλω είναι το function να φτιάχνει αυτό (με HTML/PHP): [REMOVED] Επεξ/σία 30 Δεκεμβρίου 2012 από Crazy Priest
Crazy Priest Δημοσ. 30 Δεκεμβρίου 2012 Μέλος Δημοσ. 30 Δεκεμβρίου 2012 Βρέθηκε η λύση. Ευχαριστώ πολύ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα