sinikos Δημοσ. 8 Ιουνίου 2022 Δημοσ. 8 Ιουνίου 2022 (επεξεργασμένο) Καλησπέρα. Έχω ενώσει 2 queries για να πάρω αποτελέσματα από 2 πίνακες σε ένα foreach. Δουλεύει μια χαρά, με σορτάρισμα ανα ημερομηνία κλπ... Τώρα θέλω όμως να sortάρω και σαν 2η παράμετρος τον αριθμό του δελτίου. Δεν μπορώ να καταλάβω όμως πως το κάνω αυτό... $results = $query->result(); function cmp($a, $b) { return strcmp($a->date, $b->date); } usort($results, "cmp"); return $results; Δηλαδή θέλω να εισάγω κάπως και το return strcmp($a->number, $b->number); Έκανα διάφορες πατέντες με διπλές function και διπλά usosrt αλλά δεν μπορώ να βγάλω άκρη... Επεξ/σία 8 Ιουνίου 2022 από sinikos
thiva7 Δημοσ. 8 Ιουνίου 2022 Δημοσ. 8 Ιουνίου 2022 (επεξεργασμένο) Στην function που σου δουλεύει μια χαρά και παίρνει τις ημερομηνίες κλπ βάλε άλλη μια παράμετρο και περάσετο στην sql call. Επεξ/σία 8 Ιουνίου 2022 από thiva7
sinikos Δημοσ. 8 Ιουνίου 2022 Μέλος Δημοσ. 8 Ιουνίου 2022 1 ώρα πριν, thiva7 είπε Στην function που σου δουλεύει μια χαρά και παίρνει τις ημερομηνίες κλπ βάλε άλλη μια παράμετρο και περάσετο στην sql call. Τι εννοεις αλλη μια παράμετρο. Στο results μου υπάρχουν και οι τιμές ->number
thiva7 Δημοσ. 8 Ιουνίου 2022 Δημοσ. 8 Ιουνίου 2022 Με αυτή την function function cmp($a, $b) { return strcmp($a->date, $b->date); } Κάνεις sort τις ημερομηνίες σωστά? Εάν ναι, δεν έχει πουθενά της Τρίτη παραμετρο που θέλεις. Εάν το κάνεις αλλού εξήγησε άμα θέλεις
thiva7 Δημοσ. 8 Ιουνίου 2022 Δημοσ. 8 Ιουνίου 2022 (επεξεργασμένο) Σορρυ τώρα κατάλαβα οτι θες να κάνεις σόρτ ξεχωριστά τις τιμές. Επεξ/σία 8 Ιουνίου 2022 από thiva7
elvizakos Δημοσ. 9 Ιουνίου 2022 Δημοσ. 9 Ιουνίου 2022 Γιατί δεν κάνεις το sort από τη βάση με union και order by; Αν για κάποιο λόγο θες να το κάνεις με PHP και usort: function cmp($a, $b) { if ($a->date == $b->date) return $a->number - $b->number; return strcmp($a->date, $b->date); } Επίσης με μια αναζήτηση βρήκα και αυτό, που μπορεί να σε βολέψει: https://www.php.net/manual/en/function.array-multisort.php 1
sinikos Δημοσ. 9 Ιουνίου 2022 Μέλος Δημοσ. 9 Ιουνίου 2022 15 ώρες πριν, elvizakos είπε Γιατί δεν κάνεις το sort από τη βάση με union και order by; Αν για κάποιο λόγο θες να το κάνεις με PHP και usort: function cmp($a, $b) { if ($a->date == $b->date) return $a->number - $b->number; return strcmp($a->date, $b->date); } Ευχαριστώ πολύ. Με αυτή την λύση δούλεψε άψογα. Απλα στο return του if το έκανα strcmp($a->number, $b->number), γιατί μου πέταγε σφάλμα. Το πεδίο δεν είναι int αλλά varchar γιατί ο αριθμός δελτίου, μπορεί να περιέχει και γράμμα Σε ευχαριστώ 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα