Problème avec une requete dans une boucle

Petit nouveau ! | 4 Messages

18 oct. 2007, 13:35

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]
Modifié en dernier par topbreizh35 le 18 oct. 2007, 13:48, modifié 1 fois.

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 13:40

il manque le code de ton formulaire en question

Petit nouveau ! | 4 Messages

18 oct. 2007, 13:50

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());	
}
}
}

?>

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 14:00

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)

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2007, 14:32

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());	

}


?>

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 14:37

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?

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2007, 15:51

Il n' y a pas de message d'afficher.

d0m
Mammouth du PHP | 1141 Messages

18 oct. 2007, 15:57

Il n' y a pas de message d'afficher.
C'est que tout marche alors....

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2007, 17:47

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>

Petit nouveau ! | 4 Messages

27 oct. 2007, 13:20

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