Autor Zpráva
koudi
Profil
Dá se nějak při INSERTu vložit přímo číslo, který bude mit na daném řádku sloupec Id, který má nastaveno auto_increment?
Třeba něco jako INSERT INTO tabulka (text) VALUES ('NEWID'.'mujtext')?

Nebo to prostě musim vložit normálně přes mysql_insert_id zjisit jaký id to bylo a pak to dalším dotazem upravit?
Kajman_
Profil *
Kdysi jsem tuším používal u něčeho sloupecek.nextval, ale netuším, jestli se to dá použít víckrát. No, ale nevím, jestli to řeší Váš problém, protože jsem ho z toho popisu zrovna moc nepobral.
Leo
Profil
Autoincrement je AUTO - tzn. hodnotu nevkladate, vklada se sama vzdy o jednicku vetsi. Leo
taurendilek
Profil *
jasne hodnotu nevkladate atd.ale proc se vlastne vklada id?vzdycky se stejne odkazujes na name ne?teda pls vysvetli
juneau
Profil
Id se nemusi vkladat, ale kazdy radek musi byt JEDINECNE IDENTIFIKOVAN ... v tabulce nesmi byt dva radky se stejnymi hodnotami. Rostouci cislo je odlisi spolehlive.

Treba ukladam do databaze texty... tabulka "texty" > ID, Nadpis, Datum, Text. ... A odkazy pak tvori treba text.php?id=52 ... a vyberu radek s ID = 52. (to uz zalezi na implementaci ve scriptu). Tady ma sloupec Id smysl.

Doporucuju si najit nejake clanky o primarnich klicich (onen sloupec id) a podobne.
Hugo
Profil
Navíc vyhledávání čísel je rychlejší než prohledávání řetězců (které jsou IMHO pro primární klíč dost nevhodné).
taurendilek
Profil *
Ok docela logicke.dik
koudi
Profil
>proc se vlastne vklada id?vzdycky se stejne odkazujes na name ne?teda pls vysvetli
jako jednoznačný identifikátor nepoužívám name, ale Id, je to jistější - viz juneau.

>Autoincrement je AUTO - tzn. hodnotu nevkladate, vklada se sama vzdy o jednicku vetsi. Leo
Já vím :). Šlo mi o to, jestli tu hodnotu, kterou mi dá autoincrement mohu zároveň vložit ještě do dalšího sloupce.


Takže konkrétně k čemu to chci: Dělám upload dokumentů - info o nich sou v db. Chci jednak aby se název souboru upravil tak, aby tam nebyly mezery, diakritika apod. - to už mam ošetřený. Taky ale chci, aby se mi k názvu na začátek přidalo id co má ten soubor v tabulce - kdyby tam nějakej blbec nahrál sobor s názvem, co už tam je. Zajímalo mě, jestli to jde nějak rovnou v jednom sql dotazu.
Zatim to řešim takhle
-upload
-vložit do db
-mysql_insert_id() -> nový název
-move_upload_file()
-UPDATE v sql
Hugo
Profil
Toto řeším tak, že když najdu dva shodné soubory, tak k názvu souboru přilepím hash, který je generovaný např. pomocí aktuálního času.
koudi
Profil
Hugo
Jo, to je taky docela dobrej způsob. Nicméně pro uživatele co si to pak stáhne to bude takový divný. Leda bych to pak nelinkoval přímo, ale přes nějakej další skript, kterej by tomu dal přijatelnější název. Ale do toho se mi moc nechce.
Hugo
Profil
Ja jsem se s žádnou stížností od uživatelů nesetkal. A to občas spolupracuji s pěknýma lamama.

P.S.:
Univerzální reakce je: To se tam někde přibalí po cestě.
Leo
Profil
"Šlo mi o to, jestli tu hodnotu, kterou mi dá autoincrement mohu zároveň vložit ještě do dalšího sloupce. "

A co vas vede k tomu mit v databazi ve dvou sloupcich identicka data? Leo
koudi
Profil
Leo
Nejde o přesně identická data.
Jde o to, že id by bylo třeba 5 a FileName by bylo 5-sablona-noveho-dokumenta.doc (třeba). Jak jsem psal výše - kvůli jednoznačnější identifikaci souborů na disku.
medden
Profil *
Tak keď budeš chcieť čítať ten súbor alebo čo s ním, tak si z databáze zoberieš stĺpec id aj filename a potom v aplikacii sa to id dá pred samotný súbor, teda niečo ako: dirname($path).'/'.$id.'-'.basename($path)
Aj keď uznávam, že to vyzerá trochu menej elegantne ako to, čo chceš spraviť ty ;-)
sinu
Profil *
jde nejak udelat aby auto_increment pridal cislo o jedna vetší a zároven treba nejaky statický text? jako treba 5zaznam, 6zaznam ...
Hugo
Profil
sinu

IMHO ne
Toto téma je uzamčeno. Odpověď nelze zaslat.