Update database στο τελευταίο id που έχει εισαχθεί (php)

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

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

Απάντηση
Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 21 Φεβ 2013 21:46

Για σας!!!

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

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

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από ideal » 21 Φεβ 2013 22:21

Δωσε μας λιγο κωδικα αν θελεις να δουμε.
Εγω μπερδευτηκα λιγο να σου πω την αληθεια. Θελεις να κανεις update το τελευταιο στοιχειο σε καποιο πινακα;
Εφοσον βρισκεις το τελευταιο id γιατι δεν κανεις απλως update το τελευταιο στοιχειο οπως το λες; ποια ειναι η συσχετιση με τα προηγουμε ids; Εσυ το τελευταιο δε θελεις να κανεις update; Κατι χανω;
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 22 Φεβ 2013 19:37

Ευχαριστώ για την ανταπόκριση σου...

Ναι έτσι όπως το λές. Θέλω να κάνω το τελευταίο στοιχείο update Κάθε φορά που εισάγετε το τελευταίο στοιχείο. Βρίσκω το τελευταίο id αλλά δεν γίνεται update.

H συσχέτιση με τα προηγούμενα ids είναι ότι αυτά αν τα κάνω update γίνονται κανονικά μόνο το τελευταίο δεν γίνεται. ( ο κώδικας είναι σωστός αλλά δεν το πέρνει για το τελευταίο id )

Σε λίγο θα βάλω και κώδικα

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από ideal » 22 Φεβ 2013 20:54

Elias87 έγραψε:Θέλω να κάνω το τελευταίο στοιχείο update Κάθε φορά που εισάγετε το τελευταίο στοιχείο.
Μηπως προσπαθεις αντι να εισαγεις το στοιχειο να το κανεις κατευθειαν update? Αν δεν υπαρχει το στοιχειο δε μπορεις να το κανεις update... Update γινεται μονο σε στοιχεια που υπαρχουν ηδη.
Μαλλον βλακεια ειπα... δωσε τον απαραιτητο κωδικα να καταλαβουμε.
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car


Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 23 Φεβ 2013 16:52

sorry για την καθηστέρηση. Ο κώδικας είναι αυτός

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

$r = mysql_query("SHOW TABLE STATUS LIKE 'my_table' ");
$row = mysql_fetch_array($r);
$Auto_increment = $row['Auto_increment'];
mysql_free_result($r);

αυτό εδώ δεν ξέρω αν είναι σωστό ( θέλω να ελέγχει αν υπάρχει το id και μετά να κάνει update αλλά απο ότι κατάλαβα ισχύει η if αλλά δεν κάνει update στο συγκεκριμένο id )

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


if("SELECT id FROM my_table WHERE id =".$Auto_increment."")
{
mysql_query("UPDATE my_table  SET file_title='κείμενο'"'  
WHERE virtuemart_media_id=".$Auto_increment."");
}

Apostolis_38 τα στοιχεία αποθηκέυονται αυτόματα απο μια φόρμα. δεν τα κάνω εγώ insert

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Apostolis_38 » 23 Φεβ 2013 20:16

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

Στο θέμα, δεν βλέπω που διαλέγεις το

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

 WHERE id =".$Auto_increment."
To

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

SHOW TABLE STATUS LIKE 'my_table' 
παίρνει πληροφορίες για τον πίνακα.
Δεν επιστρέφει εγγραφές.

Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 23 Φεβ 2013 21:02

Apostolis_38 έγραψε:Τι εννοείς;
Τα στοιχεία δεν μαζεύονται κάπου μετά τη φόρμα (είτε στο ίδιο αρχείο είτε σε άλλο) και μετά με ενα insert περνιούνται στη βάση;
Πως αλλιώς μπορούν να καταχωρηθούν εγγραφές;
με insert περνιούνται(όχι κώδικα γραμένο απο εμένα) και το στοιχείο που θέλω (ένα link εικόνας) το μαζεύο εγω και πέρνω το basename Που χρειάζομε.
Apostolis_38 έγραψε:
Στο θέμα, δεν βλέπω που διαλέγεις το

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

 WHERE id =".$Auto_increment."
To

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

SHOW TABLE STATUS LIKE 'my_table' 
παίρνει πληροφορίες για τον πίνακα.
Δεν επιστρέφει εγγραφές.
θέλω να το διαλέξω το link εκεί που είναι το τελευταίο id του πίνακα κάθε φορά που εισάγετε νέα γραμή. ο κώδικας ο πάνω βρίσκει το auto increment την τελευταία γραμή του πινακα που θα εισαχθεί. αλλά αυτό που σκέφτομε ότι κάτι πάει λάθος με τον κώδικα if("SELECT id FROM my_table WHERE id =".$Auto_increment."") ή ότι κάνει τον έλεγχο πρίν να εισαγχθει το τελευταίο id ...

αυτό που ζητάω δηλαδή είναι να μπορώ με κάποιο τρόπο να ελέχω όταν εισαχθέι ένα id καινούριο να εκτελώ τις εντόλές που χριάζομαι.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Apostolis_38 » 23 Φεβ 2013 21:21

Αυτή τη στιγμή δεν μπορώ να τσεκάρω την εντολή αλλά μου φαίνεται λίγο περίεργο να σου επιστρέφει κάποια τιμή.
Υπάρχει και κάποια εντολή που σου δείχνει την επόμενη τιμή που θα πάρει ένα auto_increment field.
Δυστυχώς δεν την θυμάμαι αλλά αν ψάξεις εδω μέσα, κάποιες σελίδες πίσω, θα την βρείς.

Κατά τη γνώμη μου το καλύτερο που έχεις να κάνεις είναι, αμέσως μετά το insert να τρέξεις ένα

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

"SELECT id FROM πίνακας WHERE id = ' ". mysql_insert_id()." ' ";
και μετά να κάνεις ότι είναι να κάνεις σύμφωνα με την εγγραφή που θα σου επιστρέψει.

Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 23 Φεβ 2013 21:27

Apostolis_38 έγραψε:Αυτή τη στιγμή δεν μπορώ να τσεκάρω την εντολή αλλά μου φαίνεται λίγο περίεργο να σου επιστρέφει κάποια τιμή.
Υπάρχει και κάποια εντολή που σου δείχνει την επόμενη τιμή που θα πάρει ένα auto_increment field.
Δυστυχώς δεν την θυμάμαι αλλά αν ψάξεις εδω μέσα, κάποιες σελίδες πίσω, θα την βρείς.

Κατά τη γνώμη μου το καλύτερο που έχεις να κάνεις είναι, αμέσως μετά το insert να τρέξεις ένα

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

"SELECT id FROM πίνακας WHERE id = ' ". mysql_insert_id()." ' ";
και μετά να κάνεις ότι είναι να κάνεις σύμφωνα με την εγγραφή που θα σου επιστρέψει.
OK ευχαριστώ !!! θα το δοκιμάσω και θα σου πώ τα αποτελέσματα .

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Apostolis_38 » 23 Φεβ 2013 21:48

Σόρρυ,

SELECT * FROM...

είναι ίσως το "σωστό", ώστε να πάρεις οποιοδήποτε field χρειάζεσαι.

Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 24 Φεβ 2013 19:34

Δεν δουλεύει σωστά. Ο κώδικας σωστός είναι αλλά ο τρόπος που το έχω δεν είναι σωστός. Πρέπει να αλλάξω τον τρόπο.

ξέρω πως είναι σε λάθος τόπο που θα ρωτήσω αλλά μήπως Γνωρίζετε να μου προτείνετε κανένα καλό πρόγραμα να φτιάχνει φόρμες και να αποθηκέυει σε database??
Σε Joomla δουλεύω...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Apostolis_38 » 25 Φεβ 2013 09:46

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

Για πρόγραμμα δεν γνωρίζω.

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από jpk » 25 Φεβ 2013 18:24

Αγαπητέ Elias , χρησιμοποιείς κάτι που δεν το γνωρίζεις τι κάνει όπως λες , και δεν είναι κακό αυτό (λίγο πολύ , πέρα από την θεωρία , έτσι μάθαμε όλοι ακόμα και σε πιο πρωτόγονες γλώσσες) αρκεί να έχεις διάθεση να το ψάξεις και να βρεις τι κάνει.

Αναρωτιέσαι για πρόγραμμα που παράγει αυτόματα φόρμες. Υπάρχουν τα WYSIWIG που κάνουν αυτή την δουλειά , όχι «αυτόματα» φυσικά. Αν έχω καταλάβει καλά και το framework του kor σε αυτή την λογική κινείται. Αλλά και στις δύο αυτές λύσεις κάποια ελάχιστη γνώση προγραμματισμού θα πρέπει να έχεις. Αλλιώς ψάξε από τα άπειρα ετοιματζίδικα που κυκλοφορούν , (προσάρμοσε τις απαιτήσεις φυσικά σε αυτό που θα διαλέξεις) υπάρχουν πολλές καλές βάσεις για αυτά όπως το hotscripts.com ή το gscripts.net και πολλά - πολλά άλλα.

Elias87
Δημοσιεύσεις: 7
Εγγραφή: 21 Φεβ 2013 20:47

Update database στο τελευταίο id που έχει εισαχθεί (php)

Δημοσίευση από Elias87 » 03 Μαρ 2013 19:25

Ευχαριστώ για τις απαντήσεις σας. μια ερώτηση ακόμη.

Με triggers στην sql θα μπορούσα να κάνω update το τελευταίο id που έχει εισαχθεί? (After Insert??)

Απάντηση

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

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

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