$v)
{
if (array_search($k, $key) == "PRIMARY KEY")
$debut = "
$k pour la table $nom
";
else
{
ereg("^ *([A-Za-z]+) *(\(([^)]+)\))?(.*DEFAULT *('.*'))?", $v, $m);
$type = $m[1];
$s = ($m[5] ? " value=$m[5] " : '');
$t = $m[3];
if ($m[2])
{
if (is_numeric($t)) {
if ($t <= 32)
$s .= " sizemax='$t' size='" . ($t * 2) . "'";
else $type = 'BLOB';
}
else {ereg("^ *'?(.*[^'])'? *$", $t, $m2); $t = $m2[1];}
}
switch (strtoupper($type))
{
case INT:
case INTEGER:
case BIGINT:
case CHAR:
case VARCHAR:
case TINYTEXT:
case TINYBLOB:
$s = " | \n";
break;
case ENUM:
$s = " | \n";
break;
case DATETIME:
$s = '';
$hiddens .= "\n";
break;
case TIMESTAMP:
$s = '';
break;
case LONGBLOB:
$s = " | \n";
break;
default:
$t = floor($t / 64)+1;
$s = " | \n"; break;
}
if ($s)
$total .= "| $k | \n$s
\n";
}
}
return
"";
}
function table_extra_post($nom)
{
global $HTTP_POST_VARS;
foreach ($HTTP_POST_VARS as $k => $v)
{ if ($v && ($v != 'NOW()')) $v = "'" . addslashes($v) . "'";
if ($v)
{ $n[] = $k; $i[] = $v;}
}
$r = "INSERT INTO " . $GLOBALS['table_prefix'] . '_' . $nom .
'(' . join(', ', $n) . ") VALUES (" . join(', ', $i) . ")";
// echo $r;
if (! spip_query($r))
return "Echec de l'insertion $r";
else
return "Insertion sous le numero: " . mysql_insert_id();
}
if (!($table = $GLOBALS['HTTP_GET_VARS']['table'])) {
$table = $_GET['table'];
}
if (!($file = $GLOBALS['HTTP_GET_VARS']['file'])) {
$file = $_GET['file'];
}
if (!($mode = $GLOBALS['HTTP_GET_VARS']['mode'])) {
$mode = $_GET['mode'];
}
if (!$file) $file = $table;
if ($file && file_exists($file . '.php')) include($file . '.php');
else if (file_exists($file . '.php3')) include($file . '.php3');
$description = $GLOBALS['tables_principales'][$table];
$field = $description['field'];
$key = $description['key'];
if ($mode)
echo "";
else
{
debut_page('tablextra');
debut_grand_cadre();
fin_grand_cadre();
debut_gauche();
debut_droite();
debut_cadre_formulaire();
}
if (!($field && $key))
{echo "Le paramètre table (valeur: '" .
$table .
"') n'indique pas une table SQL " .
(!$file ? '' : " décrite dans le fichier $file");
}
else
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
echo table_extra_post($table);
else
{
echo table_extra_get($table, $field, $key, $file);
}
}
if ($mode)
{
fin_cadre_formulaire();
fin_page();
}
else "";
?>