Autor Zpráva
fili
Profil
Pri vytváraní tabuľky priamo v DB mi vyhodilo dole uvedenú chybu,
netuším, kde presne mám urobiť zmenu/nápravu, aby mi tabuľku vytvorilo

#1070 - Too many key parts specified; max 16 parts allowed

Ešte by som potreboval vedieť kedy v tabuľke nastaviť VARCHAR a kedy je lepšie použiť text.
Zechy
Profil
VYtváříte moc klíčů(at už prmární nebo unikátní), uberte je.
fili
Profil
Žiadny kľúč som nezadával, len celý text inak som na tej pravej strane
tabuľky nič nerobil.
A kedy zadať VARCHAR a kedy text. Ozaj mam ID začať 000001 alebo 0 alebo 1?
Kajman
Profil
fili:
Žiadny kľúč som nezadával
Ukažte dotaz, který končí tou chybou.

A kedy zadať VARCHAR a kedy text
do varcharu se vejde v novějších verzích mysql až 65535 bytů, do textu až 65535 znaků viz.
http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html
fili
Profil
"Ukažte dotaz, který končí tou chybou"
Zatvorila sa mi databáza, pre dlhšiu nečinnosť takže sa mi to celé vymazalo
žiadny dotaz nemám.

"do varcharu se vejde v novějších verzích mysql až 65535 bytů, do textu až 65535 znaků viz. "
Jednak je to v AJ a nie som z toho moc múdry, z praxe sa to ako používa?
A navyše pri VARCHAR sa nastavuje veľkosť - nie je to v tom, že si tam užívateľa kontrolujem, aby mi tam nevložil "román".

A práve mi vyskočil ďalší problém. Chcem zobrazované výsledky vyhľadávania z inej tabuľky zoradiť podľa ceny.
Mám tam ... ORDER BY Cena.. v dotaze.
Výsledky mi vyhadzuje správne, ale z tej ceny mi zobrazuje len samotné číslo - chýba pri ňom text €/ks a pod. Kde je chyba v dotaze alebo
v nastavení v tabuľke? V DB mám nastavené pri Cena INT.
xROAL
Profil
Varchar by som používal pre kratšie textové reťazce, kde vieš určiť ich maximálnu dĺžku (napríklad užívateľské meno, heslo, nadpis článku).
Text by som použil pri dlhých "románoch" (napríklad obsah článku, príspevok na diskusné fórum).

Čo sa týka toho, že ti tam neukazuje "€/ks", INT, teda integer, je celé číslo - len číslo a nič iné. Ak chceš aby sa ti pri čísle ukazovalo aj "€/ks", tak to jednoducho dopíš ručne pri výpis tej ceny, čiže niečo ako:
echo "Cena: ".$cena."€/ks";
fili
Profil
V xROAL
Vďaka, za vysvetlenie VARCHAR verzus text.

výpis tej ceny, čiže niečo ako:
echo "Cena: ".$cena."€/ks";
Bolo by to riešenie, ale ten text za cenou nie je vždy rovnaký
môže byť €/2ks a pod.
xROAL
Profil
fili:
V tom prípade by to chcelo niečo (napríklad ďalší stĺpec v DB) podľa ktorého by si rozlíšil či tam má byť €/ks, alebo niečo iné a to tam následne vypíšeš. Ak sa mení len počet kusov, tak by som to spravil ako ďalší INT ktorý by označoval len ten počet - myslím že by bolo zbytočné do DB zapisovať celé "€/?ks".

Inak čo sa týka VARCHAR vs TEXT, toto je len spôsob akým to robím ja - netvrdím, že to takto 100% má byť.
fili
Profil
xROAL:
"ďalší stĺpec v DB" také riešenie ma nenapadlo, len sa mi to zdá príliš komplikované, myslel som že existuje nejaké hybridné nastavenie, ktoré ak je tam číslo + text, tak s ním pracuje ako s číslom a ten text tam len jednoducho zobrazí.

VARCHAR vs TEXT - no o to mi išlo ako to ľudia, čo majú viac skúseností v praxi využívajú.

A čo to ID ako je najlepšie začať? od 000001 alebo 0 alebo 1?, aby som sa vyhol prípadným problémom.
xROAL
Profil
fili:
Tak pre tú sumu môžeš rovnako použiť VARCHAR, kde môže byť aj číslo, aj text, či iné znaky, no neviem ako to bude potom so zoraďovaním.

Čo sa týka toho ID, použi AUTO_INCREMET (pri vytváraní tabuľky, alebo jej úprave) a nemusíš si s ID robiť starosti. Každý záznam dostane svoje vlastné, nové ID (o jedno väčšie ako predchádzajúci záznam).
fili
Profil
xROAL
Pri VARCHAR nezoraďuje správne.
ID som chcel dodatočne vložiť do tabuľky DB, ale AUTO_INCREMET mi nechcelo akceptovať. Dalo sa pridať len bez AUTO_INCREMET.
xROAL
Profil
fili:
Ak ti nechce akceptovať AUTO_INCREMENT tak to môže znamenať len dve veci. Buď už v tabuľke je stĺpec s AUTO_INCREMENT alebo tento ktorý si vytváral nebol definovaný ako kľúč, označ ten nový stĺpec ako primary či index a malo by to fungovať.
fili
Profil
xROAL:
Vďaka, to som urobil a ID mi pridalo automaticky.
Text k cene som riešil pridaním stĺpca do tabuľky.
A narazil som ešte na jeden problém a to zobrazovanie
desatinných miest v cene. Mám ju nastavenú ako INT,
prestavil som na DECIMAL, ale keď som vložil cenu 8,50,
tak mi zobrazuje aj v tabuľke len 8. Ako to mám presne nastaviť?
Kajman
Profil
Vkládejte to jako 8.50
fili
Profil
Kajman:
Tak som skúsil dať namiesto čiarky bodku, ale či mam nastavene INT
alebo DECIMAL tak mi 8.50 to automaticky zaokrúhľuje na 9
Kajman
Profil
Použijte decimal a v závorce definujte délku a počet desetinných míst.
fili
Profil
Kajman:
Mal som to takto decimal(11,0), ale aj tak mi to zaokrúhľuje.
Netreba ešte niečo niekde nastaviť?
A mám ešte otázky:
Ako nastaviť dátumy - dátum pridania, ktorý sa už meniť nebude
a dátum aktualizácie, ktorý by sa mal meniť pri aktualizácii.
A ešte ma zaujíma ako prepojiť tabuľky? Jednu mám a druhú chcem vytvoriť.
Kajman
Profil
fili:
Mal som to takto decimal(11,0), ale aj tak mi to zaokrúhľuje.

Tímto jste nastavil, že číslo může mít 11 číslic a z toho 0 za desetinnou tečkou. Není se čemu divit, když se to zaokrouhlí na celé číslo.
fili
Profil
Kajman:
Ako to má byť správne???
Prestavil som to na DECIMAL(1,0), ale ani mi neprepíše pôvodný údaj.
Čo s tým?
xROAL
Profil
fili:
Myslím že Kajman to napísal dosť jasne: decimal(x,y), kde x označuje počet číslic a y počet desatinných miest.

Takže napríklad DECIMAL(11,2) je 11 číslic, z toho 2 číslice za desatinnou čiarkou (resp. bodkou).
fili
Profil
xROAL:
Vďaka, teraz som to pochopil ako to vlastne je.
Zobrazuje už správna aj zoraďuje pri vyhľadávaní,ale v jednej položke mi neberie číselnú zmenu údaju v cene
fili
Profil
Namiesto 12.00 mi zobrazuje v tabuľke 9.99 Prečo?


Nastavil som DECIMAL( 3,2) aj tak mi to blbne Namiesto 12.00 mi zobrazuje v tabuľke 9.99 Prečo?
Rfilip
Profil
jaké máš ted hodnoty u DECIMAL?
fili
Profil
Rfilip:
DECIMAL(3,2)
shaggy
Profil
fili:
Ty máš nejakú vývojovú vadu? Pýtam sa úplne vážne, aby som vedel, ako k tebe pristupovať (či ti treba niečo vysvetliť 100x a podobne).
Dostal si odkaz, bolo ti tu vysvetlené, ako funguje decimal. Nastavíš si to zle a napriek tomu sa čuduješ, že to funguje tak, ako to má fungovať.
Skús prejaviť trochu vlastnej iniciatívy, prečítaj si to, čo sa píše na odkaze v [#16] a tiež si prečítaj, čo ti napísal [#20] xROAL.
fili
Profil
Ak som to nepochopil spravne, tak stačí napísať presne ako to má vyzerať,
a nie urážať. Ja sa s tym len učím robiť. Čo je pre jedného rutina, pre iného môže byť nepredstavitelne zložité.
decimal(x,y), kde x označuje počet číslic a y počet desatinných miest.
ja mam 3,2 - 3 čísla pred čiarkou a 2 desatinné čísla za čiarkou, resp. bodkou. Alebo to číslo pred čiarkou znamená súčet všetkých zobrazených čísel?
Riadky kde som to testoval mi zobrazovalo ok, ale ked som vkladal
do ostatnych riadkov, tak mi to blblo.


Správne to má byť DECIMAL( 5,2)? Aspoň to tak vyzerá a zatiaľ to funguje
A mám ešte otázky:
1.Ako nastaviť dátumy - dátum pridania, ktorý sa už meniť nebude
a dátum aktualizácie, ktorý by sa mal meniť pri aktualizácii.
2. Ako prepojiť tabuľky? Jednu mám a druhú chcem vytvoriť.
3. Kde nájdem zrozumiteľný návod v cz/sk na vytvorenie kompletného užívateľského účtu s galériou obrázkou, kalendárom a pod.
shaggy
Profil
fili:
tak stačí napísať presne ako to má vyzerať,
1. nikto ťa neurážal, preto som napísal, že a pýtam úplne vážne, aby som vedel, ako k tebe pristupovať,
2. presne napísané, ako to má vyzerať máš predsa v [#20], čo viac potrebuješ?
3. je pekné, že sa na tom učíš, ale prejav vlastnú iniciatívu. Ak nemáš menej, ako 12 rokov, tak žiadny argument neobstojí - vtedy som začal s programovaním v Pascale, občas sa ku mne dostala disketa s ukážkovými kódmi (v nemčine/angličtine), neskôr chodil k otcovi do práce a navštevoval (v tej dobe) nie veľmi početné stránky a na diskety si ukladal texťáky s kódom, ktorý som sa doma snažil pochopiť - a ak som mal problém niečo pochopiť, tak som si to prečítal raz, dvakrát, viackrát, kým som to správne nepochopil.

Tak mi povedz, ako viac ti máme vysvetliť túto vetu?
Takže napríklad DECIMAL(11,2) je 11 číslic, z toho 2 číslice za desatinnou čiarkou (resp. bodkou).
Prečo sa nesnažíš sám? Prečo nehľadáš na webe informácie o tom, ako správne ukladať ceny do db? Prečo neskúšaš rôzne kombinácie (ak mi nefunguej DECIMAL(3,2), tak skúšam tie čísla zmeniť a pochopiť, čo som ovplyvnil). Ja tiež z hlavy neviem, ako sa DECIMAL zapisuje (za ostatných x mesiacov som to nepotreboval), ale pozriem do dokumentácie a vidím.

A teraz odpovede na tvoje otázky:
1. Hľadal si? Ja som hľadal a našlo mi pár stránok (z ktorých sa môžeš odpichnúť ďalej): mysql date tutorial, alebo na stackoverflow, alebo tu máš rozpísané rôzne varianty. Ak chceš mať zvlášť dátum vytvorenia a zvlášť dátum aktualizácie, tak vytvoríš dva stĺpce.
2. Čo si predstavuješ pod prepojením? Ale tieto dve stránky ti asi pomôžu: mysql join tutorial a niečo o foreign keys.
3. A nechceš rovno návod, kde budú tie kódy pripravené na stiahnutie a ešte bude k tomu aj inštalátor, ktorý za teba vyplní prihlasovacie údaje do db? Začni tým, že budeš hľadať, môžeš hľadať napr. registráciu - ja som ako prvú našiel tému tu na djpw, odkiaľ som sa dostal sem: Nejčastější potíže s PHP (FAQ) » Registrace uživatelů - ďalej to už určite zvládneš sám ;)
fili
Profil
shaggy:
"Ako ku mne pristupovať?" Keďže sa týmto učím, tak napísaním správneho riešenia, vtedy sa to dá najlepšie pochopiť a hneď
vidím, kde mám chybu.
A vysvetlením tzv. "po lopate".
Pri tom decimale som myslel, že ak mám 3,2, tak to znamená 3 čísla pred desatinnou čiarkou a dve za čiarkou resp. bodkou. To 11,00 mi automaticky vložilo, keď som zmenil Int na Decimal, tak som si myslel, že to tak má byť.

1. Vďaka za tie linky, len AJ nie je moja silná stránka a automatický preklad nie je to správne orechové. Preto potrebujem v cz/sk
Samozrejme viem že pre každý dátum - pridanie, aktualizácia musím vytvoriť stĺpec zvlášť. Skôr mi ide o tie nastavenia/napr. ako pri tom decimale/, aby som s tým zas nematuroval, že to nezobrazuje podľa požiadaviek.
2.Prepojenie tabuliek - myslím, že sa im hovorí relačné.
Napr. tabuľku užívateľských údajov s tabuľkou fakturačných údajov.
Alebo je lepšie napchať to všetko do jednej tabuľky? Čo je z praxe lepšie riešenie? Ide mi o to, že ten kto má v tom prax vie povedať takto je to lepšie a nie tak alebo onak. Alebo napr. prihlasovacie údaje, je ich tiež dobré dať do tej jednej tabuľky alebo napr. kvôli bezpečnosti do samostatnej tabuľky. Čím ich prepojiť, stačí ak jednotlivé údaje, ktoré patria jednému užívateľovi majú rovnaké ID. Existuje príkaz, ktorý tabuľky prepojí?
3." A nechceš rovno návod, kde budú tie kódy pripravené na stiahnutie..."
Jéj, chcem, to by bolo super. Samozrejme, že som aj hľadal, ale nenašiel som nič dosť dobré, ale tie Tvoje linky vyzerajú celkom sľubne, len to potrebujem spraviť relatívne rýchlo a nie nad každou maličkosťou maturovať.
Inak s tabuľkou v DB robím ručne nepíšem kódy, je to pre mňa jednoduchšie a rýchlejšie.
shaggy
Profil
fili:
len AJ nie je moja silná stránka a automatický preklad nie je to správne orechové. Preto potrebujem v cz/sk
Ak sa chceš venovať programovaniu, tak sa buď doučíš angličtinu, alebo to budeš mať veľmi ťažké (a na dobré zamestnanie môžeš rovno zabudnúť).

len to potrebujem spraviť relatívne rýchlo a nie nad každou maličkosťou maturovať.
Tak si niekoho zaplať. Ja potrebujem tiež rýchlo zbohatnúť, pošleš mi na účet 100 000?
Ja tiež nechcem maturovať nad tvojimi problémami, sú to tvoje starosti, my sme ti ukázali, ako na to, ty si ich vyrieš.

Inak s tabuľkou v DB robím ručne nepíšem kódy, je to pre mňa jednoduchšie a rýchlejšie.
Tomuto nerozumiem a radšej ani nechcem rozumieť.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: