Dunbar,
J'ai essayé et j'arrive à bloquer la mise à jour lorsque l'utilisateur modifie son email (qui s'appelle "inscrit_email" dans la table) en prenant un email déjà utilisé (dans la table utilisateur qui s'appelle "eu_inscrit").
Le problème c'est que s'il ne modifie pas son adresse email... la mise à jour est bloquée car son email est déjà présent dans la table. La mise à jour d'un autre champ ne se fait pas, par exemple s'il veut changer son numéro de téléphone tout en gardant son adresse email (déjà enregistrée dans la table).
J'ai mis ci-dessous le code que tu m'as donné, que j'ai modifié en prenant les bons noms et que j'ai intégré dans le code de mise à jour de l'enregistrement (code généré par dreamweaver) :
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$email = (iSset($_POST['inscrit_email']) ? $_POST['inscrit_email'] : NULL);
$sql = " SELECT COUNT(*) AS resultat FROM eu_inscrit WHERE inscrit_email = '".$email."' ";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$result = mysql_fetch_assoc($req);
if($result['resultat'] == 0)
{
$updateSQL = sprintf("UPDATE eu_inscrit SET inscrit_nom=%s, inscrit_prenom=%s, inscrit_sexe=%s, inscrit_annee=%s, inscrit_email=%s, inscrit_mdp=%s, inscrit_pays=%s, inscrit_qualite=%s, inscrit_sport=%s, inscrit_activite1=%s, inscrit_activite2=%s, inscrit_activite3=%s, inscrit_activite4=%s, inscrit_tel=%s, inscrit_taille=%s WHERE inscrit_id=%s",
GetSQLValueString($_POST['inscrit_nom'], "text"),
GetSQLValueString($_POST['inscrit_prenom'], "text"),
GetSQLValueString($_POST['inscrit_sexe'], "text"),
GetSQLValueString($_POST['inscrit_annee'], "date"),
GetSQLValueString($_POST['inscrit_email'], "text"),
GetSQLValueString($_POST['inscrit_mdp'], "text"),
GetSQLValueString($_POST['inscrit_pays'], "int"),
GetSQLValueString($_POST['inscrit_qualite'], "int"),
GetSQLValueString($_POST['inscrit_sport'], "int"),
GetSQLValueString(isset($_POST['inscrit_activite1']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['inscrit_activite2']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['inscrit_activite3']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['inscrit_activite4']) ? "true" : "", "defined","1","0"),
GetSQLValueString($_POST['inscrit_telephone'], "text"),
GetSQLValueString($_POST['inscrit_taille'], "text"),
GetSQLValueString($_POST['inscrit_id'], "int"));
mysql_select_db($database_web1592_db1, $web1592_db1);
$Result1 = mysql_query($updateSQL, $web1592_db1) or die(mysql_error());
}
$updateGoTo = "p_all_prive.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
Comment faire pour permettre une mise à jour de l'enregistrement en conservant son adresse email ?
Merci pour ton aide.