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

Fermé
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 - 15 oct. 2008 à 19:25
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 - 15 oct. 2008 à 20:10
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

9 réponses

Bonjour

Ton lien est créé avant ta boucle.
$compteur n'a aucune raison de valoir autre chose que 0 avant ta boucle
0
Il faut que tu le crées quand la variable à la valeur que tu veux. Faut sortir de Polytechnique pour comprendre ça ?
0
Pourquoi te mets-tu à parler de bouger le form ?
Il faut que je crée le lien après la boucle alors ? oui
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
15 oct. 2008 à 19:34
Bonjour,

Merci pour ta réponse.

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

beegees
-1
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
15 oct. 2008 à 19:42
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
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
15 oct. 2008 à 19:49
Bonjour,

Merci pour ta réponse.

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

beegees
-1
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
15 oct. 2008 à 19:53
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
beegees Messages postés 84 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
15 oct. 2008 à 20:10
Super, ça marche.

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

beegees
-1