Bien, on va commencer avec le formulaire : la sélection par défaut ne peut pas fonctionner normalement comme je l'ai expliqué juste avant, il manque donc un paramètre, ce qui donne:
<form action="mj_action_terres.php">
<b>Indiquez pour chaque produit un gain par are :<br/>
<?
function choixParDefaut($nombre, $liste) // Création de la fonction
{
$par_defaut = null; // On crée une variable (vide par défaut) que l'on retournera à la fin
if (isset($_POST[$liste])) // Si le visiteur a choisi un nombre
{
if ($_POST[$liste] == $nombre) // Si ce nombre correspond au nombre que l'on est en train de traiter
{
$par_defaut=' selected="selected"'; // Alors on modifie la variable que l'on retournera et on lui met selected
}
}
return $par_defaut;
}
?>
Quota blé :
<select name="nbble" >
<option value=""></option>
<option value="1"<? echo choixParDefaut('1', "nbble"); ?>>1</option>
<option value="1.1"<? echo choixParDefaut('1.1', "nbble"); ?>>1.1</option>
<option value="1.2"<? echo choixParDefaut('1.2', "nbble"); ?>>1.2</option>
<option value="1.3"<? echo choixParDefaut('1.3', "nbble"); ?>>1.3</option>
<option value="1.4"<? echo choixParDefaut('1.4', "nbble"); ?>>1.4</option>
<option value="1.5"<? echo choixParDefaut('1.5', "nbble"); ?>>1.5</option>
<option value="1.6"<? echo choixParDefaut('1.6', "nbble"); ?>>1.6</option>
<option value="1.7"<? echo choixParDefaut('1.7', "nbble"); ?>>1.7</option>
<option value="1.8"<? echo choixParDefaut('1.8', "nbble"); ?>>1.8</option>
<option value="1.9"<? echo choixParDefaut('1.9', "nbble"); ?>>1.9</option>
<option value="2"<? echo choixParDefaut('2', "nbble"); ?>>2</option>
<option value="2.1"<? echo choixParDefaut('2.1', "nbble"); ?>>2.1</option>
<option value="2.2"<? echo choixParDefaut('2.2', "nbble"); ?>>2.2</option>
<option value="2.3"<? echo choixParDefaut('2.3', "nbble"); ?>>2.3</option>
<option value="2.4"<? echo choixParDefaut('2.4', "nbble"); ?>>2.4</option>
<option value="2.5"<? echo choixParDefaut('2.5', "nbble"); ?>>2.5</option>
</select>
<br/>
Quota chasse :
<select name="nbchasse" >
<option value=""></option>
<option value="1"<? echo choixParDefaut('1', "nbchasse"); ?>>1</option>
<option value="1.1"<? echo choixParDefaut('1.1', "nbchasse"); ?>>1.1</option>
<option value="1.2"<? echo choixParDefaut('1.2', "nbchasse"); ?>>1.2</option>
<option value="1.3"<? echo choixParDefaut('1.3', "nbchasse"); ?>>1.3</option>
<option value="1.4"<? echo choixParDefaut('1.4', "nbchasse"); ?>>1.4</option>
<option value="1.5"<? echo choixParDefaut('1.5', "nbchasse"); ?>>1.5</option>
<option value="1.6"<? echo choixParDefaut('1.6', "nbchasse"); ?>>1.6</option>
<option value="1.7"<? echo choixParDefaut('1.7', "nbchasse"); ?>>1.7</option>
<option value="1.8"<? echo choixParDefaut('1.8', "nbchasse"); ?>>1.8</option>
<option value="1.9"<? echo choixParDefaut('1.9', "nbchasse"); ?>>1.9</option>
<option value="2"<? echo choixParDefaut('2', "nbchasse"); ?>>2</option>
<option value="2.1"<? echo choixParDefaut('2.1', "nbchasse"); ?>>2.1</option>
<option value="2.2"<? echo choixParDefaut('2.2', "nbchasse"); ?>>2.2</option>
<option value="2.3"<? echo choixParDefaut('2.3', "nbchasse"); ?>>2.3</option>
<option value="2.4"<? echo choixParDefaut('2.4', "nbchasse"); ?>>2.4</option>
<option value="2.5"<? echo choixParDefaut('2.5', "nbchasse"); ?>>2.5</option>
</select>
<br/>
Quota pêche :
<select name="nbpeche" >
<option value=""></option>
<option value="1"<? echo choixParDefaut('1', "nbpeche"); ?>>1</option>
<option value="1.1"<? echo choixParDefaut('1.1', "nbpeche"); ?>>1.1</option>
<option value="1.2"<? echo choixParDefaut('1.2', "nbpeche"); ?>>1.2</option>
<option value="1.3"<? echo choixParDefaut('1.3', "nbpeche"); ?>>1.3</option>
<option value="1.4"<? echo choixParDefaut('1.4', "nbpeche"); ?>>1.4</option>
<option value="1.5"<? echo choixParDefaut('1.5', "nbpeche"); ?>>1.5</option>
<option value="1.6"<? echo choixParDefaut('1.6', "nbpeche"); ?>>1.6</option>
<option value="1.7"<? echo choixParDefaut('1.7', "nbpeche"); ?>>1.7</option>
<option value="1.8"<? echo choixParDefaut('1.8', "nbpeche"); ?>>1.8</option>
<option value="1.9"<? echo choixParDefaut('1.9', "nbpeche"); ?>>1.9</option>
<option value="2"<? echo choixParDefaut('2', "nbpeche"); ?>>2</option>
<option value="2.1"<? echo choixParDefaut('2.1', "nbpeche"); ?>>2.1</option>
<option value="2.2"<? echo choixParDefaut('2.2', "nbpeche"); ?>>2.2</option>
<option value="2.3"<? echo choixParDefaut('2.3', "nbpeche"); ?>>2.3</option>
<option value="2.4"<? echo choixParDefaut('2.4', "nbpeche"); ?>>2.4</option>
<option value="2.5"<? echo choixParDefaut('2.5', "nbpeche"); ?>>2.5</option>
</select>
<br/>
Quota bois :
<select name="nbbois" >
<option value=""></option>
<option value="1"<? echo choixParDefaut('1', "nbbois"); ?>>1</option>
<option value="1.1"<? echo choixParDefaut('1.1', "nbbois"); ?>>1.1</option>
<option value="1.2"<? echo choixParDefaut('1.2', "nbbois"); ?>>1.2</option>
<option value="1.3"<? echo choixParDefaut('1.3', "nbbois"); ?>>1.3</option>
<option value="1.4"<? echo choixParDefaut('1.4', "nbbois"); ?>>1.4</option>
<option value="1.5"<? echo choixParDefaut('1.5', "nbbois"); ?>>1.5</option>
<option value="1.6"<? echo choixParDefaut('1.6', "nbbois"); ?>>1.6</option>
<option value="1.7"<? echo choixParDefaut('1.7', "nbbois"); ?>>1.7</option>
<option value="1.8"<? echo choixParDefaut('1.8', "nbbois"); ?>>1.8</option>
<option value="1.9"<? echo choixParDefaut('1.9', "nbbois"); ?>>1.9</option>
<option value="2"<? echo choixParDefaut('2', "nbbois"); ?>>2</option>
<option value="2.1"<? echo choixParDefaut('2.1', "nbbois"); ?>>2.1</option>
<option value="2.2"<? echo choixParDefaut('2.2', "nbbois"); ?>>2.2</option>
<option value="2.3"<? echo choixParDefaut('2.3', "nbbois"); ?>>2.3</option>
<option value="2.4"<? echo choixParDefaut('2.4', "nbbois"); ?>>2.4</option>
<option value="2.5"<? echo choixParDefaut('2.5', "nbbois"); ?>>2.5</option>
</select>
<br/>
Quota cueillette :
<select name="nbcueillette" >
<option value=""></option>
<option value="1"<? echo choixParDefaut('1', "nbcueillette"); ?>>1</option>
<option value="1.1"<? echo choixParDefaut('1.1', "nbcueillette"); ?>>1.1</option>
<option value="1.2"<? echo choixParDefaut('1.2', "nbcueillette"); ?>>1.2</option>
<option value="1.3"<? echo choixParDefaut('1.3', "nbcueillette"); ?>>1.3</option>
<option value="1.4"<? echo choixParDefaut('1.4', "nbcueillette"); ?>>1.4</option>
<option value="1.5"<? echo choixParDefaut('1.5', "nbcueillette"); ?>>1.5</option>
<option value="1.6"<? echo choixParDefaut('1.6', "nbcueillette"); ?>>1.6</option>
<option value="1.7"<? echo choixParDefaut('1.7', "nbcueillette"); ?>>1.7</option>
<option value="1.8"<? echo choixParDefaut('1.8', "nbcueillette"); ?>>1.8</option>
<option value="1.9"<? echo choixParDefaut('1.9', "nbcueillette"); ?>>1.9</option>
<option value="2"<? echo choixParDefaut('2', "nbcueillette"); ?>>2</option>
<option value="2.1"<? echo choixParDefaut('2.1', "nbcueillette"); ?>>2.1</option>
<option value="2.2"<? echo choixParDefaut('2.2', "nbcueillette"); ?>>2.2</option>
<option value="2.3"<? echo choixParDefaut('2.3', "nbcueillette"); ?>>2.3</option>
<option value="2.4"<? echo choixParDefaut('2.4', "nbcueillette"); ?>>2.4</option>
<option value="2.5"<? echo choixParDefaut('2.5', "nbcueillette"); ?>>2.5</option>
</select>
<input type="submit" value="LE SAMEDI, achat par HOCHELAGA des produits des colons provenant des terres." />
</form>
Là, ce sera plus logique et il n'y aura pas de conflit.
Le problème des [] maintenant. ça indique un tableau. Associatif ou indexé. Pour mémoire, un tableau indexé a pour index des nombres entiers, un tableau associatif a pour index des noms :
// Tableau indexé:
$tab[0] = "x";
$tab[1] = "y";
//etc...
// Tableau associatif;
$tab['nom_1'] = "x";
$tab['autre_nom'] = "y";
//...
La variable super-globale $_POST par exemple un tableau assoicatif et on cherche des index nommés.
En revanche, mysql_fetch_rows retourne un tableau indexé donc les index vont de 0 à n, 0 étant l'index pour le premier champ recherché dans la requête, 1 pour le second, etc...