mythodea Δημοσ. 23 Ιουνίου 2009 Δημοσ. 23 Ιουνίου 2009 Καλησπέρα, έχω το παρακάτω sql ερώτημα το οποίο δυστυχώς δεν δουλεύει καθόλου. Το έχω κάνει debug με το zend οπότε η πιθανότητα συντακτικού λάθους (parse error) αποκλείεται. Αυτό που θέλω να κάνω με το εν λόγω ερώτημα είναι να εισαγάγω τιμές στην τελευταία εγγραφή ενός πίνακα μέσω του "SELECT MAX(id) FROM patient_info". Όταν δοκίμασα και έβγαλα αυτή την τελευταία εντολή το ερώτημα δούλεψε αμέσως. Τι φταίει λέτε; Και πώς αλλιώς μπορώ να εισαγάγω μια εγγραφή στο τέλος του πίνακα; Στον πίνακά μου υπάρχει ένα πεδίο με όνομα "id" και το χω ορίσει σε "auto_increment". > $res2 = mysql_query("INSERT INTO patient_info (name, surname, fathername, mothername, aicode, sex, birthdate, address, hometel, worktel, mobile, allergies, chronicdeseases, operations, gestation) VALUES ('".$_POST['name']."', '".$_POST['surname']."', '".$_POST['fathername']."', '".$_POST['mothername']."', '".$_POST['kaf']."', '".$_POST['sex']."', '".$_POST['date3']."', '".$_POST['address']."', '".$_POST['tel']."', '".$_POST['worktel']."', '".$_POST['mobile']."', '".$_POST['allergies']."', '".$_POST['chronicdeseases']."', '".$_POST['operations']."', '".$_POST['gestation']."') WHERE id = (SELECT MAX(id) FROM patient_info)");
Cue Δημοσ. 23 Ιουνίου 2009 Δημοσ. 23 Ιουνίου 2009 Τι σημαίνει "τελευταία εγγραφή"? Εφόσον έχεις ορίσει το "id" σε "auto_icrement" πάντα το insert θα γίνεται με το increment του "id". Του μέγιστου that is. Το WHERE id = (SELECT MAX(id) FROM patient_info) δεν χρειάζεται.
mythodea Δημοσ. 23 Ιουνίου 2009 Μέλος Δημοσ. 23 Ιουνίου 2009 Τι σημαίνει "τελευταία εγγραφή"?Εφόσον έχεις ορίσει το "id" σε "auto_icrement" πάντα το insert θα γίνεται με το increment του "id". Του μέγιστου that is. Το δεν χρειάζεται. Ναι, δεν ημουν αρκετά σαφής! Αυτό που θέω να κάνω στην ουσία είναι να ενημερώσω κάποια από τα πεδία που ανήκουν στην τελευταία εγγραφή κι όχι να προσθέσω εξ ολοκλήρου μια νέα εγγραφή στο τέλος του πίνακα!
vassilisred Δημοσ. 23 Ιουνίου 2009 Δημοσ. 23 Ιουνίου 2009 Αρα, αυτο που θέλεις είναι να κάνεις UPDATE μια εγγραφή και όχι INSERT, σωστά ?
mythodea Δημοσ. 23 Ιουνίου 2009 Μέλος Δημοσ. 23 Ιουνίου 2009 Αρα, αυτο που θέλεις είναι να κάνεις UPDATE μια εγγραφή και όχι INSERT, σωστά ? Ναι, αλλά στην εγγραφή εκείνη του πίνακα με το μεγαλύτερο id...Πάντως έχω την εντύπωση ότι και με την insert θα έπρεπε να δούλευε...τί μου προτείνεις? Πώς θα έπρεπε να συντάξω το sql ερώτημά μου?
sotirakis.net Δημοσ. 24 Ιουνίου 2009 Δημοσ. 24 Ιουνίου 2009 Γενικά μιλώντας, θέλεις να κάνεις κάτι τέτοιο : UPDATE patient_info SET <ότι θες να θέσεις εδώ> WHERE id = (SELECT MAX(id) AS LargestId FROM patient_info); Διορθώστε με όσοι το κατέχετε καλύτερα το άθλημα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.