Insertion donnees dynamiques à la suite dans une meme table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insertion donnees dynamiques à la suite dans une meme table

par mere-teresa » 12 août 2005, 17:08

Regarde ce que contient ta variable while $row_Recordset1['nb_questio'] pour savoir combien de fois la boucle tourne :)

par mere-teresa » 12 août 2005, 17:07

voici le 1er code balise :

<form name="form1" method="post" action="<?php echo $editFormAction; ?>">
<table> <table width="200" border="0">
<?php
while ($row_Recordset1['nb_questio'] > 0)
{
$counter =$row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
echo '<input type="text" name= "$counter" >';
echo '<input type="checkbox" name= "$counter1" value= "$counter1" ><br>';
echo $counter.'question' ;

$row_Recordset1['nb_questio']--;
}
?>
</table>
</form>

2eme code

<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
while ($row_Recordset1['nb_questio'] > 0){
$counter = $row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
$insertSQL = sprintf("INSERT INTO questions (id_questionnaire, id_theme, id_soustheme, question, inverse) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id_questionnaire'], "int"),
GetSQLValueString($_POST['id_theme'], "int"),
GetSQLValueString($_POST['id_soustheme'], "int"),
GetSQLValueString($_POST['$counter'], "text"),
GetSQLValueString(isset($_POST['$counter1']) ? "true" : "", "defined","1","0"));
mysql_select_db($database_aa, $aa);
$Result1 = mysql_query($insertSQL, $aa) or die(mysql_error());
$row_Recordset1['nb_questio']--;
}
?>



merci d'avance



BRAVO !
Enfin tu as compris de travers, mais au moins, bravo pour l'effort !
:agenouille:

par neofreon » 12 août 2005, 17:06

c vrai que j ai un peu galeré:) je le saurai pour le prochain[/quote]

par albat » 12 août 2005, 16:58

Ouh là ! Tu t'es fatigué pour rien ! :afraid:

Il suffisait d'encadrer ton code avec les balises [ php] dans la fenêtre d'édition.
Voilà ce que ça donne : ;)
 <form name="form1" method="post" action="<?php echo $editFormAction; ?>">
<table> <table width="200" border="0">
<?php
while ($row_Recordset1['nb_questio'] > 0)
{
$counter =$row_Recordset1[color=blue]['nb_questio'];
$counter1 = $row_Recordset1[color=blue]['nb_questio'];
[color=blue] echo '<input type="text" name= "$counter" >';
echo '<input type="checkbox" name= "$counter1" value= "$counter1" ><br>';
echo $counter.'question' ;

$row_Recordset1['nb_questio']--;
}
[color=red] ?>
</table>
</form>

2eme code

<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
while ($row_Recordset1['nb_questio'] > 0){
$counter = $row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
$insertSQL = sprintf("INSERT INTO questions (id_questionnaire, id_theme, id_soustheme, question, inverse) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id_questionnaire'], "int"),
GetSQLValueString($_POST['id_theme'], "int"),
GetSQLValueString($_POST['id_soustheme'], "int"),
GetSQLValueString($_POST['$counter'], "text"),
GetSQLValueString(isset($_POST['$counter1']) ? "true" : "", "defined","1","0"));
mysql_select_db($database_aa, $aa);
$Result1 = mysql_query($insertSQL, $aa) or die(mysql_error());
$row_Recordset1['nb_questio']--;
}
?>  

par neofreon » 12 août 2005, 16:55

voici le 1er code balise :

<form name="form1" method="post" action="<?php echo $editFormAction; ?>">
<table> <table width="200" border="0">
<?php
while ($row_Recordset1['nb_questio'] > 0)
{
$counter =$row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
echo '<input type="text" name= "$counter" >';
echo '<input type="checkbox" name= "$counter1" value= "$counter1" ><br>';
echo $counter.'question' ;

$row_Recordset1['nb_questio']--;
}
?>
</table>
</form>

2eme code

<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
while ($row_Recordset1['nb_questio'] > 0){
$counter = $row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
$insertSQL = sprintf("INSERT INTO questions (id_questionnaire, id_theme, id_soustheme, question, inverse) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id_questionnaire'], "int"),
GetSQLValueString($_POST['id_theme'], "int"),
GetSQLValueString($_POST['id_soustheme'], "int"),
GetSQLValueString($_POST['$counter'], "text"),
GetSQLValueString(isset($_POST['$counter1']) ? "true" : "", "defined","1","0"));
mysql_select_db($database_aa, $aa);
$Result1 = mysql_query($insertSQL, $aa) or die(mysql_error());
$row_Recordset1['nb_questio']--;
}
?>



merci d'avance

par neofreon » 12 août 2005, 16:25

ok merci de ces precisions, j'edite le code et je le repost

par mere-teresa » 12 août 2005, 16:22

A vue de nez, je dirais : problème de boucle

par ouckileou » 12 août 2005, 16:20

oui ça ce sont les balises pour faire interpréter ton code ;)

mais dans le forum phpBB (et celui-ci en est un) tu peux ajouter dans tes messages du bbCode, des balises pour formater le texte

exemples:
[ b]texte[/b] => gras
[ code]ici du code => en vert, garde l'identation, n'insère pas les smileys

donc ici, tu peux utiliser les balises [ php][ /php] qui vont colorer le code et garder l'identation

exemple :
function maFonction() {
   echo "ceci est ma fonction";
   return true;
}
voilà ;)

par albat » 12 août 2005, 16:20

Modération :
Lorsque tu écris un message
il y a au-dessus de la fenêtre blanche dans laquelle tu le saisis,
des petits boutons qui appellent des balises BBcode.
Ces balises qui s'insèrent dans le texte de ton message
permettent de le mettre en forme et le rendent plus lisibles.


Version mere-teresa
Modération : ouckileou parle des balises BBCode [ PHP ] qui permettent la coloration syntaxique du code.
Elle est aussi disponible en bouton entre [ Quote ] et [ Code ]

Modération d'Albat', susceptible :
Mère Teresa, t'as pas le droit !
C'est pas du jeu de modérer un modérateur ! [-(

precisions

par neofreon » 12 août 2005, 16:18

excuse moi mais je ne vois pas ce que tu veux veut dire par "balise php" je croyais que ct les <?php et ?>

par ouckileou » 12 août 2005, 15:36

une petite édition de ton message pour rajouter les balises
 autour de ton code et les réponses afflueront ;)

Insertion donnees dynamiques à la suite dans une meme table

par neofreon » 12 août 2005, 15:33

Bonjour,

Je travaille sur un questionnaire en ligne et j ai un probleme simple :

Sur la page précédente un utilisateur a renseigné un champ contenant le nombre de questions que celui-ci désire insérer dans son questionnaire. La page créer dynamiquement le nombre de champ texte et radio désires :
voici le code de cette création :

<form name="form1" method="post" action="<?php echo $editFormAction; ?>">
<table> <table width="200" border="0">
<?php
while ($row_Recordset1['nb_questio'] > 0)
{
$counter = $row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
echo '<input type="text" name= "$counter" >';
echo '<input type="checkbox" name= "$counter1" value= "$counter1" ><br>';
echo $counter.'question' ;

$row_Recordset1['nb_questio']--;
}
?>
</table>
</form>
Jusque la tout va bien ça marche.

Par contre je souhaiterai que les enregistrement crées s'insèrent tous à la suite dans ma table en envoyant le formulaire :
pour l'instant seul le dernier enregistrement est inséré :

Voici le code d’insertion : (je précise que la connexion à la base est déjà effectuer via un include en début de fichier)

<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
while ($row_Recordset1['nb_questio'] > 0){
$counter = $row_Recordset1['nb_questio'];
$counter1 = $row_Recordset1['nb_questio'];
$insertSQL = sprintf("INSERT INTO questions (id_questionnaire, id_theme, id_soustheme, question, inverse) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['id_questionnaire'], "int"),
GetSQLValueString($_POST['id_theme'], "int"),
GetSQLValueString($_POST['id_soustheme'], "int"),
GetSQLValueString($_POST['$counter'], "text"),
GetSQLValueString(isset($_POST['$counter1']) ? "true" : "", "defined","1","0"));
mysql_select_db($database_aa, $aa);
$Result1 = mysql_query($insertSQL, $aa) or die(mysql_error());
$row_Recordset1['nb_questio']--;
}
?>

je ne comprend pas pourquoi seul le dernier enregistrement est inséré,

merci d'avance