Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Γενικές συζητήσεις για SQL και SQL Servers (RDBMS)

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Δημοσίευση από ioannisls » 03 Σεπ 2014 15:55

Για να βάλουμε ένα αριθμό σειρών σε ένα array χρησιμοποιούμε το παρακάτω κώδικα:
$result = mysql_query("SELECT * FROM (SELECT * FROM my_table ORDER BY id desc LIMIT 0,36) t ORDER BY id desc'") or die(mysql_error());
$k1=0;
while ($row = mysql_fetch_array($result)) {
$array[$k1] = $row;
$k1++;
}
Αυτό που θέλω εγώ είναι με το παραπάνω "ORDER BY" να επιλέγεις κάποιες γραμμές που θα έχουν και κάποια άλλα κριτήρια.
π.χ. να ισχύει:
col_1 = 12 και col_2 = 15

Λογικά γίνεται με WHERE αλλά πως; επειδή εγώ το γράφω όπως παρακάτω και μου το βγάζει λάθος.
$result = mysql_query("SELECT * FROM (SELECT * FROM my_table ORDER BY id desc LIMIT 0,36) t ORDER BY id desc WHERE col_1 = 12, col_2 = 15") or die(mysql_error());
$k1=0;
while ($row = mysql_fetch_array($result)) {
$array[$k1] = $row;
$k1++;
}
ευχαριστώ εκ των προτέρων για την όποια βοήθεια

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Δημοσίευση από alou » 03 Σεπ 2014 16:30

Τι νόημα έχει το subquery που κάνεις? (το δεύτερο select)

ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Δημοσίευση από ioannisls » 03 Σεπ 2014 16:32

θα σου το πω όσο ποιο απλά μπορώ. έχω π.χ. id από 1 έως 100 και θέλω τα 10 τελευταία αλλά σε αύξουσα. Σε αυτό με βοηθάει. Απλά όπως είναι τώρα γραμμένο απλά δεν υπάρχει λόγος, απλά είναι λόγο copy paste και μέσα σε δικό μου κώδικα. Και βασικά με ενδιαφέρει να είναι σε αύξουσα.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Δημοσίευση από alou » 03 Σεπ 2014 17:34

Για δες αυτό

Κώδικας: Επιλογή όλων

(SELECT * FROM my_table WHERE this_column = 76 AND other_column > 34 ORDER BY id DESC LIMIT 36) ORDER BY id ASC;
(η παρένθεση στην αρχή πρέπει να υπάρχει στο query, δηλαδή

Κώδικας: Επιλογή όλων

$query = "(SELECT * FROM my_table WHERE this_column = 76 AND other_column > 34 ORDER BY id DESC LIMIT 36) ORDER BY id ASC;";
mysql_query($query);
...

ioannisls
Δημοσιεύσεις: 83
Εγγραφή: 11 Ιαν 2012 15:50
Επικοινωνία:

Επιλεκτικό γέμισμα πολλών γραμμών βάσης σε array

Δημοσίευση από ioannisls » 03 Σεπ 2014 17:44

thanks. Οπότε εγώ έβαζα αλλού το where.
http://luckyweek.eu/
Στατιστικά για το στοιχηματικό ποδόσφαιρο και τα τυχερά παιχνίδια

Απάντηση

Επιστροφή στο “Βάσεις Δεδομένων και SQL - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες