Bon voila un gros Post pour vous expliquer mon soucis.
Je dois creer un ptit prog en PHP qui lorsqu'on lui donne une Table SQL genere automatiquement un formulaire de saisie de données, le soucis c'est que je n'arrive pas a envoyer les données sur une page pour qu'elles puissent etre ajoutée. voila le prog !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'>";
 
?>

Voila j'espere qu'avec tout ca on pourra m'aider, parce que la je galere mechament !

Edit: Resolu en utilisant une variable de session pour le tableau et en rajoutant "val"devant chaque nom de données a passer en post !