Mam v tabulke index INDEX na dvoch stlpcoch naraz (id + id_produktu) a pri vkladani zaznamu s rovnakym obsahom (pomocou php - mysqli_query) ako uz existuje v stlpci id_produkt nic nevlozi, ani mysqli_error nic nevyhodi, avsak po odmazani riadku s rovnakou hodnotou sa zaznam vlozi... pri vkladani cez phpmyadmin pri existencii rovnakeho zaznamu, sa rovnaky zaznam ako davam cez php bez problemov ulozi... proste sa mi to sprava v php ako keby bol nad tym jednym stplcom unique
nerozumiem tomuto spravaniu... alebo robim nieco zle?
Fórum › MySQL
Ako ukladat do 2x INDEXU
je tam len index...
CREATE TABLE IF NOT EXISTS `kosik` (
`iid` int(10) unsigned NOT NULL,
`iid_produkt` int(10) unsigned NOT NULL,
`iid_produkt_atribut` int(10) unsigned NOT NULL,
`quantity` int(10) unsigned NOT NULL,
`datum` datetime NOT NULL,
KEY `cart_produkt_index` (`iid`,`iid_produkt`),
KEY `id_produkt_atribut` (`iid_produkt_atribut`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;
--
-- Sťahujem dáta pre tabuľku `kosik`
--
INSERT INTO `kosik` (`iid`, `iid_produkt`, `iid_produkt_atribut`, `quantity`, `datum`) VALUES
(15, 30, 0, 4, '2010-10-08 18:46:37'),
(15, 28, 0, 3, '2010-10-08 18:46:39'),
(15, 29, 0, 2, '2010-10-08 18:29:30');
Vypis klucov:
Akcia Kľúčový názov Typ Unikátny Packed Pole Mohutnosť Zotriedenie Nulový Comment
cart_produkt_index BTREE Nie Nie iid 0 A
iid_produkt 0 A
id_produkt_atribut BTREE Nie Nie id_produkt_atribut 0 A
mysql> \u test
Database changed
mysql> show tables ;
Empty set (0.00 sec)
mysql> CREATE TABLE IF NOT EXISTS `kosik` (
-> `iid` int(10) unsigned NOT NULL,
-> `iid_produkt` int(10) unsigned NOT NULL,
-> `iid_produkt_atribut` int(10) unsigned NOT NULL,
-> `quantity` int(10) unsigned NOT NULL,
-> `datum` datetime NOT NULL,
-> KEY `cart_produkt_index` (`iid`,`iid_produkt`),
-> KEY `id_produkt_atribut` (`iid_produkt_atribut`)
-> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_slovak_ci;
Query OK, 0 rows affected (0.03 sec)
mysql> INSERT INTO `kosik` (`iid`, `iid_produkt`, `iid_produkt_atribut`, `quanti
ty`, `datum`) VALUES
-> (15, 30, 0, 4, '2010-10-08 18:46:37'),
-> (15, 28, 0, 3, '2010-10-08 18:46:39'),
-> (15, 29, 0, 2, '2010-10-08 18:29:30');
Query OK, 3 rows affected (0.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> INSERT INTO `kosik` (`iid`, `iid_produkt`, `iid_produkt_atribut`, `quanti
ty`, `datum`) VALUES
-> (15, 30, 0, 4, '2010-10-08 18:46:37'),
-> (15, 28, 0, 3, '2010-10-08 18:46:39'),
-> (15, 29, 0, 2, '2010-10-08 18:29:30');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from kosik;
+-----+-------------+---------------------+----------+---------------------+
| iid | iid_produkt | iid_produkt_atribut | quantity | datum |
+-----+-------------+---------------------+----------+---------------------+
| 15 | 30 | 0 | 4 | 2010-10-08 18:46:37 |
| 15 | 28 | 0 | 3 | 2010-10-08 18:46:39 |
| 15 | 29 | 0 | 2 | 2010-10-08 18:29:30 |
| 15 | 30 | 0 | 4 | 2010-10-08 18:46:37 |
| 15 | 28 | 0 | 3 | 2010-10-08 18:46:39 |
| 15 | 29 | 0 | 2 | 2010-10-08 18:29:30 |
+-----+-------------+---------------------+----------+---------------------+
6 rows in set (0.02 sec)
db_q("INSERT INTO shop.kosik (iid,iid_produkt,quantity,datum) VALUES (%1i,%2i,%3i,%4s)",$kod,$id,1,date('Y-m-d H:i:s'));
jaaaaaj sorry, to je moj db layer....
mam tam aj "testovaciu funkciu" ktora vypluva presny dotaz na db.. po upravach..
a to:
INSERT INTO shop.kosik (iid,iid_produkt,quantity,datum) VALUES ('18','9','1','2010-10-08 19:25:28')
To marioff : nemuze byt datum klicove slovo?
jinak netusim co by mohlo byt zle
EDIT: tak ne:
mysql> INSERT INTO kosik (iid,iid_produkt,quantity,datum) VALUES ('18','9','1',now());
ERROR 1364 (HY000): Field 'iid_produkt_atribut' doesn't have a default value
CZechBoY: uz som medzitym nastavil stlpcom aj defaultne hodnoty, aj skusil phpkom nakrmit vsetky.. a nic z toho...
KIIV: ved prave, netusim ani ja...
edit: sypem si popol na hlavu, aspon vedro... chyba bola o par riadkov v kode vyssie, kde sa rozhodovalo ci sa riadok ulozi alebo len updatuje, som zle urobil podmienku v sql dotaze tak ze vybrala riadok aj s inym stlpcom id, a v naslednom updatovani uz riadok nenaslo kedze malo ine id
heh, stava sa...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jak ukládat widgety? — založil Josef Hornych
BLOB - ukladat soubory v DB, nebo na disku? — založil tux.martin
Jak ukladat do appdata/roaming/.minecraft v C# — založil Lukas
Jak ukladat do appdata/roaming/.minecraft v C# — založil Lukas
Jak ukládat do souboru a pak číst? , C# — založil Petr
Moderátoři diskuze