Formulaire de modification BDD en PHP

Fermé
zeitoun69 Messages postés 57 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 27 juin 2013 - 24 juil. 2007 à 22:05
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 26 juil. 2007 à 22:59
Bonjour
j'ai fait un formulaire sous dreamweaver afin de modifier mes enregistrements via une page ADMIN,
le resultat du code de connexion a la base et de remplacement des données est ci dessous (un peu long je vous l'accorde)

la modification ne se fait pas et j'ai un message d'erreur sur la derniere ligne (header ...), quelqu'un peut il m'aiguller pour corriger ce code?

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

mysql_select_db($database_apartmentparis, $apartmentparis);
$query_liste = "SELECT locations.Id, locations.Nom, locations.prix FROM locations";
$liste = mysql_query($query_liste, $apartmentparis) or die(mysql_error());
$row_liste = mysql_fetch_assoc($liste);
$totalRows_liste = mysql_num_rows($liste);

$colname_ajout = "1";
if (isset($_GET['Id'])) {
$colname_ajout = (get_magic_quotes_gpc()) ? $_GET['Id'] : addslashes($_GET['Id']);
}
mysql_select_db($database_apartmentparis, $apartmentparis);
$query_ajout = sprintf("SELECT * FROM locations WHERE Id = '%s' ", $colname_ajout);
$ajout = mysql_query($query_ajout, $apartmentparis) or die(mysql_error());
$row_ajout = mysql_fetch_assoc($ajout);
$totalRows_ajout = mysql_num_rows($ajout);

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form5")) {
$updateSQL = sprintf("UPDATE locations SET Nom=%s, Capacite=%s, Ville=%s, TV=%s, MO=%s, Animaux=%s, draps=%s, serviettes=%s, menage=%s, nb_nuit_mini=%s, nb_nuit_maxi=%s, metre_carre=%s, nbchambres=%s, nbsalledebain=%s, nblitdouble=%s, nblitsimple=%s, canape2=%s, canape1=%s, chauffage=%s, cuisineequi=%s, frigo=%s, bouilloire=%s, Douche=%s, Baignoire=%s, sechelinge=%s, cable=%s, video=%s, internet=%s, hifi=%s, terrasse=%s, Airconditionne=%s, balcon=%s, ascenseur=%s, malaver=%s, aspirateur=%s, cafetiere=%s, lavevaissl=%s, ferarepass=%s, four=%s, grillepain=%s, fumer=%s, recevoirappel=%s, transportPublics=%s, adresse=%s, prix=%s, mini_day=%s, mini_week=%s WHERE Id=%s",
GetSQLValueString($_POST['Nom'], "text"),
GetSQLValueString($_POST['Capacite'], "int"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString(isset($_POST['TV']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($_POST['microondes']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($_POST['animaux']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($_POST['draps']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['serviettes']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['menage']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString($_POST['nbnuitmin'], "int"),
GetSQLValueString($_POST['nbnuitmax'], "int"),
GetSQLValueString($_POST['metrecarre'], "int"),
GetSQLValueString($_POST['nbchambre'], "int"),
GetSQLValueString($_POST['nbsalledebain'], "int"),
GetSQLValueString($_POST['nblitdouble'], "int"),
GetSQLValueString($_POST['nblitsimple'], "int"),
GetSQLValueString($_POST['nbcanapedouble'], "int"),
GetSQLValueString($_POST['nbcanapesimple'], "int"),
GetSQLValueString(isset($_POST['chauffage']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['cuisine']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['frigo']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['bouilloire']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Douche']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Baignoire']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['sechelinge']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['cable']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Video']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['Internet']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['hifi']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['terrasse']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['airconditionne']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['balcon']) ? "true" : "", "defined","1","0"),
GetSQLValueString($_POST['ascenseur']? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['malaver']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['aspirateur']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['cafetiere']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['lavevaisselle']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['ferarepasser']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['four']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['grillepain']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['fumer']) ? "true" : "", "defined","1","0"),
GetSQLValueString(isset($_POST['telephone']) ? "true" : "", "defined","1","0"),
GetSQLValueString($_POST['Transports'], "text"),
GetSQLValueString($_POST['Adresse'], "text"),
GetSQLValueString($_POST['prix'], "text"),
GetSQLValueString($_POST['Id2'], "text"),
GetSQLValueString($_POST['mini_day'], "text"),
GetSQLValueString($_POST['mini_week'], "text"));

mysql_select_db($database_apartmentparis, $apartmentparis);
$Result1 = mysql_query($updateSQL, $apartmentparis) or die(mysql_error());

$updateGoTo = "modif.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
?>
A voir également:

1 réponse

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
26 juil. 2007 à 22:59
Salut,


Pour la modification j'avais eu l'idée que tu n'entrais peut-être pas dans la condition où il fait l'update mais s'il te met une erreur à la ligne header c'est tu y entres. Tu peux peut-être commencer par désactiver la ligne header et mettre des instructions d'affichage un peu partout pour voir où il entre ou non. Du moins c'est de cette façon que je procède pour débugguer mes applications.

Sinon, toujours pour la modification, vérifie bien que le "WHERE Id=%s" mène bien à un identifiant existant dans la base de données => imprime aussi la variable censée remplacer le %s pour voir si c'est vraiment celle que tu attendais. Parce que là je vois que la dernière alimentation du sprintf se rapporte à
GetSQLValueString($_POST['mini_week'], "text")
alors que plus loin dans le sprintf tu t'attends à recevoir un autre argument (un certain identifiant). Donc c'est sûrement une inversion ou un oubli.

Dans le header je ne sais pas quel message d'erreur il met mais garde bien en tête que tu ne peux faire une redirection en PHP que si tu n'as envoyé aucun flux en sortie auparavant (aucune instruction d'affichage ne doit figurer avant, pas même un caractère espace si mes suvenirs sont bons). Si c'est ça, le message d'erreur que tu obtiens est normalement un truc qui ressemble à "headers already sent".

Voilà fais-nous savoir.
1