Boucle while

stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 - 14 févr. 2008 à 16:44
shockwave77 Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 7 avril 2009 - 16 juin 2008 à 11:49
Bonjour,

J'aimerais savoir si quelqu'un pouvait m'expliquer comment on enregistre des données qui vienne d'un formulaire dans une base de données. En gros j'apprend le php, et mon prob est le suivant :
Exemple :
je fais un formulaire dans lequel il y a cinq input de type text, je rentre des données et j'aimerais les enregistrer dans ma base dans la même table et dans le même champ.

Je pense qu'il faut travailler avec une boucle while et avec un compteur qu'il faut incrémenter. Le prob est que je n'ai pas des erreurs lorsque j'exécute mon code. Mais rien ne s'enregistre non plus.

je demande absolument pas la solution, mais simplement que l'on me guide ou me donne des pistes.

Merci au bonne volontée.

Stu76

8 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
14 févr. 2008 à 17:00
Form.php

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

</form>
...

enregistre.php
<?php
$sNom=$_POST["nom"];
$sPrenom=$_POST["prenom"];

/*
apres t en fais ce que tu veux
*/
?>

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
14 févr. 2008 à 17:21
Salut Teclis01,

Merci pour l'info

Malheureusement ce que tu me dis je le comprend parfaitement, ce que j'aimerais c'est enregistrer  les valeurs d'un formulaire, mais avec cinq fois par exemple des données qui vont dans le même champs d'une table.
Exemple :

Formulaire :

<ol><li>Nom, prénom</li><li>Nom, prénom</li><li>Nom, prénom</li><li>Nom, prénom</li><li>Nom, prénom
</li></ol>je clique sur enregistrer et le tout ce fais, bien sur il faut faire une série de test pour les doublons, la sécu, etc.
Mais plutôt que de chaque fois faire une fiche un enregistrement. je crée un formulaire dynamiquement, et j'enregistre dans ma base le tout en une seule fois. je pense que cela doit être possible, mais je suis pas un super pro du php. C'est la raison pour laquelle je pensais à une boucle while.

Juste une piste de travail, svp. J'aime comprendre ce que je fais et je n'aime pas m'accaparer le travail d'un autre. J'aime bien faire mes propres codes. J'aimerais juste un petit coup de pouce svp.

Je vais mettre le code pour exemple. Juste un moment que je remette le réseau en état.

Stu76
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
14 févr. 2008 à 17:32
Re Voici en gros mon prob, c'est un exemple de code bien pour que vous compreniez bien ce à quoi je voudrais arriver.

<?php
        //Connexion à la base de données normalement dans un fichier config
        $hostname_test = "localhost";
        $database_test = "test2008";
        $username_test = "root";
        $password_test = "bibi";
        $test = mysql_pconnect($hostname_test, $username_test, $password_test) or trigger_error(mysql_error(),E_USER_ERROR);

//Connexion à ma base

mysql_select_db($database_test, $test);

//initialisation de mon compteur
$comp = 1;

//Cette partie de code fonctionne nickel
echo'           ----

        test 2008
,
       
        ----

        <form method=\"post\" action=\"'.$_SERVER['PHP_SELF'].'\">';
        while ($comp <= 5) //exemple pour cinq fois
                {
                echo '
';//Champs de mon formulaire que j'index pour faciliter
                                                                                        //l'enregistrement dans ma base de données
                $comp++;//Incrémentation du compteur $comp
                $index++;//Incrémentation du compteur $index
                }
        echo '
              </form>
             
             
';
//Celle-ci foire total grave

while (isset ($_POST['nom-'.$index]))
        {        $sql_test 'INSERT INTO enregistrer VALUES(nom '.$_POST['nom-'.$index].')';//enregistrement dans ma base
        echo $_POST['nom-'.$index];
        $index++;
        }

?>

Merci d'avance au bonne âme.

Stu76
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
14 févr. 2008 à 17:58
Deja essaye les index comme ça....
tu te feras moins... paske moi aussi je faisais via un chaine avec index incrementé et evidement l'envoi de la structure

En d'autres termes pq faire simple qund on peut faire compliquer

donc...
fais tes input comme suit...

il te renvera un array associatifdu genre

$aisNom=$_POST["nom"];
$aisPrenom=$_POST["prenom"];
foreach($aisNom as $iNom=>$sNom){
//les values aue tu veux sont dans $sNom ou $aisNom[$iNom]
//et les prenoms dans $aisPrenom[$iNom]
}

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
14 févr. 2008 à 18:09
Ok comprend pas trop ce que tu veux dire, le plus simple est de tester et voir quoi.

Merci je te tiens au courant.

++

Stu76
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
14 févr. 2008 à 18:42
Salut,

j'ai test et toujours le même prob. En plus foreach connais pas trop. Pas plus simple avec une boucle while ?

Stu76
0
shockwave77 Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 7 avril 2009
16 juin 2008 à 11:42
Salut, je dirais que ton problème est dans ton fichier de config

tu defini une variable $test pour la connection à la base... ok...

ensuite tu selectionne une table ok aussi... sauf que si tu met ta chaine de connection dans une variable et que tu ne l'execute pas... tu risque pas de pouvoir selectionner une quelconque table. je te suggere donc ceci :

$host = "localhost";
$userDB = "root";
$passDB = "pass";
$errorconDB = "Connection Impossible";
$table = "table1";
$base = "base1";

@mysql_connect($host, $userDB, $passDB)
         or die ("$errorconDB");
@mysql_select_db($base)
         or die ("$errorconDB");

et la tu seras connecter à la base et positionné sur la table.

@ +

quand on sait pas... faut pas rester dans l'igorance, faut demander
0
shockwave77 Messages postés 5 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 7 avril 2009
16 juin 2008 à 11:49
rectification :

le positionnement sur la table tu le fait dans la requete sql 

@+

quand on sait pas... faut pas rester dans l'igorance, faut demander
0
Rejoignez-nous