HowTo Delete Records In PHP-MySQL

...IDE, compilers, κλπ

Συντονιστής: konnn

HowTo Delete Records In PHP-MySQL

Δημοσίευσηαπό thodoris_turtle » 04 Ιαν 2010, 12:41

Γεια σας και χρονια σας πολλα οπως λεει και ο τιτλος του thread θα ηθελα να με βοηθησετς πως θα διαγραψω διπλο εγγραφες απο εναν πινακα.

Εχω εναν πινακα που ονομαζετε κρατησεις και με πεδια: id, BookCode, Titlos , UserID, UserFullName, Hmerominia_kratisis

Αυτο που θελω να κανω ειναι ενας χρηστης μιας δανειστικης βιβλιοθηκης να μπορει εκτος απο δανεισμο ενος βιβλιο να κανει και κρατηση ενος βιβλιου στην περιπτωση που το εχει δανειστη αυτο το βιβλιο καποιος αλλος χρηστης

Θα μπω στην ουσια. Αυτο που θελω να κανω ειναι να αποφευγονται οι διπλο εγγραφες στην βαση δεδομενων στην περιπτωση που ενας χρηστης επιλεξη να κανει κρατηση 2 φορες το ιδιο βιβλιο

Θελω εναν κωδικα σε PHP-MySQL που να αποφευγονται οι διπλο εγγραφες

Πρεπει και νομιζω οτι τα πεδιο UserID και BookCode να εχουν διαφορετικες τιμες μεταξη τους γιατι αμα εχουν ιδιες τιμες παει να πει οτι ο ιδιος χρηστης εκανε κρατηση 2 φορες το ιδιο βιβλιο

Γενικος μια βοηθεια θα ηθελα οποιος και οποια μπορει

ευχαριστω εκ των προτερων για την υπομονη σας :-)
Η ζωή είναι κενή χωρίς ιδέες. Δεν υπάρχει μεγαλύτερη χαρά από τον αγώνα στο όνομά τους.

Φιντέλ Κάστρο Ρους
31 Ιούλη του 2007
Άβαταρ μέλους
thodoris_turtle
punkTUX
punkTUX
 
Δημοσιεύσεις: 187
Εγγραφή: 28 Αύγ 2008, 15:18
Τοποθεσία: Άνω Γλυφάδα
Εκτύπωση

Re: HowTo Delete Records In PHP-MySQL

Δημοσίευσηαπό linuxman » 04 Ιαν 2010, 16:11

Μπράβο που ασχολείσαι με αυτό .
Άλλα θα κάνω μία ερώτηση εάν δεν είναι εργασία για μάθημα γιατί δεν βρεις μία έτοιμη λύση για αυτό και να το προσαρμόσεις προς τις ανάγκες σου ?
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Re: HowTo Delete Records In PHP-MySQL

Δημοσίευσηαπό kamar » 07 Ιαν 2010, 00:06

Για να αποφύγεις τις διπλές εγγραφές, όρισε ως μοναδικό ευρετήριο τα πεδία BookCode και UserID. Έτσι η βάση δεν δέχεται δυο φορές το ίδιο βιβλίο από τον ίδιο χρήστη.

Για τη διαγραφή δες εδώ και εδώ
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

Re: HowTo Delete Records In PHP-MySQL

Δημοσίευσηαπό Αποστόλης » 15 Ιαν 2010, 23:34

Φαντάζομαι οτι σαν μοναδικό ευρετήριο εννοείς την ιδιότητα unique που μπορείς να δώσεις σε ένα table field.
Αν αυτό εννοείς είναι λάθος ο τρόπος γιατί άπαξ και το UserID καταχωρηθεί στην βάση δεν μπορεί να ξανακαταχωρηθεί.
Είτε θα "αφορά" το ίδιο BookCode είτε κάποιο άλλο field.

Κατ' αρχάς το όλο project έχει αρχίσει λάθος.
Οι χρήστες και τα στοιχεία τους σε έναν πίνακα, τα βιβλία και τα στοιχεία τους σε άλλο και η "διακίνηση" των βιβλίων σε άλλο.
Η λογική που υλοποιείται αυτή τη στιγμή κάνει μόνο για μικρές εφαρμογές σε στύλ "για την πάρτη μου το έχω, στο pcάκι μου".
Αλλιώς με τον καιρό θα προκύψουν προβλήματα.


Στο υπάρχον project οι πιο σωστοί τρόποι (πιστεύω) είναι:
α) άλλο ένα πεδίο (booking_status π.χ.) με επιλογές 0 (ο χρήστης δεν έχει κάνει κράτηση για το βιβλίο) και 1 (ο χρήστης έχει κάνει ήδη κράτηση για το βιβλίο)
κατόπιν με ένα select status μπορείς να δείς και να απαγορέψεις/επιτρέψεις την καταχώρηση της εγγραφής.
β)μπορείς να κάνεις ένα
Κώδικας: Επιλογή όλων
select BookCode,UserID
και να τσεκάρεις αν υπάρχει ήδη μια εγγραφή με τα στοιχεία που αναζητάς οπότε πράτεις αναλόγως.
το μειονεκτήμα αυτής της μεθόδου είναι οτι αν δεν κάνεις σωστά την αναζήτηση μπορεί να οδηγηθείς σε λάθος συμπεράσματα. Οποσδήποτε απαγορεύται η αναζήτηση σε στύλ:
Κώδικας: Επιλογή όλων
SELECT BookCode,UserID WHERE BookCode LIKE '"%BookCode%"'
κ.λ.π. κ.λ.π.
Γνώσεις ⇛ Linux:Μέτριο┃ Προγραμματισμός:Ναι ┃ Αγγλικά: Αρκετά Καλά
Λειτουργικό ⇛ Arch Linux 64bit ┃ Ubuntu Studio 10.4 64bit
Προδιαγραφές ⇛ HP Pavillion dv7 1199ev ┃ Intel 2 Core Duo T 9400, 2.53 Ghz ┃ 4GB ┃ NVIDIA GeForce 9600M GT ┃ Intel 82801I (ICH9 Family) HD Audio ┃ TFT 17" 1440x900
Αποστόλης
punkTUX
punkTUX
 
Δημοσιεύσεις: 170
Εγγραφή: 24 Ιουν 2009, 13:09
Εκτύπωση


Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού