IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Bug enregistrement formulaire dans bdd Mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Par défaut Bug enregistrement formulaire dans bdd Mysql
    Tout d'abord, bonjour à tous !

    Je me présente brièvement : Je bosse sur un projet, une sorte d'"annuaire" de vidéos youtube avec php/mysql.

    Je suis confronté à un problème très gênant qui me bloque alors que j'ai pratiquement tout fini :

    Je voudrais ajouter plusieurs parties automatiquement (c'est à dire plusieurs formulaires à la suite d'un autre formulaire qui est la video principale) dans la base de données (pour ensuite qu'elle s'affiche).
    Pour ce faire, j'ai une variable $nbpart choisie initialement par la personne qui va poster ces parties, par exemple "3" parties supplémentaires.

    Avec cette valeur plusieurs formulaires vont s'afficher automatiquement avec une boucle (donc 3 formulaires dans le cas présent).
    J'aimerai ensuite récupérer la valeur des formulaires et les ajouter dans ma base de données, cependant mon code ne veut pas marcher et c'est la première fois que je tente de coder un truc aussi compliqué.

    Etudions les parties de mon code concernées :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    //Changement des variables
     
    $nom = $_POST['nom'];
    $video = $_POST['video'];
    $lecteur = $_POST['lecteur'];
    $resu = $_POST['resume'];
    $cate = $_POST['cate'];
    $tc = $_POST['tc'];
    $nbpart = $_POST['part'];
     
    if ($nbpart >= 1)
    {
    //on place un compteur pour indiquer le nombre de parties différentes dans la boucle
    $i = 1;
    $iii = 0;
    $iiii = 1;
    $ii= $iii+1;
    //Tant que le nombre du compteur est inférieur au nombre de parties on lance la boucle suivante
     
    echo '
    <p><br />Ajouter '.$nbpart.' partie(s) supplementaires (lien) : </p>
    <p><form method="post" action="parties.php"></p> 
    <p><input name="'.$nbpart.'" type="hidden" /></p>
     ';
     while ($iii < $nbpart)
     
     {
     
     echo' <p>'.$iiii.'<sup>ère</sup>Partie : 
     <input name="name'.$iiii.'" type="text" /><br /><br /></p>';
    $iii++;
    $iiii++;
     }
     
     echo' 
     <p>
        <select name="lecteur" id="lecteur">
        <option value="1">Youtube</option>
        <option value="2">Dailymotion</option>
    	<option value="3">Megavideo</option>
    	<option value="4">Veoh</option>
    	<option value="5">Google</option>
    	<option value="6">Wideo</option>
    	<option value="7">Wat.tv</option>
        </select>
    </p>
    <p>
        <select name="cate" id="cate">
        <option value="1">Manga</option>
        <option value="2">Films</option>
        <option value="3">S&eacute;ries</option>
        <option value="4">Documentaires</option>
      </select></p>
    ';
     
    echo '
        <label>
        <input type="submit" name="Submit" value="Envoyer" />
        </label></form><br />
    	';
    }
    Ensuite le formulaire est envoyé à une autre page (parties.php) afin de récupérer les valeurs des formulaires et de les intégrer dans la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $demande = mysql_query("SELECT * FROM streaming");
    $donnees = mysql_fetch_array($demande);
    $id = $donnees['id'];
     
     
    //Changement des variables
    $i = 0;
    $ii = 0;
    $iii = 1;
    $iiii = 1;
    $nbpart = $_POST['nbpart'];
     
    while ($ii < $nbpart)
    {
    $part.$iii = $_POST['name'.$iii];
    $ii++;
    $iii++;
    }
    Je récupère ici toutes les parties avec une boucle et à l'aide d'une autre boucle j'ajoute dans la base de données après avoir modifié l'id.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    while ($i < $nbpart)
    {
    // modification de la derniere id
     
    // On ouvre le fichier
    $fp = fopen ("lastid.txt", "r+");  
    // On prend les informations
    $id = fgets ($fp, 11);  
    // On ajoute 1 a L'id
    $id = $id + 1;  
    // On se place au debut du fichier
    fseek ($fp, 0);  
    // On rentre la nouvelle valeur
    fputs ($fp, $id);  
    // On ferme le fichier
    fclose ($fp);
     
      $req = mysql_query("INSERT INTO streaming ( id, video, lecteur, cate) VALUES ( '$id', '$name.$iiii', '$lecteur', '$cate')") or die(mysql_error());
     
             $i++; 
    		 $iiii++;
    		 $id++;
    }
     
    echo 'Vos parties ont bien été ajoutées dans la bdd';
     
    }
     
    ?>

    -> Je ne comprends pas pourquoi ça ne marche pas, peut-être est-ce l'incrémentation des variables avec le .$iii

    En tout cas je sais que quand j'ajoute des parties directement avec la base de données elles s'affichent sur ma page donc c'est un peu un handicap.
    Si vous pouvez me donner des conseils sans pour autant m'aider ça serait vraiment très sympa d'autant plus que je débute en php donc je suis loin d'être ce qu'on appelle un pro
    Merci d'avoir lu ce message !

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Par défaut
    Bonjour,

    Ton code est plutôt pas facile à lire ... les $ii, $iii, $iiiiiiii ... ne sont pas très parlant.
    Sans avoir étudier dans le détail, y'a au moins une ligne qui me paraît bizarre (dans le deuxième bloc de code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $part.$iii = $_POST['name'.$iii];
    "$part.$iii =" c'est censé faire quoi ? Le point sert à concaténer des chaînes de caractères, je vois mal comment tu pourrais effectuer une affectation sur une chaine.

    Si c'est une variable dynamique que tu veux créer regarde ici

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Par défaut
    Bonjour faya, merci de ta réponse.
    Désolé si mon code est pas très lisible, je suis débutant ...
    En fait j'ai fait ça pour récupérer les valeurs de chaque formulaires, c'est à dire formulaire 1, formulaire 2 et pouvoir l'enregistrer dans la base de données grâce aux boucles à des id différents mais je galère.
    J'utilise la concaténation afin d'avoir un nom qui change à chaque fois que la boucle recommence afin d'enregistrer et récupérer des valeurs différentes.
    Si tu veux plus de détails n'hésite pas à me demander !
    Merci de l'intérêt porté au message

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Oriente toi vers l'utilisation de tableaux :
    $part[$iii] = ....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Par défaut
    Des tableaux, ok tu peux me donner un exemple parce que j'avais essayé et ça marchait pas (je suis débutant :s)
    Merci pour ta réponse

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    Tu as un excellent cours PHP ici (voir tableaux)

Discussions similaires

  1. [MySQL] S'assurer du bon enregistrement des données dans BDD mysql
    Par lilly91 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/12/2009, 14h14
  2. [MySQL] Enregistrement formulaire dans BDD
    Par Elrubio dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/08/2007, 12h02
  3. [MySQL] Enregistrer Infos Formulaire dans Bdd
    Par jakkihm dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/01/2007, 17h13
  4. [SGBD] Parser une variable pour mettre données dans bdd MySQL
    Par winnie82 dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 15/03/2006, 17h20
  5. [SGBD] FPDF+enregistrer le pdf généré dans BDD MySQL
    Par Flushovsky dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/11/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo