Valeur envoyée dans URL toujorus égale à zéro

Bonjour,

Bonjour tout le monde,

J'ai un code qui devrait passer un entier à un script appelant.

Le problème est qu'il passe toujours zéro.

[quote]<lien>http://localhost/MettreAJour.php?NbLignes=0</lien>[/quote]

L'entier qui doit être envoyé est un compteur qui s'incrémente dans cette boucle :

[code]while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
[/code]

Je vous laisse l'entierté de mon code, cela sera sans doute plus claire :

[code]<?php

$compteur = 0;

$link = mysql_connect('localhost', 'root', 'mdp');
if(!$link)
{
echo 'Impossible de se connecter à MySQL';
exit;
}

// Rendre la base de données deliberation, la base courante
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected)
{
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}

echo '<form action="MettreAJour.php?NbLignes='.$compteur.'" method="post" name="frmSaisie" id="frmSaisie">';

echo '<table border="1">';
$query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());

echo '<tr>';
for($i=0;$i<mysql_num_fields($query);$i++)
{
echo '<th>'.mysql_field_name($query,$i).'</th>';
}
echo '</tr>';
while($row = mysql_fetch_array($query,MYSQL_NUM))
{
$compteur+=1;
echo 'compteur -->'.$compteur;
echo '<tr>';
foreach($row as $value)
{

echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';

}
echo '</tr>';
}
echo '</table>';

echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ;
echo '</p></form>';

?>
[/code]

Et voici le script qui récupère l'entier :

[code]<?php

# script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
# variable qui contient le nom de ma base de données.
$dbname = 'deliberations';
$compteur = 0;

$link = mysql_connect('localhost', 'root', 'mdp');
if(!$link)
{
echo 'Impossible de se connecter à MySQL';
exit;
}

// Rendre la base de données deliberation, la base courante
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected)
{
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}

$NbLignes = $_GET["compteur"];

for ($i = 0; $i < $NbLignes;$i++)
{
$Matricule = $_REQUEST["txtMatricule".i];
$Nom = $_REQUEST["txtNom".i];
$Prenom = $_REQUEST["txtPrenom".i];
$DateDeNaissance = $_REQUEST["txtDateDeNaissance".i];
$Email = $_REQUEST["txtEmail".i];
$Photo = $_REQUEST["txtPhoto".i];

$txtSQL = "" ;
$txtSQL = "update [etudiants] set [Nom_Et] = '".$Nom ."' where [Matricule_Et] = '".$Matricule."'" ;

}

?>[/code]

Un super grand merci d'avance pour l'aide.

beegees
Configuration: Windows XP
Firefox 3.0.3

9 réponses

  1. Bonjour

    Ton lien est créé avant ta boucle.
    $compteur n'a aucune raison de valoir autre chose que 0 avant ta boucle
    0
    1. Il faut que tu le crées quand la variable à la valeur que tu veux. Faut sortir de Polytechnique pour comprendre ça ?
      0
      1. Pourquoi te mets-tu à parler de bouger le form ?
        Il faut que je crée le lien après la boucle alors ? oui
        0
        1. Excuse moi. Je fatigue, là.

          Je n'ai encore jamais essayé de passer un valeur dans l'URL en même temps qu'un FORM par POST. En général, on ne combine pas les 2 méthodes mais je suppose que ce n'est pas interdit
          ça ne change pas grand chose : tu ne peux pas t'attendre à ce que ton script devine au début de ta boucle, combien il y aura de boucles. Tu ne peux le savoir qu'après la requête

          echo '<table border="1">';
          $query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());
          echo '<form action="MettreAJour.php?NbLignes='.mysql_num_rows($query).'" method="post" name="frmSaisie" id="frmSaisie">';

          il faut donc aussi mettre le /table après /form pour respecter l'imbrication des structures
          0
          1. Bonjour,

            Merci pour ta réponse.

            Il faut que je crée le lien après la boucle alors ?

            beegees
            -1
            1. Re,

              Si je bouge le form, une partie du code ne va plus être dedans alors ?

              Tu peux pas me montrer un exemple stp ?

              Merci encore pour ton aide.
              -1
              1. Bonjour,

                Merci pour ta réponse.

                Il faut que je crée le lien après la boucle alors ?

                beegees
                -1
                1. Mais ce n'est pas un lien, c'est une valeur envoyée avec le form :

                  echo '<form action="MettreAJour.php?NbLignes='.$compteur.'" method="post" name="frmSaisie" id="frmSaisie">';

                  La valeur est NbLignes

                  Merci
                  -1
                  1. Super, ça marche.

                    Merci beaucoup pour ta patience et pour le temps que tu m'as consacré.

                    beegees
                    -1