Basiquement une requête SQL de mise à jour d'une valeur cela donne ceci :
UPDATE `NomBaseDeDonnees`.`NomTable` set `NomChamp01` = 'MaNouvelleValeur' where `NomTable`.`NomChampClePrimaire` = 'identifiant unique' LIMIT 1;
Lien vers le fichier : cliquez ici
Et voici un exemple complet en PHP de mise à jour.
On a une première requête 'Select' pour sélectionner les lignes à traiter.
De là on crée les requêtes de mises à jour et on les stocke dans un tableau $ListeRequetes
Enfin on exécute toutes les requêtes de mise à jour qui sont dans le tableau $ListeRequetes
<!DOCTYPE html>
<HTML lang="fr">
<HEAD>
<meta charset="utf-8" />
<LINK rel="stylesheet" type="text/css" href="../style.css">
<title>Titre du site</title>
<meta name="Description" content="Description du site"/>
<meta name="author" content="Bob l'éponge" />
<meta name="Keywords" content="a, b, c"/>
</HEAD>
<BODY>
<?php
//Tiré de http://www.siteduzero.com/informatique/tutoriels/les-magic-quotes-ou-guillemets-magiques/desactiver-les-magic-quotes
//Cette option pour virer les magic quotes est importante lorsque l'on poste récupère des valeurs de champs Input et textarea faute de quoi par exemple C'est deviendra C\'est
function stripslashes_r($var) // Fonction qui supprime l'effet des magic quotes
{
if(is_array($var)) // Si la variable passée en argument est un array, on appelle la fonction stripslashes_r dessus
{
return array_map('stripslashes_r', $var);
}
else // Sinon, un simple stripslashes suffit
{
return stripslashes($var);
}
}
if(get_magic_quotes_gpc()) // Si les magic quotes sont activés, on les désactive avec notre super fonction ! ;)
{
$_GET = stripslashes_r($_GET);
$_POST = stripslashes_r($_POST);
$_COOKIE = stripslashes_r($_COOKIE);
}
//Définition des constantes
define("SQLServerName","NomServeurMySQL");
define("sqldbname","NomBaseDeDonnees");
define("sqllogin","LoginSQL");
define("sqlpass","MotDePasseSQL");
$MaConnection = mysql_connect(constant('SQLServerName'),constant('sqllogin'),constant('sqlpass')); //Création de la connexion à la base de données
if ($MaConnection) {
mysql_select_db(constant('sqldbname'), $MaConnection); //Sélection de la base
mysql_query("SET NAMES UTF8"); //On utilise le codage UTF8
//Requete de sélection pour récupérer les lignes à traiter. Par exemple ici on prend des lignes ou un champ est vide (Null)
$sqlrequest = "SELECT `".constant('sqldbname')."`.`NomTable`.`NomChampAvecValeurUnique`, `NomChampQuiPeutEtreVide` FROM `NomTable` WHERE `NomChampQuiPeutEtreVide` Is NULL;";
echo "Requete pour sélectionner les lignes à mettre à jour : ".$sqlrequest."</br>\n";
$Resultat = mysql_query($sqlrequest, $MaConnection);
if (!$Resultat) {die('Erreur sur la requête : ' . mysql_error());}
else{ // Si la requête est bien passée
$num_rows = mysql_num_rows($Resultat); //Récupération du nombre de lignes en réponse
echo "Nombre de lignes à traiter : $num_rows</br>\n";
if ($num_rows > 0){
$i=0;
while ($MaLigne=mysql_fetch_array($Resultat, MYSQL_ASSOC)){ //Passage en revue de tous les résultats
$ValeurChampUniquePourClePrimaire = $MaLigne['NomChampAvecValeurUnique'];
$ValeurAMEttre = "Mise via update"; //Valeur à indiquer
//echo "MaVariable : $ValeurAMEttre</br>\n";
//mysql_real_escape_string($ValeurChampUniquePourClePrimaire, $MaConnection);
$ValeurChampUniquePourClePrimaire = addslashes($ValeurChampUniquePourClePrimaire); //Permet de ne pas bugger si la chaine contient des caractères à la con comme des guillemets et autres
//Mise au point de la requête de mise à jour
$sqlrequestupdate = "UPDATE `".constant('sqldbname')."`.`NomTable` set `NomChampQuiPeutEtreVide` = '$ValeurAMEttre' where `NomTable`.`NomChampAvecValeurUnique` = '$ValeurChampUniquePourClePrimaire' LIMIT 1;";
echo "sqlrequestupdate : $sqlrequestupdate</br>\n";
$ListeRequetes[$i]=$sqlrequestupdate; // on stocke la requête dans un tableau
$i++;
}
}
//On joue toutes les requêtes de maj pour les types
$CompteurFile=0;
while ( $CompteurFile < count($ListeRequetes))
{
$sqlrequestupdate = $ListeRequetes[$CompteurFile];
echo "$sqlrequestupdate<br />\n";
$Resultat = mysql_query($sqlrequestupdate, $MaConnection);
echo "Resultat : $Resultat<br />\n";
$CompteurFile++;
}
}
mysql_close($MaConnection);
}
else{
die('Connexion impossible : ' . mysql_error());
}
?>
</BODY>
</HTML>
Lien vers le fichier : cliquez ici
Article(s) précédent(s)