Hei,
olen tekemässä tuotekatalogia php:llä ja minulla on seuraava ongelma: kun lisään uuden tuotteen tietokantaan, haluaisin että tuotenro olisi automaattinen (tällä hetkellä joudun siis itse syöttämään tuotenumeron). Olen yrittänyt tehdä tätä niin että haen taulukon tunnus -kentästä suurimman luvun ja lisää siihen yhden jolloin saan uudelle lisättävälle tuotteelle uniikin tuotenumeron. Mutta jostain syystä en saa tätä toimimaan (ilmeisesti teen jonkin virheen). Millä tavalla toiminto pitäisi toteuttaa?
Kiitoksia vastauksista jo etukäteen.
Helpoimmalla pääsee, kun unohtaa purkkaamisen.
Jos käsitin oikein niin eikös tuo AUTO INCREMENT luo automaattisesti tuotenro vasta tuotteen tallentamisen jälkeen. Tarkoitus olisi että kun tuotteen lisäys -lomakkeessa on seuraavat kentät:
tuotenro
tuote
tietoja
hinta
Niin tuohon tuotenro:hon tulisi ennen tietokantaan tallentamista suurimmasta tuotenumerosta seuraava numero. Ja sitä voisi sitten vielä muokata jos haluaa.
Ja se ei siis käy, että tuotenumero luodaan vasta lisäyksen jälkeen, jos arvo on ollut tyhjä?
Mainitsemassasi tavassa olisi mahdollista, että jos jostain syystä ollaan lisäämässä kahta tuotetta samoihin aikoihin (esim. useampi ylläpitäjä), olisi hyvinkin todennäköistä, että tuotteilla tulisi samat tuotenumerot.
edit:
Eli kysymys kuuluu, pitääkö ylläpitäjän tietää tuotenumero jo (~ennen) tuotteen lisäysvaiheessa?
Nyt kun tarkemmin ajattelen niin ehkä tuo AUTO INCREMENT voisi olla toimiva sittenkin, eikä välttämättä siitä ole mitään haittaa vaikka tuo tuotenumero luotaisiin vasta sen jälkeen kun tietue on tallennettu kantaan.
muurikka kirjoitti:
Olen yrittänyt tehdä tätä niin että haen taulukon tunnus -kentästä suurimman luvun ja lisää siihen yhden
Onko tuotenumero INT-tyyppinen?
muurikka kirjoitti:
Jos käsitin oikein niin eikös tuo AUTO INCREMENT luo automaattisesti tuotenro vasta tuotteen tallentamisen jälkeen. Tarkoitus olisi että kun tuotteen lisäys -lomakkeessa on seuraavat kentät:
tuotenro
tuote
tietoja
hintaNiin tuohon tuotenro:hon tulisi ennen tietokantaan tallentamista suurimmasta tuotenumerosta seuraava numero. Ja sitä voisi sitten vielä muokata jos haluaa.
Aivan järkyttävä failaus kysyä käyttäjältä tuotenumeroa, jos se on tarkoitus luoda automaattisesti ja täysin käyttäjän syötteestä riippumatta tuotteen luomisen yhteydessä. Se on myös täysin hyödytöntä. Hyvin äkkiä päätyisit tilanteeseen, jossa tietokannasta alkaa löytyä samoja tuotetunnuksia eri tuotteilta, tai tilanteeseen jossa tuotteiden lisääminen vain maagisesti epäonnistuu, kun ID onkin jo käytetty.
The Alchemist kirjoitti:
Hyvin äkkiä päätyisit tilanteeseen, jossa tietokannasta alkaa löytyä samoja tuotetunnuksia eri tuotteilta, tai tilanteeseen jossa tuotteiden lisääminen vain maagisesti epäonnistuu, kun ID onkin jo käytetty.
No eihän se, että käyttäjä saa syöttää tuotetunnuksen millään tavalla ESTÄ varmistamatta ettei päällekkäisiä tule, esim. määrittämällä kenttä uniikiksi ja jos yritetään syöttää päällekkäistä tunnusta niin antaa käyttäjälle selkeäsanaista ilmoitusta ongelmasta.
Tapanani on aina antaa jonkinlainen use case -esimerkki, koska pelkkä fundamentalistinen "näin on" -höpöttely ei kerro yhtään mitään, vaikka nauttiikin suurta suosiota.
Itse ainakin olen huomannut käytännössä, että erittäin usein tuotteilla on ollut tuotetunnukset olemassa jo ennen (verkkokauppa)sovellusta, joten on enemmän sääntö kuin poikkeus, ettei pelkkään (verkkokauppa)sovelluksen numerointiin voi luottaa.
Se, onko sitten (verkkokauppa)sovelluksen tuotenumeroinnin lisäksi tuotteilla erillinen "valmistajan tuotenumero" on asia erikseen.
No, tuotenumeroillehan toki löytyy ziljoona erilaista tapaa tehdä.
Yksi vaihtoehto on tietysti se juokseva numero, mutta silloin se on puhtaasti tekninen eikä itsessään sano mitään kenellekään.
Valmistajien tuotekoodien käyttö on tietyillä aloilla ongelmallista (tietyillä aloilla kilpailevatkaan valmistajat ei tee päällekkäisiä tuotekoodeja)
Yksi tapa minkä olen nähnyt on että tuotekoodi on 123-Blaa jossa 123 on toimittajanumero ja Blaa on toimittajan tuotekoodi. Tästä on se etu, että jos toimittajan tuotekoodi kuvaa tuotetta jotenkin fiksusti, niin silloin omakin tuotekoodi kuvaa sen valmistajan osalta yhtä fiksusti.
The Alchemist kirjoitti:
Tapanani on aina antaa jonkinlainen use case -esimerkki
Mielestäni en kommentoinut sitä use-case osaa vaan sen jälkeen olevan osion. Eli mielestäni kuvaamasi use case (jonka älyttömyydestä en ole eri mieltä) ei oikein toteutettuna johda automaattisesti kuvaamaasi ongelmaan (lisäämisen mysteeriseen epäonnistumiseen)
Aihe on jo aika vanha, joten et voi enää vastata siihen.