Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /sda/1/1/prevalet/lib/plugins/importoldindex/action.php on line 8
Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /sda/1/1/prevalet/lib/plugins/importoldchangelog/action.php on line 157
Deprecated: Assigning the return value of new by reference is deprecated in /sda/1/1/prevalet/inc/parserutils.php on line 205
Deprecated: Assigning the return value of new by reference is deprecated in /sda/1/1/prevalet/inc/parserutils.php on line 208
Deprecated: Assigning the return value of new by reference is deprecated in /sda/1/1/prevalet/inc/parserutils.php on line 389
Deprecated: Assigning the return value of new by reference is deprecated in /sda/1/1/prevalet/inc/parserutils.php on line 530
Strict Standards: Declaration of cache_instructions::retrieveCache() should be compatible with cache::retrieveCache($clean = true) in /sda/1/1/prevalet/inc/cache.php on line 291
Deprecated: Function split() is deprecated in /sda/1/1/prevalet/inc/auth.php on line 154
Warning: Cannot modify header information - headers already sent by (output started at /sda/1/1/prevalet/lib/plugins/importoldindex/action.php:8) in /sda/1/1/prevalet/inc/auth.php on line 244
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /sda/1/1/prevalet/inc/auth.php on line 456
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /sda/1/1/prevalet/inc/auth.php on line 456
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /sda/1/1/prevalet/inc/auth.php on line 453
Strict Standards: Only variables should be passed by reference in /sda/1/1/prevalet/doku.php on line 71
Warning: Cannot modify header information - headers already sent by (output started at /sda/1/1/prevalet/lib/plugins/importoldindex/action.php:8) in /sda/1/1/prevalet/inc/actions.php on line 361
Il existe une possibilité de définir une expression SQL qui doit être appliqué au domaine particulier lors de la lecture ou de l'écriture dans la base de données. C'est très utile lorsque vous voulez interpréter le le contenu du champ d'une manière différente de celle qui est stockée dans la base de données. Pour être plus clair, voir les exemples suivants.\\
\\
**Exemple 4-34. Lire des expressions SQL**\\
\\
$opts[fdd][surname][sql] = CONCAT(surname, , , firstname);\\
$opts[fdd][title][sql] = IF(TRIM(title) != "", title, title2);\\
\\
Le premier exemple joint (concatenne) le champ nom et prénom. Parce que cela se fait au niveau de la base de données, le tri et la recherche (la page de filtrage dans le tableau) sur ce champ sera fait correctement.
De même, dans le deuxième exemple, le champ title2 sera utilisé si le titre est vide. Dans cette manière vous pouvez définir une chaîne statique, qui pout être utilisé dans le cas où un champ est vide. Il suffit juste de substituer une chaîne à guillemets à la place de title2.\\
\\
De même, vous pouvez utiliser des expression SQL pour le stockage des données dans la base de données.\\
\\
**Exemple 4-35. Ecrire des expressions SQL**\\
\\
$opts[fdd][surname][sqlw] = UPPER($val_qas);\\
$opts[fdd][title][sqlw] = TRIM("$val_as");\\
\\
Le premier exemple ci-dessus passe le contenu du champ en majuscules lors du stockage dans la base de données terrain. La seconde supprime tous les espaces autour titre avant de l'écrire à la base de données.\\
\\
Comme un espace réservé pour le champ de contenu, il ya trois variables disponibles.\\
\\
$val --valeur du champ\\
$val_as --valeur avec la fonction addslashes() est appliquée\\
$val_qas --identique à $ val_as avec les guillemets autour\\
\\
Si $val est some"nice"thing, alors $val_as devient somme\"nice\"thing et $ val_qas devient "some\"nice\"thing". Vous devez utiliser correctement ces variables dans vos expressions [sqlw], sinon une erreur d'analyse MySQL pourrait se produire. Nous vous recommandons d'utiliser la variable $val_qas à chaque fois que cela est possible, car il est le plus sûr.\\
\\
Un usage très pratique et utile est l'usage de l'option [sqlw] qui demande explicitement à phpMyEdit de stocker une valeur NULL au lieu d'une chaîne vide pour la colonne particulière. Il existe une différence entre une valeur chaine vide et un NULL. Beaucoup de gens n'aiment pas vraiment les chaînes vides dans leurs tableaux, ils ont donc maintenant possible de les changer pour NULL lorsque l'utilisateur entre tout simplement rien en forme champ de saisie.\\
\\
**Exemple 4-36. Stocker un NULL au lieu d'une chaîne vide**\\
\\
$opts[fdd][col_name][sqlw] = IF($val_qas = "", NULL, $val_qas);\\
\\
Un autre exemple de l'usage de [sqlw] est l'utilisation des mots de passe des utilisateurs. C'est une bonne idée pour l'utilisateur d'avoir un mot de passe en utilisant certaines fonctions de hachage bien connues avant un enregistrement dans la base de données. La déclaration suivante est utilisée dans le but d'éviter la répétition de hachage, d'une chaine déjà haché. Cela signifie que si la valeur col_name n'a pas été changé, alors il ne faut pas lui appliquer MD5(). Si la valeur col_name été changé, alors il applique la fonction MD5().\\
\\
**Exemple 4-37. Conserver le mot de passe de hachage MD5**\\
\\
$opts[fdd][col_name][sqlw] = IF(col_name = $val_qas, $val_qas, MD5($val_qas));\\
\\