jvc1986 Skrevet 27. desember 2011 Del Skrevet 27. desember 2011 Jeg har et felt som skal inneholde flere navn, adskilt med f.eks |, er det noen mulighet for å lage en UPDATE query som kun oppdaterer feltet så lenge navnet ikke finnes i feltet fra før? SEr for meg noe slikt: $navn = $_POST['navn']; $id = $_POST['id']; $sql = "UPDATE database SET navn = CONCAT_WS('|', navn, '$navn') WHERE id = $id IF NOT EXISTS" Lenke til kommentar
Thomas. Skrevet 27. desember 2011 Del Skrevet 27. desember 2011 Tja, du kunne prøvd med LIKE funksjonen. http://www.w3schools...ql/sql_like.asp Noe sånt: UPDATE database SET navn = $navn WHERE navn NOT LIKE '%$navn%' AND id = $id Eller, så kan du hente ut navn fra raden hvor id = $id og bruke explode('|') og loope igjennom og sjekke om $navn finnes før du oppdaterer. Lenke til kommentar
jvc1986 Skrevet 27. desember 2011 Forfatter Del Skrevet 27. desember 2011 LIKE NOT virket fint, takk Lenke til kommentar
JohndoeMAKT Skrevet 27. desember 2011 Del Skrevet 27. desember 2011 Det der vil ikke fungere, et søk på John vil treffe Johnny. Du kan korrigere det på diverse måter, men jeg syntes du heller bør ha tre tabeller, en med navn, en med "hovedraden" eller hva du vil kalle den, og en linktabell. klasse: { id: int, pk } navn: { id: int, pk, navn: string } klasse_navn: { klasse_id: int, pk navn_id: int, pk } Da blir spørringen noe som dette: INSERT IGNORE INTO klasse_navn(klasse_id, navn_id) VALUES (1,1); Ved å ha PK på begge felt og bruke IGNORE sørger du for at du ikke får duplikater. Lenke til kommentar
Thomas. Skrevet 27. desember 2011 Del Skrevet 27. desember 2011 Det der vil ikke fungere, et søk på John vil treffe Johnny. Du kan korrigere det på diverse måter, men jeg syntes du heller bør ha tre tabeller, en med navn, en med "hovedraden" eller hva du vil kalle den, og en linktabell. Nå har han jo WHERE id = $id som minker muligheten for det betraktelig. Men muligheten er jo der, men veldig liten jvc1986, du bør vurdere JohndoeMAKT sin løsning. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå