Page 1 sur 1

Problème avec une requete dans une boucle

Posté : 18 oct. 2007, 13:35
par topbreizh35
Salut tous le monde. J'ai un problème avec une requete dans une boucle. J'ai un formulaire avec un input qui suivant un champ renseigner génere plusieur input incrémenter. Ce qui me donne $equipe1, $equipe2 ects.. Mon problème est de renvoyer dans une table les données des input. Voici mon code. Si quelqu'un peut m'aider merci d'avance.
<legend>Saisissez vos équipes</legend><br/>
<?php

for ($nb=1;$nb<=($nb_equipe);$nb++)
{
?>
		<input type="text" name="equipe<?php echo "$nb";?>"/>

<?php<?php
$nb_equipe=htmlentities($_POST['nb_equipe']);
$equipe  = $_POST['equipe'.$i];

if(isset($_POST['equipe']))
{
if($_POST['equipe1']!=NULL)
	{
for($i=1;$i<=$nb_equipe;$i++)
{
$equipe = $_POST['equipe'.$i];

mysql_query("INSERT INTO liste_$equipe_bd (equipe) VALUES('$equipe')") or die(mysql_error());	
}
}
}

?>
[/i]

Posté : 18 oct. 2007, 13:40
par d0m
il manque le code de ton formulaire en question

Posté : 18 oct. 2007, 13:50
par topbreizh35
Voici le code avec le input
<legend>Saisissez vos équipes</legend><br/>
<?php

for ($nb=1;$nb<=($nb_equipe);$nb++)
{
?>
		<input type="text" name="equipe<?php echo "$nb";?>"/>

<?php
}
?>

<br/><br/>			<input type="submit" name="Envoyer" value="Envoyer"/>
	</fieldset>
</form>
<?php
$nb_equipe=htmlentities($_POST['nb_equipe']);
$equipe  = $_POST['equipe'.$i];

if(isset($_POST['equipe']))
{
if($_POST['equipe1']!=NULL)
	{
for($i=1;$i<=$nb_equipe;$i++)
{
$equipe = $_POST['equipe'.$i];

mysql_query("INSERT INTO liste_$equipe_bd (equipe) VALUES('$equipe')") or die(mysql_error());	
}
}
}

?>

Posté : 18 oct. 2007, 14:00
par d0m
plusieurs choses :


- premièrement, il n'y a pas dans ton formulaire d'input ou autre chose avec l'attribut NAME="equipe"
donc $_POST['equipe'] n'existera jamais

- deuxièmement, il serait plus pratique pour tes INPUT de leur donner commne attribut name un tableau:
<input type="text" name="equipe[<?php echo "$nb";?>]">
cette fois ci, tu pourras faire le test:
if(isset($_POST['equipe']))
et ensuite parcourir les valeurs de cette manière :
foreach($post['equipe'] as $numero_equipe => $equipe)
- ensuite pense à sortir les variables php de tes chaines :
mysql_query("INSERT INTO liste_".$equipe."_bd (equipe) VALUES('".$equipe."')")
- dernièrement, c'est très dangereux d'injecter directement des chaines issues de zone texte dans tes requêtes sql. Il y a des fonctions php pour sécuriser cela. (voir faille sql injections)

Posté : 18 oct. 2007, 14:32
par Invité
Ca ne marche toujours pas je vous donne le code retaper.
<?php

for ($nb=1;$nb<=($nb_equipe);$nb++)
{
?>
		<input type="text" name="equipe[<?php echo "$nb";?>]"> 

<?php
}
?>

<br/><br/>			<input type="submit" name="Envoyer" value="Envoyer"/>
	</fieldset>
</form>
<?php
$nb_equipe=htmlentities($_POST['nb_equipe']);

if(isset($_POST['equipe'])) 
{
foreach($post['equipe'] as $nb => $equipe) 

mysql_query("INSERT INTO liste_$equipe_bd (equipe) VALUES('".$equipe."')") or die(mysql_error());	

}


?>

Posté : 18 oct. 2007, 14:37
par d0m
Ca ne marche toujours pas je vous donne le code retaper.
Pourrais tu être plus précis :
il y a un message d'erreur php?
il y a un message d'erreur sql?
qu'est ce que cela affiche précisement?

Posté : 18 oct. 2007, 15:51
par Invité
Il n' y a pas de message d'afficher.

Posté : 18 oct. 2007, 15:57
par d0m
Il n' y a pas de message d'afficher.
C'est que tout marche alors....

Posté : 18 oct. 2007, 17:47
par Invité
Il n'y a pas de message d'erreur, mais rien n'ai renvoyer dans ma base de donnée.
Voici le code de ma page entière car je ne vois pas ou est l'erreur.
Merci d'avance.
<div class="droite">
<h1>Saisie des équipes <?php echo $_GET['equipe_html']; ?></h1>
<center>
			<a href="../accesbureau_non_proteger.php"><img src="../image/accueil_acces_bureau.gif"></a>
		<br/></center>
<?php include("lien_equipe.php")?><br/><br/><br/>
<?php include("../connect.php");?>
<form method="post" action="liste_equipe_index.php?equipe_html=<?php echo $_GET['equipe_html']; ?>&equipe_bd=<?php echo $_GET['equipe_bd']; ?>">
	<fieldset>
	<legend>Indiquer ci-dessous le nombre d'équipe a saisir</legend><br/>
	<input type="text" size="3" name="nb_equipe"/><br/>
	</fieldset>

	<fieldset>
	<legend>Saisissez vos équipes</legend><br/>
<?php

for ($nb=1;$nb<=($nb_equipe);$nb++)
{
?>
		<input type="text" name="equipe[<?php echo "$nb";?>]"> 

<?php
}
?>

<br/><br/>			<input type="submit" name="Envoyer" value="Envoyer"/>
	</fieldset>
</form>
<?php
$nb_equipe=htmlentities($_POST['nb_equipe']);

if(isset($_POST['equipe'])) 
{
for($i=1;$i<=$nb_equipe;$i++)
{
}
foreach($post['equipe'] as $numero_equipe => $equipe)
mysql_query("INSERT INTO liste_$equipe_bd (equipe) VALUES('".$equipe."')")  or die(mysql_error());	
}
?>

<?php
	mysql_close();
?>
</div>
</body>
</html>

Posté : 27 oct. 2007, 13:20
par topbreizh35
Re salut voici le message d'erreur
Notice: Undefined variable: dom1 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: visi1 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: dom2 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: visi2 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: dom3 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: visi3 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: dom4 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30

Notice: Undefined variable: visi4 in d:\mes sites web\site esvvg\acces_bureau\saisie_calendrier_equipe_index.php on line 30