1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
<form method='POST' name='enreg données' ACTION='enregform.php'>
<?php
//connexion a la base
$hostname = "localhost";
$database = "calendrier";
$username = "root";
$password = "";
mysql_pconnect($hostname, $username, $password) or die(mysql_error());
@mysql_select_db($database) or die("Impossible de se connecter");
//recupere les information sur la table choisie
$req="SHOW FULL COLUMNS FROM rdv";
$result=mysql_query($req);
$ligne=mysql_fetch_array($result);
$i=0;
while ($ligne)
{
//enregistre dans un tableau nom de l'attribut, son type et si c'est une clé primaire
$tab[$i][0]=$ligne['Field'];
$tab[$i][1]=$ligne['Type'];
$tab[$i][2]=$ligne['Key'];
$ligne=mysql_fetch_array($result);
$i++;
}
$taille=count($tab);
for ($i=0;$i<$taille;$i++)
{
// switch permettant de creer un input different selon le type de données
switch ($tab[$i][1])
{
//si l'attribut est de type varchar, zone de saisie de texte
case (eregi("^varchar",$tab[$i][1])==true) :
echo $tab[$i][0]." <input type='text' name='".$tab[$i][0]."' cols='40'></textarea><br>";
break;
//si l'attribut est de type set, checkbox
case (eregi("^set",$tab[$i][1])==true) :
echo "<table border=1><tr><td>";
//on creer un tableau contenant les differentes valeurs que peut prendre l'attribut
if (eregi('^(set)\((.+)\)$', $tab[$i][1], $tmp))
{
$tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
$valeurs[$tab[$i][1]]=explode(",",$tmp[2]);
echo $tab[$i][0]." :<br>";
foreach($valeurs[$tab[$i][1]] as $j => $valeur)
{
$valeurs[$tab[$i][1]][$j]=substr($valeur,1,strlen($valeur)-2);
echo $valeurs[$tab[$i][1]][$j]."<input type='checkbox' name='".$valeurs[$tab[$i][1]][$j]."'><br>";;
}
}
echo "</td></tr></table>";
break;
//si l'attribut est de type enum, boutons radio ou select
case (eregi("^enum",$tab[$i][1])==true) :
echo "<table border=1><tr><td>";
//on creer un tableau contenant les differentes valeurs que peut prendre l'attribut
if (eregi('^(enum)\((.+)\)$', $tab[$i][1], $tmp))
{
$tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
$valeurs[$tab[$i][1]]=explode(",",$tmp[2]);
echo $tab[$i][0]." :<br>";
//select si plus de 3 choix et radio si moins
if ((count($valeurs[$tab[$i][1]]))>3)
{
echo "<select name=".$tab[$i][0].">";
foreach($valeurs[$tab[$i][1]] as $j => $valeur)
{
$valeurs[$tab[$i][1]][$j]=substr($valeur,1,strlen($valeur)-2);
echo "<option value=".$valeurs[$tab[$i][1]][$j].">".$valeurs[$tab[$i][1]][$j]."</option>";
}
echo "</select><br>";
}
else
{
foreach($valeurs[$tab[$i][1]] as $j => $valeur)
{
$valeurs[$tab[$i][1]][$j]=substr($valeur,1,strlen($valeur)-2);
echo "<input type=radio name=".$tab[$i][0]." value=".$valeurs[$tab[$i][1]][$j].">".$valeurs[$tab[$i][1]][$j]."<br>";
}
}
}
echo "</td></tr></table>";
break;
//si l'attribut est de type int, zone de saisie de texte
case (eregi("int",$tab[$i][1])==true) :
echo $tab[$i][0]." <input type='text' name='".$tab[$i][0]."' cols='20'></textarea><br>";
break;
//si l'attribut est de type text, zone de saisie de texte importante
case (eregi("text",$tab[$i][1])==true) :
echo $tab[$i][0]." <textarea name='".$tab[$i][0]."' cols='50' row='6'></textarea><br>";
break;
//si l'attribut est de type int, zone de saisie de date
case (eregi("^date",$tab[$i][1])==true) :
break;
default :
echo $tab[$i][1]." defaut<br>";
break;
}
}
echo "<INPUT TYPE='submit' NAME='valider' VALUE='VALIDER'>";
echo "<INPUT TYPE='reset' VALUE='ANNULER'>";
?> |
Partager