Hvis jeg setter inn data fra et skjemafelt til en database så må dataen som lagres bli unik.
Hvis jeg forsøker å legge inn “kylling” så går dette bra den første gangen, mens neste gang så må det lagres som “kylling-2” og deretter “kylling-3” osv.
DBMSen er ikke så smart, meg bekjent, så du ville måtte skrive litt kode for å få det til. Jeg ville kikket på WordPress sin kildekode; der ligger det en plass.
Hvorfor må det gjøres på denne måten? Kan du sende litt mer detaljer, gjerne litt kode, så kanskje noen hjelper til med en løsning som er bedre enn det du har tenkt på
Helt korrekt til vil bli som du har skrevet over. Men det var det enkleste jeg kom på i farta. Ikke helt opptimalt, men man får hvertfall unike verdier:)
Beste er vell å sjekke om det allerede står et tall bak “Kylling”, og deretter + på 1 til det tallet som allerede står der. Da vil man få
Kylling
Kylling1
Kylling2
osv.
Beste måten å gjøre dette på er vell å hente ut siste bokstav eller tall fra DB spørringen.
Bruk f.eks $checkString = substr(“Kylling”, -1); // Dette vil gi $checkStrin verdi g.
Deretter kan du jo sette opp en IF statment som sjekker at dersom $checkString returnerer en bokstav legger man til kun 1. Dersom $checkString returnerer et tall tar man dette tallet og plusser på 1.
Ser at referansen til WP’s bibliotek ikke var helt rett, så jeg prøvde litt.
Hvis du foretar
SELECT perma FROM tab WHERE perma REGEXP "^<dintittel>([-][0-9])?$" ORDER BY perma DESC
så får du en liste med permalenker.
Hvis den første i listen er likt din tittel, men med ‘-’ bak, så må du øke dette nummeret; (int) str_replace( ‘din tittel’+‘-’, ‘’ ) gir deg dette nummeret.