Enregistrer l affichage de la boucle for dans mysql [Résolu]

Signaler
-
 olmac -
bonjour a tous et en bref
j ai une petite boucle for que je l affiche en php et je veux que les nombres afficher s enregistre tous dans mysql aidez moi svp je suis nul et debutant et je sui en 1er annee dev mon code c est
<form method="post" action="">
<input type="text" name="a">
    <input type="submit" name="valide" value="valide">
</form>

<?php

$a = $_POST['a'];
$i= 1;
for ($i=1;$i<=$a;$i++)
{
    echo "$i";
    echo "</br>";
}
?>


EDIT : Ajout des balises de code

4 réponses

Messages postés
29868
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
338
Bonjour,

Pour commencer... comment te connectes tu à ta bdd ? Mysqli ou PDO ?

Ensuite, vu que tu débutes, je t'invite à prendre de bonnes pratiques dès maintenant.
Par exemple en appliquant ce qui est indiqué ici : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

NB: Pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


ouii evidement j'ai ma base donne mysql mais qu on je fait l insertion il enregistre juste la dernier ligne c tadir le nombre 10 mais moi je veux que tous les lignes s enregistre du a a 10 je veux a voir un exemple comme ca
Messages postés
29868
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
338
Et bien...... si tu nous montrais le code avec lequel tu fais cette insertion.... on pourrait sûrement t'aider à le corriger.....
voici le code mais apres la valide juste la derniere ligne qui se sauvgarde le nombre 10

nombre donne c est 10 dans cette exemple !!!!!

<input type="text" name="nombre">


<form method="post" action="valide.php">

<?php

include('connection.php');

$nombre = $_POST['nombre'];

$i=1;

for ($i=1;$i<=$nombre;i++){

echo "<input type="text" name="N" value=".'$i'.">";
}

?>

</form>


pour le fichier valide :


<?php


$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$N = $_POST['N'];


$sql = "INSERT INTO table (N)
VALUES ('$N')";

if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>
Messages postés
29868
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
338
Je t'ai indiqué dans ma précédente réponse comment utiliser les BALISES DE CODE pour poster tes codes sur le forum !
Merci d'appliquer la consigne à l'avenir !

Ensuite, concernant ton souci
côté html
Il faut passer par un "ARRAY"
echo "<input type="text" name="N[]" value=".'$i'.">";


Côté PHP
$N = !empty($_POST['N']) ? $_POST['N']: NULL; 

if(!empty($N)){
  $sqlValues = array();
  foreach($N as $val ){
     $sqlValues[] = "('$val')"
  }
  
  $sql = "INSERT INTO table (N) VALUES "; 
  $sql .= join(",",$sqlValues);
    
  if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
  } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
  }
}
ok et merci bcp je vais applique les consigne d une part et d autre part je vais essayer ton code que tu ma envoyer et après je vais l’améliorer pour êtres au niveau pour l’intégration sur d autre projet merci encore une fois jordane45
bonsoir jardan45 j 'ai executer le code mais sur ma base donne je trouve pas les nombre je trouve juste le mot array voici le code


<form method="post" action="essay.php">
<?php

$mysqli = new mysqli('localhost', 'root', '', 'location');

$i=1;
for($i=1;$i<=60;$i++){

echo '
<input type="text" name="a[]" value="'.$i.'"><br />'; // affichage
}
?>
<input type="submit" name="valide" value="valide"></form>

<?php
$mysqli = new mysqli('localhost', 'root', '', 'location');

$a= !empty($_POST['a']) ? $_POST['a'] : NULL;
if (!empty($a)){
$sqlvalues = array();
foreach($a as $val) {
$sqlvalues[] = "('$a')";
}
$sql = "INSERT INTO aa (a) VALUES ";
$sql .= join(",",$sqlvalues);

if(mysqli_query($mysqli, $sql)){
echo '<script language="javascript">';
echo 'alert("Votre Compte Bien Crée");';
echo 'window.location="login.php";';
echo '</script>';

} else {
echo '<script language="javascript">';
echo 'alert("Erreur de Création");';
echo 'window.location="creation.php";';
echo '</script>';
}}
?>
Messages postés
29868
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
338
petite erreur de ma part,
modifie comme ceci
foreach($a as $val) {
		$sqlvalues[] = "('$val')";
	}


J'edite mon message précédent pour y mettre la correction.

NB: Y'a du mieux pour l'utilisation des balises de code... mais ce n'est pas encore totalement ça ! Il faut préciser le LANGAGE.... relis bien le lien que je t'ai donné et applique correctement stp. Merci
Meeeeeerrrrrcccccciiiii bbbbcccccpppppp jardanetu ma sauvais la vie