La communauté ALL HTML c'est 58666 membres à ce jour dont 0 inscrits aujourd'hui et 38 depuis une semaine.
Cet article est actuellement publié sur le site.
Article publié le lundi 04 septembre 2006 par FabHacker.
Cet article est classé dans les catégories « PHP, SQL »
Il peut être utile de travailler avec des variables de tout type en les enregistrant dans la base de donnée, et cela pour plusieurs raisons.
CREATE TABLE `variables` (
`varid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nom` VARCHAR(64) NOT NULL,
`type` VARCHAR(8) NOT NULL,
`tinyint` TINYINT NOT NULL,
`smallint` SMALLINT NOT NULL,
`mediumint` MEDIUMINT NOT NULL,
`int` INT NOT NULL,
`bigint` BIGINT NOT NULL,
`float` FLOAT NOT NULL,
`double` DOUBLE NOT NULL,
`date` DATE NOT NULL,
`varchar` VARCHAR(255) NOT NULL,
`tinytxt` TINYTEXT NOT NULL,
`text` TEXT NOT NULL,
`mediumtext` MEDIUMTEXT NOT NULL,
`longtext` LONGTEXT NOT NULL,
UNIQUE (`nom`)
);<?php
// Fonction booléenne indiquant si la variable $var_nom existe.
function existe_var($var_nom) {
// Recherche dans la base de donnée
$sql = "SELECT varid FROM variables WHERE `nom` = '$var_nom'";
$resultat = mysql_query($sql);
if(!mysql_num_rows($resultat)) return false;
else return true;
}
// Retourne la valeur de la variable $var_nom de type $var_type.
// Si elle n'existe pas, cette fonction retourne false.
function aquerir_var($var_nom,$var_type) {
// Recherche dans la base de donnée
$sql = "SELECT `$var_type` FROM variables WHERE nom = '$var_nom'";
$resultat = mysql_query($sql);
if(!mysql_num_rows($resultat)) return false;
// Retour de la valeur
$variable = mysql_fetch_array($resultat);
return $variable[$var_type];
}
// Attribue une valeur pour une variable.
// Si la variable existe déjà, la valeur sera mise à jour.
// La fonction retourne $var_valeur
function definir_var($var_nom,$var_type,$var_valeur) {
// Si la variable n'existe pas, on ajoute une ligne vide
if( !existe_var($var_nom) ) {
$sql = "INSERT INTO `variables` VALUES ('','$var_nom','$var_type','','','','','','','','','','','','','')";
$resultat = mysql_query($sql);
}
// Mise à jour de la valeur
$sql = "UPDATE `variables` SET `$var_type` = '$var_valeur' WHERE `nom` = '$var_nom'";
$resultat = mysql_query($sql);
// Renvoi de la valeur
return $var_valeur;
}
?><?php
include('bdd.php');
include('fct_variables.php');
// Définition d'un nombre entier
definir_var('nombre','int', 3105 );
// Aquisition et affichage du nombre
$nombre = aquerir_var('nombre','int');
print('<br />Nous avont ajouté <b>nombre</b> avec la valeur <b>' . $nombre . '</b>');
// Nouvelle valeur pour 'nombre'
$nombre = definir_var('nombre','int', 6756 );
print('<br />Désormais <b>nombre</b> vaut <b>' . $nombre . '</b>');
// On vérifie maintenant si une variable est dans la base.
// Si elle existe, on l'affiche, sinon on l'ajoute.
// Ce test est à titre EDUCATIF, il est inutile car definir_var() ajoute les variables automatiquement si elle ne sont pas attribuées.
// On donne un nom de variable dynamique
$test = 'entier_' . rand(1,5);
print('<br /><br />Notre variable dynamique est <b>' . $test . '</b>');
if( existe_var($test,'int') ) {
// La variable existe, l'afficher
$temp = aquerir_var($test,'int');
print('<br />La variable <b>' . $test . '</b> a pour valeur <b>' . $temp . '</b>');
} else {
// Sinon, on l'ajoute avec une valeur aléatoire
$valeur = rand(1,999);
$temp = definir_var($test,'int', $valeur );
print('<br />La variable <b>' . $test . '</b> à été ajoutée avec la valeur <b>' . $temp . '</b>');
}
?>