Έλεγχος κατά την εγγραφή...

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

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

Απάντηση
rafinos
Δημοσιεύσεις: 306
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Έλεγχος κατά την εγγραφή...

Δημοσίευση από rafinos » 24 Οκτ 2011 17:29

Γεια σας έχω του παρακάτω πίνακες

Εικόνα

Στον πίνακα person_author θα μπορεί να προσθέσει όποιος χρήστης θέλει εγγραφές ενώ στον πίνακα user_data μπαίνουν στοιχεία μόνο κατά την εγγραφή...
Επίσης κατά την εγγραφή στο σύστημα θα γίνονται εγγραφές και στα αντίστοιχα πεδία του person_author αλλά επειδή το όνομα κάποιου μπορεί να υπάρχει ήδη (εφόσον μπορεί κάποιος άλλος χρήστης να έχει περάσει αυτό το όνομα) μπορεί να γίνεται κάποιος έλεγχος και αν τα πεδία του person_author έχουν ίδιες τιμές με αυτές που έβαλε ο μελλοντικός χρήστης στη φόρμα εγγραφής;;;


***Για παράδειγμα αν υπάρχει μια εγγραφή στον πίνακα person_author με τιμές
"name= ΓΙΑΝΝΗΣ"
"surname= ΠΑΠΑΔΟΠΟΥΛΟΣ"
"fathers_name=ΓΙΩΡΓΟΣ"
και ο χρήστης στη φόρμα εγγραφής βάλει σαν "όνομα", "επώνυμο" και "όνομα πατρός" τα ίδια με τα παραπάνω να μην γίνεται εγγραφή απλά να δημιουργείται η σχέση με το id του person_author και το person_id του user_data


Γίνεται αυτό;;;;;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6236
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος κατά την εγγραφή...

Δημοσίευση από fafos » 24 Οκτ 2011 17:51

Giannhdes Papadopouloi tou Georgiou yparxoun 1000+ atoma... den mporeis na trexeis tetoia synthikh giati mono o protos tha einai o tyxeros kai oi ypoloipoi 999 tha trone porta.. thes kapoio allo monadiko stoixeio (p.x. AFM) gia na apodeixeis thn monadikothta tou melous..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Kypros Lambrou
Δημοσιεύσεις: 96
Εγγραφή: 17 Οκτ 2011 13:29

Έλεγχος κατά την εγγραφή...

Δημοσίευση από Kypros Lambrou » 24 Οκτ 2011 17:54

Φίλε αυτό που θέλεις γίνεται σχετικά εύκολα με μερικούς ελέγχους κατά την εγγραφή. Αυτό που δεν μου βγαίνει από την εξήγηση σου είναι η λογική αυτού που θέλεις να πετύχεις.

Αν κατάλαβα καλά εγώ σαν χρήστης κατα την εγγραφή μου θα μπαίνω στο "user_data" και αν θέλω θα μπορώ να "γίνομαι" και author βάζοντας τα τρία στοιχεία που απαιτούνται και θα αποθηκεύονται στο "person_author". Αν έχω καταλάβει λάθος και μπορείς να εξηγήσεις καλύτερα τι εννοείς θα ήταν καλά αλλιώς πες μου για να σου εξηγήσω ακριβώς τι δεν μου αρέσει στην λογική.

Όπως είπε και ο fafos δεν είναι όλα τόσο ρόδινα και εγώ όπως το βλέπω με την λογική που θες οι άλλοι 999 δεν τρώνε ακριβώς πόρτα αλλά κατευθείαν γίνονται κάτι σαν κλώνοι του πρώτου τυχερού...

rafinos
Δημοσιεύσεις: 306
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Έλεγχος κατά την εγγραφή...

Δημοσίευση από rafinos » 24 Οκτ 2011 17:56

Δεν μιλάω για κάτι το οποίο θα είναι τόσο διαδεδομένο ώστε να υπάρχουν τόσοι γιάννηδες... αλλά στην συγκεκριμένη περίπτωση δεν θα μπορεί να κάνει και δεύτερο έλεγχο μήπως υπάρχει κάποιος που έχει την ίδια id στο person_id(του user_data) και στο id(του person_author);;;;;;;;;

Το "_author" το έχω γιατί στην βάση θα υπάρχουν και δημοσιεύσεις άρθρων κτλ και ο καθηγητής θέλει να υπάρχουν μόνο μια φορά τα ονόματα στη βάση... και μετά από συζήτηση μαζί του καταλήξαμε στο ότι θα πρέπει να γίνεται αυτό που έχω κάνει...

Πιο γενικά στη βάση θα καταχωρούνται βιογραφικά ακαδημαϊκών... θέλετε σας δείξω τους πίνακες όλης της βάσης να καταλάβεται τι παίζει;;;;;;

Kypros Lambrou
Δημοσιεύσεις: 96
Εγγραφή: 17 Οκτ 2011 13:29

Έλεγχος κατά την εγγραφή...

Δημοσίευση από Kypros Lambrou » 24 Οκτ 2011 18:03

rafinos έγραψε:Δεν μιλάω για κάτι το οποίο θα είναι τόσο διαδεδομένο ώστε να υπάρχουν τόσοι γιάννηδες... αλλά στην συγκεκριμένη περίπτωση δεν θα μπορεί να κάνει και δεύτερο έλεγχο μήπως υπάρχει κάποιος που έχει την ίδια id στο person_id(του user_data) και στο id(του person_author);;;;;;;;;

Το "_author" το έχω γιατί στην βάση θα υπάρχουν και δημοσιεύσεις άρθρων κτλ και ο καθηγητής θέλει να υπάρχουν μόνο μια φορά τα ονόματα στη βάση... και μετά από συζήτηση μαζί του καταλήξαμε στο ότι θα πρέπει να γίνεται αυτό που έχω κάνει...

Πιο γενικά στη βάση θα καταχωρούνται βιογραφικά ακαδημαϊκών... θέλετε σας δείξω τους πίνακες όλης της βάσης να καταλάβεται τι παίζει;;;;;;
Και 2 αντί 1000 να υπάρχουν τότε έχεις πρόβλημα. Αν δεν χρειάζεσαι πολλούς authors ανα user τότε γιατί δεν προσθέτεις απλά το όνομα, επίθετο και όνομα πατρός στον πίνακα user_data και να συμπληρώνονται μόνο όταν ο χρήστης θέλει να γίνει author?

rafinos
Δημοσιεύσεις: 306
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Έλεγχος κατά την εγγραφή...

Δημοσίευση από rafinos » 24 Οκτ 2011 18:18

Θέλω ένας χρήστης να είναι απευθείας και συγγραφέας είτε θα χρησιμοποιηθεί ως συγγραφές είτε όχι και δεν θέλω διπλότυπα..... και επίσης αν υπάρχει 2 φορές το ίδιο όνομα, επώνυμο και πατρώνυμο τώρα που το σκέφτομαι τι πειράζει;;; Αφού ίδιο όνομα έχουν έτσι και αλλιώς.... ημερομηνίες γέννησης κτλ θα είναι διαφορετικά έτσι δεν είναι;;;

Και θέλω ο κάθε χρήστης να μπορεί να προσθέτει όποιο όνομα θέλει στους συγγραφείς (ο καθένας όσα θέλει....) και όλοι να βλέπουν αυτά τα ονόματα αλλά να υπάρχει το κάθε όνομα μόνο μια φορά!

Kypros Lambrou
Δημοσιεύσεις: 96
Εγγραφή: 17 Οκτ 2011 13:29

Έλεγχος κατά την εγγραφή...

Δημοσίευση από Kypros Lambrou » 24 Οκτ 2011 18:31

Μα βασικά αφού οι συγγραφείς έχουν σχέση με τους χρήστες δεν έχεις διπλότυπα αλλά απλή συνωνυμία, αφού το id δύο ακριβώς συνονόματων συγγραφέων θα διαφέρει όπως ακριβώς μπορείς να ξεχωρίσεις δύο συνονόματους ανθρώπους στην καθημερινότητα μέσω του αριθμού ταυτότητας τους.
Και θέλω ο κάθε χρήστης να μπορεί να προσθέτει όποιο όνομα θέλει στους συγγραφείς (ο καθένας όσα θέλει....) και όλοι να βλέπουν αυτά τα ονόματα αλλά να υπάρχει το κάθε όνομα μόνο μια φορά!
Δηλαδή αυτό που θέλεις είναι ένας χρήστης να μπορεί να έχει συνδεδεμένους στο προφίλ του πολλαπλούς συγγραφείς?

rafinos
Δημοσιεύσεις: 306
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Έλεγχος κατά την εγγραφή...

Δημοσίευση από rafinos » 24 Οκτ 2011 19:57

Όχι θα υπάρχουν μόνο χρήστες που θα μπορούν να προσθέτουν συγγραφείς ή να επιλέξουν κάποιους από τους ήδη υπάρχοντες....
όπως για παράδειγμα είπα με "ΓΙΑΝΝΗ ΠΑΠΑΔΟΠΟΥΛΟ" αν κάποιος έχει κάνει μια δημοσιεύση ενός άρθρου και τον λένε ΓΙΑΝΝΗ ΠΑΠΑΔΟΠΟΥΛΟ θα επιλέξει το όνομά του και ένας άλλος που έκανε μια δημοσίευση σε συνεργασία με κάποιον άλλο "ΓΙΑΝΝΗ ΠΑΠΑΔΟΠΟΥΛΟ" και οι δύο θα επιλέξουν το ίδιο όνομα αφού δεν χρειάζονται περαιτέρω στοιχεία για τον γιάννη παπαδόπουλο.... και έτσι και αλλιώς αν κάποιον τον λένε Γιάννη Παπαδόπουλο του Γεωργίου όπως είπα πιο πάνω και έχει ακόμα διακόσους γλυτώνω (200x3)-(200) κελιά αφού θα έχουν όλοι το ίδιο person_id...


το κακό είναι ότι και από τη δικιά σας μεριά και από τη δική μου σωστό μου φαίνεται :P
axaxaxaxa :D

εγώ αλλού ήθελα να καταλήξω από την αρχή του thread πάντως... πως θα μπορούσα να κάνω αυτό που σκέφτηκα ήθελα να μου πει κάποιος γιατί δεν πολυξέρω της συναρτήσεις sql στην php (γνωρίζω μόνο τα βασικά php δεν μας έμαθαν συνδυασμό τον δύο στο ΤΕΙ).... :P

Kypros Lambrou
Δημοσιεύσεις: 96
Εγγραφή: 17 Οκτ 2011 13:29

Έλεγχος κατά την εγγραφή...

Δημοσίευση από Kypros Lambrou » 24 Οκτ 2011 20:36

Τώρα κατάλαβα τι εννοείς.

Άρα όταν θα κάνω δημοσίευση ενός άρθρου θα έχω μια επιλογή για να επιλέξω όνομα, επίθετο και όνομα πατρός για τον συγγραφέα του εν λόγω άρθρου. Εσύ θα πρέπει να βάλεις στην php κώδικα που να ελέγχει αν ο συγκεκριμένος συνδυασμός των τριών υπάρχει αλλιώς να δημιουργείται!!

Φαντάζομαι ότι χρησιμοποιείς MySql για την βάση δεδομένων άρα ο κώδικας που χρειάζεσαι θα είναι κάπως έτσι αφού πρώτα έχεις συνδεθεί με την βάση δεδομένων σου:

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

$author_query = mysql_query("SELECT id FROM person_author WHERE 
                                              name = '$auth_name' AND
                                              surname = '$auth_sname' AND
                                              fathers_name = '$auth_fname' LIMIT 1");

if(mysql_num_rows($author_query) == 1)
{
      // o author iparxei idi
      $author = mysql_fetch_array($author_query);
      $author_name = $author['name'];
      // update the article's author id
} 
else
{
      mysql_query("INSERT INTO person_author VALUES (NULL , '$auth_name', $auth_sname' , '$auth_fname') ");
      // update the article's author id
}

Το '$auth_name', $auth_sname' , '$auth_fname' θα είναι μεταβλητές που θα παίρνεις πιθανότατα από την φόρμα εισαγωγής άρθρου ή δημιουργίας συγγραφέα και λογικά θα ελέγχεις για συμβατότητα και ασφάλεια προτού τα περάσεις στην βάση δεδομένων.

Το id στο person_author αφού αντιπροσωπεύει κάποιο συνδυασμό ονόματος συγγραφέα δεν χρειάζεται να το έχεις να σχετίζεται με το person_id στο user_data αλλά μάλλον στον πίνακα με τα άρθρα σου θα έχεις κάποιο author_id το οποίο θα αντιπροσωπεύει τον συγγραφέα.

Ως εδώ συμφωνούμε? (δεν είναι σε καμία περίπτωση τελειωμένος κώδικας αλλά η αρχή της λογικής που θα πρέπει να ακολουθήσεις)

rafinos
Δημοσιεύσεις: 306
Εγγραφή: 15 Μάιος 2011 00:20
Επικοινωνία:

Έλεγχος κατά την εγγραφή...

Δημοσίευση από rafinos » 24 Οκτ 2011 20:53

Φίλε μου το σκεπτικό σου είναι πολύ κοντά στο δικό μου και σε ευχαριστώ πολύ για το χρόνο που σπατάλησες για τις απορίες μου :)

Ο κώδικας που έγραψες πιστεύω ότι θα με βοηθήσει αρκετά στο πώς να ξεκινήσω!
Το κακό στην όλη υπόθεση είναι ότι ακόμα έχω κάνει μόνο τη βάση και εδώ και λίγο καιρό δεν ασχολούμαι καθόλου με την υλοποίηση της εφαρμογής (δεν έχω ξεκινήσει καν) και αυτό οφείλεται στο ότι έχω αρχίσει πρακτική και είμαι ακόμα σε στάδιο προσαρμογής κτλ....

Σίγουρα θα επανέλθω με νέες απορίες απλά αυτό μάλλον θα αργήσει κάπως (ίσως πάρα πολύ) απλά μόλις σκεφτομαι κάτι σχετικά με αυτό ρωτάω να δω αν τουλάχιστον έχει κάποια βάση αυτό που σκέφτομαι και αν είναι υλοποιήσιμο!!!!!

Ευχαριστώ ξανά!!!!

Απάντηση

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

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

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