Προς το περιεχόμενο

Πρόβλημα με "insert"


mythodea

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, έχω το παρακάτω 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)");

Δημοσ.

Τι σημαίνει "τελευταία εγγραφή"?

Εφόσον έχεις ορίσει το "id" σε "auto_icrement" πάντα το insert θα γίνεται με το increment του "id". Του μέγιστου that is.

 

Το

WHERE id = (SELECT MAX(id) FROM patient_info)
δεν χρειάζεται.
Δημοσ.
Τι σημαίνει "τελευταία εγγραφή"?

Εφόσον έχεις ορίσει το "id" σε "auto_icrement" πάντα το insert θα γίνεται με το increment του "id". Του μέγιστου that is.

 

Το δεν χρειάζεται.

 

Ναι, δεν ημουν αρκετά σαφής! Αυτό που θέω να κάνω στην ουσία είναι να ενημερώσω κάποια από τα πεδία που ανήκουν στην τελευταία εγγραφή κι όχι να προσθέσω εξ ολοκλήρου μια νέα εγγραφή στο τέλος του πίνακα!

Δημοσ.
Αρα, αυτο που θέλεις είναι να κάνεις UPDATE μια εγγραφή και όχι INSERT, σωστά ?

 

Ναι, αλλά στην εγγραφή εκείνη του πίνακα με το μεγαλύτερο id...Πάντως έχω την εντύπωση ότι και με την insert θα έπρεπε να δούλευε...τί μου προτείνεις? Πώς θα έπρεπε να συντάξω το sql ερώτημά μου?

Δημοσ.

Γενικά μιλώντας, θέλεις να κάνεις κάτι τέτοιο :

 

UPDATE patient_info SET <ότι θες να θέσεις εδώ> WHERE id = (SELECT MAX(id) AS LargestId FROM patient_info);

 

Διορθώστε με όσοι το κατέχετε καλύτερα το άθλημα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...