Kjapp og trygg hosting for Wordpress

INSERT INTO skal være unik

kongen

kongemedlem
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.

Hvordan gjøres dette med php/mysql?
 

complx

New Member
Dersom du ikke bruker Word Press og tenker å gjøre dette med regn PHP. vil jeg anbefale deg noe sånt som dette.

Sjekk først om det allerede eksisterer en rad i din DB med verdien "Kylling".

Kjør så igjennom en IF statment der du gir to mulig utvalg.

IF(Det er allerede kylling i dB){
Dersom det er "Kylling" i din DB, tar du å legger til +1 på verdien brukeren har skrevet til.

letteste måten er vell rett og sett og lagre verdien i en ny variable der du legger itl +1.

$item = $item . 1;

så kjører du denne variablen inn i din DB.

}ELSE{
INSERT INTO DB på vanlig måte.
}
 

quicktech

Medlem
IF(Det er allerede kylling i dB){
Dersom det er "Kylling" i din DB, tar du å legger til +1 på verdien brukeren har skrevet til.

letteste måten er vell rett og sett og lagre verdien i en ny variable der du legger itl +1.

$item = $item . 1;

så kjører du denne variablen inn i din DB.

}ELSE{
INSERT INTO DB på vanlig måte.
}

Det er nok ikke fullt så enkelt fordi det vil forårsake records som dette:

Kylling
Kylling1
Kylling11
Kylling111
 

complx

New Member
@Quicktech.

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. ;)
 

Pong

Jeg selger sʇɥƃıluʍop :)
Ser at referansen til WP's bibliotek ikke var helt rett, så jeg prøvde litt.
Hvis du foretar
Kode:
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 '-<et nummer>' bak, så må du øke dette nummeret; (int) str_replace( 'din tittel'+'-', '' ) gir deg dette nummeret.

Tror jeg.
 

kongen

kongemedlem
Her var det mange gode forslag. Takk skal dere ha :)

Tror kanskje jeg skal teste ut Wordpress sin kodesnutt først.
 
Topp