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

-
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
Afficher la suite 

4 réponses

Messages postés
26145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 août 2019
314
0
Merci
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
jordane45
Messages postés
26145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 août 2019
314 -
Et bien...... si tu nous montrais le code avec lequel tu fais cette insertion.... on pourrait sûrement t'aider à le corriger.....
Commenter la réponse de jordane45
0
Merci
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();
?>
jordane45
Messages postés
26145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 août 2019
314 -
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; 
  }
}
Commenter la réponse de olmac
0
Merci
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
Commenter la réponse de olmac
0
Merci
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>';
}}
?>
jordane45
Messages postés
26145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 août 2019
314 -
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
Commenter la réponse de olmac