αναζήτηση σε 2 Mysql results

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

αναζήτηση σε 2 Mysql results

Δημοσίευση από txc » 21 Ιουν 2010 20:11

καλησπέρα παιδιά
μια ερώτηση
έχω αυτό το query :

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


$query = "SELECT test1 from table1 where id= '1'";
	$result = mysql_query($query) or die('Error : ' . mysql_error());	
	
		while (list($test1) = mysql_fetch_array($result, MYSQL_NUM))
	{

$query2 = "SELECT name from table2 where code1 in ('$test1') order by name desc";
	$result2 = mysql_query($query2) or die('Error : ' . mysql_error());	
	while(list($name) = mysql_fetch_array($result2, MYSQL_NUM))
	{

echo $test
}
}
ουσιαστικά μου φέρνει κανονικά τα αποτελέσματα το query2 αλλά δεν μου τα φέρνει με το order by που του έχω βάλει σαν κριτήριο
αυτό γίνεται γιατί το πρώτο query επιστέφει πολλές τιμές και όταν αυτές τις τιμές τις χρησιμοποιώ στο in του δεύτερου query μου φέρνει τα αποτελέσματα με βάση τη σειρά των τιμών αυτών χωρίς να λαμβάνει υπόψι το order by
καμιά βοήθεια?

ευχαριστώ

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

αναζήτηση σε 2 Mysql results

Δημοσίευση από Banavas » 22 Ιουν 2010 09:00

Είναι λογικό η σειρά να δίνεται από τον πρώτο πίνακα στον οποίο δεν έχεις order. Στα επιμέρους αποτελέσματα που βρίσκονται στον πίνακα 2 τα αποτελέσματα θα πρέπει να είναι σορταρισμένα κατά name.

Βέβαια είναι και λίγο παράδοξο γιατί το πρώτο select κατά id =1 λογικά θα δώσει ένα αποτέλεσμα εφόσον το id είναι μοναδικό οπότε θα έπρεπε να πάρεις μια λίστα με σοτραρισμένα κατα name ονόματα από τον δεύτερο πίνακα.

Αν θέλεις να πάρεις ανακατεμένα αποτελέσματα του πρώτου με τον δεύτερο πίνακα θα πρέπει να τους συνενώσεις (JOIN) εφόσον αυτό είναι εφικτό από την δομή των δύο πινάκων.
Happy coding....
Μάρκος
http://lasernet.gr

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

αναζήτηση σε 2 Mysql results

Δημοσίευση από txc » 22 Ιουν 2010 11:53

βασικά η αλήθεια ότι μπερδεύτηκα λίγο

το πρώτο query βγάζει γύρω στα 10 αποτελέσματα για id=1 ( το id είναι μοναδικό κλειδί)
απλά δε μπορώ να κάνω sort by name στο πρώτο query γιατί δεν υπάρχει αυτή η πληροφορία στον πίνακα

τώρα για τον δεύτερο πίνακα ψάχνω με τα αποτελέσματα του πρώτου σε εγγραφές σορτάροντας by name

φαντάσου τη δομή του πίνακα

table1
id test1
1 1
1 2
1 3

table2
code1 name
1 ΚΩΣΤΑΣ
2 ΓΙΑΝΝΗΣ
3 ΓΙΩΡΓΟΣ

αυτή την ένωση θέλω να κάνω

και να επιστρέψω τις εγγραφές του table2 By name

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

αναζήτηση σε 2 Mysql results

Δημοσίευση από Banavas » 22 Ιουν 2010 13:17

Δοκίμασε αυτό

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

SELECT * FROM table1,table2 WHERE table1.test1=table2.code1 AND table1.id='1' ORDER BY table2.name
Happy coding....
Μάρκος
http://lasernet.gr

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

αναζήτηση σε 2 Mysql results

Δημοσίευση από txc » 22 Ιουν 2010 20:12

ευχαριστώ
work

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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