Skapa ett speciellt formulär för att ändra användarnamnet. På så sätt vet du att vanlig uppdatering inte kräver användarnamnskoll medan detta speciella gör det.
Hej, jag har kört fast rejält med en kontroll om ett användarnamn redan finns eller inte. Som det ser ut nu har jag en lista med användare och vill uppdatera användarnamnet på en utav dessa användare. Det ska då ske en kontroll om detta användarnamn finns eller inte. Finns det sedan tidigare så ska man få ett felmeddelande att det redan finns och att man måste välja ett annat, och finns det inte ska det bara uppdatera till det nya.
Det problemet har jag väl egentligen redan löst, men problemet som då uppstår är att den kontrollerar användarnamnet varje gång, även om man vara vill uppdatera e-postadressen t.ex. Sidan varnar då för att användarnamnet redan finns och det gör det ju, men det är inte det som ska uppdateras just nu så kontrollen behöver inte göras. Hur löser jag detta?
Som jag tänkte nu i klartext är följande:
OM man klickar på knappen uppdatera
TA fram användarnamnet för den aktuella användaren
OM det användarnamnet INTE är samma som redan används för aktuella användare fortsätt rakt ner. Om det inte stämmer, alltså att användarnamnet är samma, HOPPA vidare och uppdatera det som ska uppdateras
TA fram om det finns redan finns användare med det önskade användarnamnet
OM det INTE finns en användare med det önskade användarnamnet
UPPDATERA det som ska uppdateras
ANNARS
MEDDELA att det önskade användarnamnet redan finns
I kod har detta blivit följande:
if(isset($_POST['uppdatera'])){
$id=$_POST['id'];
$sql8="SELECT anvandarnamn FROM medlem WHERE medlemsnummer='$id'";
$aktuell_anvandare = mysql_query($sql8);
if($aktuell_anvandare != $_POST['anvandarnamn']){ //här kontrolleras om användarnamnet är samma eller inte
$sql7="SELECT COUNT(*) FROM medlem WHERE anvandarnamn='{$_POST['anvandarnamn']}'";
$result7 = mysql_query($sql7);
if(mysql_result($result7, 0) != 1) { //här kollar den om det finns någon användare med samma användarnamn som det önskade
mysql_query("UPDATE medlem SET anvandarnamn='{$_POST['anvandarnamn']}', fornamn='{$_POST['fornamn']}', efternamn='{$_POST['efternamn']}', gatuadress='{$_POST['adress']}', postnummer='{$_POST['postnummer']}', stad='{$_POST['stad']}', butik='{$_POST['butik']}', telefon1='{$_POST['telefon1']}', telefon2='{$_POST['telefon2']}', epost='{$_POST['epost']}', genre='{$_POST['genre']}' WHERE medlemsnummer='$id'");
}else{
$misslyckad="Uppdateringen misslyckades. Användarnamnet $aktuell_anvandare är redan upptaget.";
}
}else{ //hit hoppar den om det är samma användarnamn
mysql_query("UPDATE medlem SET anvandarnamn='{$_POST['anvandarnamn']}', fornamn='{$_POST['fornamn']}', efternamn='{$_POST['efternamn']}', gatuadress='{$_POST['adress']}', postnummer='{$_POST['postnummer']}', stad='{$_POST['stad']}', butik='{$_POST['butik']}', telefon1='{$_POST['telefon1']}', telefon2='{$_POST['telefon2']}', epost='{$_POST['epost']}', genre='{$_POST['genre']}' WHERE medlemsnummer='$id'");
}
}
Har suttit ett tag i natt med detta nu och skulle behöva hjälp :S