Προβλημα με update plus item

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 07 Ιούλ 2014 21:03

ΚΑλσηπέρα, Το ερώτημα εκτελέιτε κανονικά.

Αλλα

UPDATE `kalathi` SET `posotita`=".posotita."+1 WHERE `kalathi`.`id` =$id


To Πεδίο ποσότητα στο πίνακα καλάθι ειναι int(2)
Αν η αρχική τιμή posotita ειναι 2 εντολη δινει αποτελεσμα ΑΝΤΙ 2+1 = 3 το 2+2 = 4.

Τι στο καλό ειναι αυτο?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από burnmind » 07 Ιούλ 2014 21:23

Το ".posotita." τι είναι;

Για δοκίμασε έτσι:

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

UPDATE `kalathi` SET `posotita`=`posotita`+1 WHERE `kalathi`.`id` = $id

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 07 Ιούλ 2014 22:08

To posotita ειναι η αρχικη integer τιμη του πεδίου posotita sto πίνακα kalathi.

Αν η αρχική τιμή τιμή του posotita ειναι 1 τοτε εινα οκ. δηλαδη μετα τηνεκτελεση του ερωτηματος εχουμε 2 τεμαχια στο καλαθι. Τη δευτερη εκτελεση εχουμε 3 τεμαχια = οκ


Αν η αρχική τιμή τιμή του posotita ειναι 2 τοτε μετα την εκτελεση του ερωτηματος εχουμε 4 τεμαχια στο καλαθι αντι 3.Τη δευτερη εκτελεση εχουμε 6. Παει αρθροισμα 2-2


Αν η αρχική τιμή τιμή του posotita ειναι 3 τοτε μετα την εκτελεση του ερωτηματος εχουμε 6 τεμαχια στο καλαθι αντι 4. Τη δευτερη εκτελεση εχουμε 9 . Παει αθροισμα 3-3

burnmind δεν δουλευει το δοκιμασα

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από burnmind » 07 Ιούλ 2014 22:20

Το διορθωμένο query που σου έδωσα το δοκίμασες;

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 07 Ιούλ 2014 22:23

burnmind έγραψε:Το διορθωμένο query που σου έδωσα το δοκίμασες;
ναι

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από burnmind » 07 Ιούλ 2014 22:31

Μάλλον έκανες edit καθώς έγραφα. :)

Κάνε ένα echo το τελικό query (χωρίς μεταβλητές) για να δεις τι γίνεται εκεί και αν θέλεις δώσε περισσότερες πληροφορίες για το structure της βάσης σου, γιατί θα έπρεπε να λειτουργεί.

Για παράδειγμα, τα παρακάτω updates δουλεύουν κανονικά και προσθέτουν απλά από 1 στο κάθε record.

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

CREATE TABLE IF NOT EXISTS `kalathi` (
  `id` int(1) NOT NULL,
  `posotita` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `kalathi` (`id`, `posotita`) VALUES
(1, 2),
(2, 3),
(3, 4);

UPDATE `kalathi` SET `posotita`=`posotita`+1 WHERE `kalathi`.`id` = 1;
UPDATE `kalathi` SET `posotita`=`posotita`+1 WHERE `kalathi`.`id` = 2;
UPDATE `kalathi` SET `posotita`=`posotita`+1 WHERE `kalathi`.`id` = 3;
Μήπως κάνεις κάποιο λάθος λογικής σε κάποιο σημείο και τρέχεις το query παραπάνω από 1 φορά (πχ παρατήρησα πως δεν υπάρχει κάποιο product id στο query, μήπως τρέχει κατά λάθος πολλαπλές φορές για κάθε product);

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από dva_dev » 07 Ιούλ 2014 22:34

gaucho έγραψε:ΚΑλσηπέρα, Το ερώτημα εκτελέιτε κανονικά.

Αλλα

UPDATE `kalathi` SET `posotita`=".posotita."+1 WHERE `kalathi`.`id` =$id


To Πεδίο ποσότητα στο πίνακα καλάθι ειναι int(2)
Αν η αρχική τιμή posotita ειναι 2 εντολη δινει αποτελεσμα ΑΝΤΙ 2+1 = 3 το 2+2 = 4.

Τι στο καλό ειναι αυτο?
Αυτό είναι κάτι μεταλλαγμένο ανάμεσα σε php και sql, αλλά δεν είναι ούτε το ένα ούτε το άλλο.

Για να πάρεις βοήθεια χωρίς να μας παιδεύεις μη βαριέσαι να γράψεις κάτι ολοκληρωμένο, πιθανώς 2-3 γραμμές κώδικα πριν από αυτό το update και 1-2 γραμμές κώδικα μετά. Να φαίνεται τουλάχιστον η εντολή που έχεις γράψει ολόκληρη.

Επίσης όταν κάτι που έχεις κάνει δεν δουλεύει είναι σημαντικό να μπορείς να εξηγήσεις τι είναι αυτό που θέλεις να κάνεις.
Αυτό που θέλεις δηλαδή είναι να αυξάνει την ποσότητα κατά 1 ή να αυξάνει την ποσότητα κατά όσο λέει το posotita;
Επίσης το posotita, είναι σταθερά που την έχεις ορίσει κάπου ή πρέπει να είναι μεταβλητή που παίρνει κάπως μια τιμή;

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 07 Ιούλ 2014 23:03

$query1="
UPDATE `cart` SET `quantity`=`quantity`+1 WHERE `cart`.`pid` =$id
";



$additem=mysql_query($query1)or die (mysql_error());

To ερώτημα εκτελείτε κανονικά. Το $id $id=$_GET["id"]; παιρνει τιμή απο το URL.

Θελω να αυξανω τις ποσότητες που ειναι ηδη στο καλάθι αγορων. O πίνακας η δομη του
CREATE TABLE IF NOT EXISTS `cart` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`namecookcart` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
`pid` varchar(10) CHARACTER SET utf8 NOT NULL DEFAULT '',
`pname` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
`pricec` varchar(20) CHARACTER SET utf8 NOT NULL DEFAULT '',
`quantity` smallint(2) NOT NULL DEFAULT '1',
`date` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`id`)

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από burnmind » 07 Ιούλ 2014 23:36

Μπορεί να καταλαβαίνω κάτι λάθος, αλλά μου φαίνεται τελείως λάθος η δομή του πίνακά σου και κατ' επέκταση το query.

Αν το διαβάζω σωστά, λες πως το κάθε cart με μοναδικό id X, περιέχει μόνο ένα αντικείμενο κάθε φορά (δε μπορώ να φανταστώ γιατί να θέλεις να σχεδιάσεις ένα cart που περιέχει μέχρι ένα αντικείμενο) και στο query λες κάνε update το quantity του τάδε product id σε όλα τα carts.

Επίσης, αν όντως περνάς το id που παίρνεις από το GET request κατ' ευθείαν στη βάση, τότε διάβασε μερικά πράγματα για το SQL Injection ώστε να προστατέψεις την εφαρμογή σου.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από dva_dev » 07 Ιούλ 2014 23:48

gaucho έγραψε:

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

$query1=" 
UPDATE `cart` SET `quantity`=`quantity`+1 WHERE `cart`.`pid` =$id 
"; 



$additem=mysql_query($query1)or die (mysql_error()); 
κατά πόσο θέλεις να αυξάνει η ποσότητα κάθε φορά; Αυτό που έχεις κάνει αυξάνει κατά 1.

Δεν βλέπω πουθενά το posotita, δεν το χρειάζεσαι;

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 08 Ιούλ 2014 09:42

burnmind έγραψε:Μπορεί να καταλαβαίνω κάτι λάθος, αλλά μου φαίνεται τελείως λάθος η δομή του πίνακά σου και κατ' επέκταση το query.

Αν το διαβάζω σωστά, λες πως το κάθε cart με μοναδικό id X, περιέχει μόνο ένα αντικείμενο κάθε φορά (δε μπορώ να φανταστώ γιατί να θέλεις να σχεδιάσεις ένα cart που περιέχει μέχρι ένα αντικείμενο) και στο query λες κάνε update το quantity του τάδε product id σε όλα τα carts.

Επίσης, αν όντως περνάς το id που παίρνεις από το GET request κατ' ευθείαν στη βάση, τότε διάβασε μερικά πράγματα για το SQL Injection ώστε να προστατέψεις την εφαρμογή σου.

Υπάρχει το namecookcart που μπορει να ειναι διπλότυπο για τα κοματια της αγορας. Στο ιδιο id του cart υπάρχουν πολλα προιοντα με το ίδιο session. Για το id οκ.

dva_dev to posotita ειναι το quantity και θέλω να αυξανετε κατα μια μοναδα οταν ο αλλςο κανει κλικ στο καλαθι να παρει δευτερο η τριτο ιδιο προιον.


http://www.mypharmacy.gr/ εδω ειναι το σαιτ. αν και εχει καλές τιμες με σπαει τα @@@. Ψωνίστε απο μπροστα 2 φορες το ίδιο προιον μετα πατε καλάθι. Βαλτε τριτο προιον και θα δειτε οτι μπενει 4

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1948
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από Alice_Cooper » 08 Ιούλ 2014 09:50

vale mia echo $query1; kato apo tin query ....
na deis mipos gia kapoion logo sthn trexei 2 fores ....

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2411
Εγγραφή: 22 Δεκ 2002 13:18

Προβλημα με update plus item

Δημοσίευση από gaucho » 08 Ιούλ 2014 09:57

Alice_Cooper έγραψε:vale mia echo $query1; kato apo tin query ....
na deis mipos gia kapoion logo sthn trexei 2 fores ....

1 φορα εκτυπωνεται το ερωτημα. Μολις το έκανα.

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1948
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από Alice_Cooper » 08 Ιούλ 2014 10:06

kai sou prosthese 2?

edit: molis to dokimasa kai doulepse kanonika

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Προβλημα με update plus item

Δημοσίευση από burnmind » 08 Ιούλ 2014 12:49

@gaucho: Εξακολουθώ να θεωρώ λάθος τη σχεδίαση της βάσης, αλλά ας το αφήσουμε.

Το δοκίμασα κι εγώ (όπως και ο Alice_Cooper) και φαίνεται να δουλεύει με τον τρόπο που θέλεις, αν κι εδώ έχω αρκετές ενστάσεις καθώς θεωρώ πως δεν είναι καθόλου λειτουργικό.

Απάντηση

Επιστροφή στο “MySQL”

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

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