varemarious Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Καλημέρα πως μπορώ να πραγματοποιήσω το παρακάτω : Θέλω μέσα στη βάση μου να έχω 2 διαφορετικά tables και στο 1 να περιέχει 3 αριθμούς και στο άλλο 5 αριθμούς.. θέλω τώρα να φτιάξω ένα login όπου όταν γράφω το σύνολο των 3 αριθμών και των 5 να μου εμφανίζεται η εγγραφή που αντιστοιχεί στο κωδικό... Τη βάση την έχω δημιουργήσει με τα πρωτεύον κλειδιά με τα πεδία που συνδέουν μεταξύ τους τα tables.. στην πράξη κολλάω λίγο.. Τρέχω το παρακάτω αλλά δε μου τρέχει σωστά: > <?php mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); mysql_query("SET NAMES 'utf8'"); $query = "SELECT table1.kwdikos, table2.kwdikos, table1.onoma, table1.epwnymo FROM table1, table2 INNER JOIN table1 ON table1.id_same = table2.same_id WHERE table1.kwdikos, table2.kwdikos ='$Code'"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); ?> $Code το textbox που θα γράφω το κωδικό μου για να κάνω τον έλεγχο..
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Γιατί έχεις 2 πίνακες κι όχι εναν? Με τα 2 πεδία concatenated?
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 δεν σε καταλαβαίνω ; ο άλλος πίνακας έχει κι άλλα στοιχεία απλά δε μου χρειάζονται στο login
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Ααα τώρα κατάλαβα. Και θες να παίρνεις τα 3 από τον ένα πίνακα, τα 5 από τον άλλο να τα ενώνεις και με βάση αυτό το κλειδί να σου βγάζει την εγγραφή με αυτό το ID?
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 ναι σωστά .. θα περιέχει κι άλλα στοιχεία ο πίνακας αλλά εμένα με ενδιαφέρει να μου εμφανίσει την εγγραφή σε συνδυασμό αυτών των 2 πεδίων..που θα γίνεται στο login..
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Ε τότε θα πάρεις το 3 πρώτα και τα 5 δεύτερα, θα κάνεις ένα concatenated κλειδί με αυτά τα 2 και με βάση αυτό θα κάνεις το select σου από τον πίνακα που έχεις τις εγγραφές.
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 μπορείς να μου το συντάξεις καθώς δεν το έχω ξαναχρησιμοποιήσει το concatenated...
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Αυτό: >SELECT CONCAT(table1.kwdikos,table2.kwdikos) FROM table1, table2
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 στη βάση μου έτρεξε σωστά το ερώτημα.. τώρα όμως πως θα συνδέσω αυτό με τα άλλα πεδία που θέλω να εμφανίσω όταν δίνεται αυτό στο login onoma , epwnymo , address κτλ
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Γράψε: >DECLARE @Var BIGINT SET @Var = SELECT CONCAT(table1.kwdikos,table2.kwdikos) FROM table1, table2 SELECT table1.onoma, table1.epwnymo FROM table1, table2 INNER JOIN table1 ON table1.id_same = table2.same_id WHERE @Var ='$Code'" Αν και δεν είμαι σίγουρος ότι θα παίξει. Μπορείς στο ένα από τους 2 πίνακες να βάλεις μια extra στήλη στην οποία θα έχεις το concatenated κλειδί, γιατί τώρα μπορείς να το πάρεις αλλά δεν το σώζεις κάπου για να κάνεις τα select σου.
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 ξεχωριστά τα 2 query παίζουν αν τα συντάξω όπως μου έχεις πει δεν παίζουν. τα έβαλα και στο php αρχείο αλλά δε μου φέρνει αποτελέσματα.. πως θα το σώσω στην τρίτη στήλη που θα δημιουργήσουμε..
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Για δοκίμασε αυτό: >SELECT CONCAT(table1.kwdikos,table2.kwdikos) INTO new FROM table1,table2 Αυτό δημιουργεί τον πίνακα new και βάζει μέσα τα concatenated values. Για δες και πες. Βασικά σε MySQL έχει άλλη σύνταξη η select into : >CREATE TABLE new SELECT CONCAT(table1.kwdikos,table2.kwdikos) FROM table1,table2
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 το Create δούλεψε .. το θέμα όμως είναι ότι απ' ότι καταλαβαίνω όταν θα ανανεώνω τα δεδομένα μου στη βάση θα πρέπει να δημιουργώ κάθε φορά ένα new table με το συνδυασμό των νέων κωδικών.. δεν θα γίνεται αυτόματα η διαδικασία αυτή.. δηλαδή να τραβάει και από τα 2 πεδία αυτόματα ..
Tmark Δημοσ. 11 Μαρτίου 2011 Δημοσ. 11 Μαρτίου 2011 Θα φτιάξεις ενα stored procedure το οποίο θα το κάνει αυτόματα. Και όταν βάζεις νέα δεδομένα απλα θα πηγαίνεις να το τρέχεις μια φορά για να γίνεται το update.
varemarious Δημοσ. 11 Μαρτίου 2011 Μέλος Δημοσ. 11 Μαρτίου 2011 δεν γίνεται να μου φτιάχνει ένα νέο κελί μέσα στο ήδη υπάρχων table ή να σβήνει τα υπάρχοντα δεδομένα και να τα ξαναγράφει ;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.