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

Mysql Delete


sifalio

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

Δημοσ.

query=mysql_query("DELETE FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");

 

χρησιμοποιω αυτο το query αλλα δεν μου δουλευει...μηπως το γραφω λαθος?

δυο μερες το ψαχνω αλλα και στο google βλεπω οτι ετσι συντασεται.

 

θελω απλως να διαγραφω μια εγγραφη απο τον πινακα.

  • Απαντ. 61
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

καταρχάς έχει ξεχάσεις το δολλάριο ($) μπροστά από την μεταβλητή query

 

Τρέξε το παρακάτω

>
mysql_query("DELETE FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");

 

και πες μας ΤΙ error σου βγάζει...

Δημοσ.

μου ξεφυγε στο copy....το προβλημα που κανει ειναι οτι δεν διαγραφει με δυο συνθηκες στο where. αν αφησω μονο την μια συνθηκη διαγραφει ολες τις εγγραφες..ενω εγς 8ελω να διαγραφει μονο μια συγκεκριμενη.

Δημοσ.

Ποτέ δεν έχω δοκιμάσει το DELETE με 2 συνθήκες για τον λόγο ότι ΠΑΝΤΑ έχω ένα κλειδί στον πίνακα μου για τον λόγο ότι ΚΑΘΕ εγγραφή είναι ΜΟΝΑΔΙΚΗ..

 

Εσύ δεν έχεις κάποιο πεδίο στην βάση σου που να είναι primary key και έτσι η κάθε εγγραφή να είναι μοναδική έστω σε ένα πεδίο?

Δημοσ.

CREATE TABLE `laboratory_section` (

`id_section` INT NOT NULL,

`id_lesson` INT NOT NULL,

`id_school` INT NOT NULL,

`number_of_team` VARCHAR(5) NOT NULL,

`start_time` TIME NOT NULL,

`end_time` TIME NOT NULL,

`classroom` VARCHAR(20) NOT NULL,

`day` VARCHAR(10) NOT NULL,

`start_time2` TIME NOT NULL,

`end_time2` TIME NOT NULL,

`classroom2` VARCHAR(20) NOT NULL,

`day2` VARCHAR(10) NOT NULL,

PRIMARY KEY (`number_of_team`,`start_time`,`classroom`,`day`,`id_lesson`),

FOREIGN KEY (`id_section`) REFERENCES `section` (`id_section`),

FOREIGN KEY (`id_school`) REFERENCES `school` (`id_school`)

)

CHARACTER SET utf8 COLLATE utf8_general_ci;

 

αυτος ειναι ο πινακας ..καποια πεδια υπαρχουν και σε αλλους..εχω συνολικα 6 πινακες.

Δημοσ.

Κοίτα τι θα κάνεις για την επόμενη φορά...

 

Θα φτιάχνεις ένα πεδίο π.χ. στο δικό σου παράδειγμα ls_id το οποίο θα είναι primary key και auto incremenet.

 

Το οποίο θα δεις ότι χρησιμεύει σε πολλά πράγματα..

Ένα από αυτά και το πιο βασικό είναι ότι η κάθε εγρραφή στην βάση σου είναι και ΜΟΝΑΔΙΚΗ.

 

Και έτσι όταν θα πας να κάνεις π.χ. delete ή edit μία εγγραφή θα ξέρεις ποια εγγραφή είναι από το ΜΟΝΑΔΙΚΟ της id

 

Τώρα θα πας στην βάση σου και θα δημιουργήσεις αυτό το πεδίο και αυτόματα (λογικά) θα πάρει τιμές ξεκινώντας από το 1

 

Κάντο αυτό και πες μας

Δημοσ.

η πτυχιακη μου ειναι σεδον ετοιμη και ειναι αυτο το μοναδικο μου προβλημα..δεν μπορω να ξανασβησω τον πινακα και να αλλαξω κατι γιατι μπορει να επηρεασει τιποτα και μετα να χαθω. την αλλη ευδομαδα παρουσιαζω την πτυχιακη..

μπορω να κανω τιποτα αλλο για να δουλεψει το delete????

Δημοσ.

Δεν σου είπα να σβήσεις τίποτα....

 

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

 

Στο backup πίνακα που έφταιξες θα πας στην δομή του και θα δημιουργήσεις ένα ακόμα πεδίο που θα είναι primary key Και auto increment και μετά θα πρέπει όλες οι εγγραφές σου να πάρουν τιμές ξεκινώντας από το 1 σε αυτό το πεδίο

Δημοσ.
query=mysql_query("DELETE FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");

 

χρησιμοποιω αυτο το query αλλα δεν μου δουλευει...μηπως το γραφω λαθος?

δυο μερες το ψαχνω αλλα και στο google βλεπω οτι ετσι συντασεται.

 

θελω απλως να διαγραφω μια εγγραφη απο τον πινακα.

Sifalio υπάρχει κάτι να σβήσει; Δηλαδή αν εκτελέσεις το παρακάτω έχεις επιστροφή;

>query2=mysql_query("SELECT * FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");

 

Εξέτασες αυτή την εκδοχή;

Δημοσ.

το βαζω και αυτο πριν το delete αλλα δεν δουλεβει...

 

---------- Προσθήκη στις 15:17 ---------- Προηγούμενο μήνυμα στις 15:12 ----------

 

αυτο κανω..αλλα δεν δουλευει

 

$query2=mysql_query("SELECT * FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");

$query=mysql_query("DELETE FROM laboratory_section WHERE id_lesson='$lesson");

 

echo "Η Διαγραφή Ολοκληρώθηκε";

Δημοσ.
το βαζω και αυτο πριν το delete αλλα δεν δουλεβει..

Μπρε κρητικέ συγκεντρώσου. Δε σου είπα να το βάλεις πριν το delete. Στο έδωσα για να δοκιμάσεις αν υπάρχει τίποτα να διαγραφει. Αν δεν υπάρχει κάτι να διαγραφεί, τότε τι να διαγράψει; Το SELECT μπορείς να το δοκιμάσεις απευθείας και στην mysql.

 

Πριν την εκτέλεση της delete και μετά τον ορισμό της $query βάλε ένα

>echo "<b>$query</b>";

για να δεις αν οι μεταβλητές είναι σωστές.

Δημοσ.
αυτο μου επεστρεφει......Resource id #3

Να υποθέσω για το select, σωστά;

 

Σου γύρισε array. Ας το απλοποιήσουμε για να δούμε αν πραγματικά έχεις data. Αντικατέστησε το

 

>
query2=mysql_query("SELECT * FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");  

με το

>
query2=mysql_query("SELECT number_of_team FROM laboratory_section WHERE id_lesson='$lesson' AND number_of_team='$number_of_team' ");  
$usme = mysql_fetch_row($query2);
$usme = $usme[0];

Με το

>echo "<b>$query</b>";  

που σου έγραψα νωρίτερα, τι σου έβγαλε;

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

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

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