Valeur envoyée dans URL toujorus égale à zéro
beegees
Messages postés
102
Statut
Membre
-
beegees Messages postés 102 Statut Membre -
beegees Messages postés 102 Statut Membre -
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
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
A voir également:
- Valeur envoyée dans URL toujorus égale à zéro
- Remettre a zero un pc - Guide
- Url - Guide
- Zero barré clavier ✓ - Forum Windows
- Comment remettre un iphone à zéro - Guide
- Remettre chromecast a zero - Guide
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
Ton lien est créé avant ta boucle.
$compteur n'a aucune raison de valoir autre chose que 0 avant ta boucle
Il faut que tu le crées quand la variable à la valeur que tu veux. Faut sortir de Polytechnique pour comprendre ça ?
Pourquoi te mets-tu à parler de bouger le form ?
Il faut que je crée le lien après la boucle alors ? oui
Il faut que je crée le lien après la boucle alors ? oui
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.