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

Administration MySQL Discussion :

Problème insertion form & base


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut Problème insertion form & base
    Bonjour,

    J'ai créer un formulaire avec 6 lignes et 7 champs, les champs sont identiques dans les 6 lignes.
    Mon problème est que les 6 lignes ne doivent pas être obligatoirement remplie (donc peut-être 5 ou 4 ou 6) .
    Les données du formuliare s'incrive correctement dans une base, mais à chaque enregistrement les 6 lignes s'ingrive dans la base et cela même si elles sont vide alors ma question est: comment faire pour que ne s'insgrive que les lignes qui contiennent des données par les autres ????? (je ne souhaite pas rendre obligatoire de remplir les lignes, mais uniquement faire en sorte que les lignes vide ne s'insgrive pas dans ma base)

    Voici mon code de validation :
    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
     
    <?PHP
     
    include "../connect/fc-phpconnect.php";
     
    // première ligne du form//
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_1)."','".mysql_escape_string($nom_1)."','".mysql_escape_string($adr_1)."','".mysql_escape_string($rem_1)."','".mysql_escape_string($tech_1)."','".mysql_escape_string($date_1)."','".mysql_escape_string($tel_1)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error()); 
     
    //deuxième ligne fu form//
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_2)."','".mysql_escape_string($nom_2)."','".mysql_escape_string($adr_2)."','".mysql_escape_string($rem_2)."','".mysql_escape_string($tech_2)."','".mysql_escape_string($date_2)."','".mysql_escape_string($tel_2)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error());
     
    //troisième ligne du form// 
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_3)."','".mysql_escape_string($nom_3)."','".mysql_escape_string($adr_3)."','".mysql_escape_string($rem_3)."','".mysql_escape_string($tech_3)."','".mysql_escape_string($date_3)."','".mysql_escape_string($tel_3)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error()); 
     
    //quatrième ligne du form//
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_4)."','".mysql_escape_string($nom_4)."','".mysql_escape_string($adr_4)."','".mysql_escape_string($rem_4)."','".mysql_escape_string($tech_4)."','".mysql_escape_string($date_4)."','".mysql_escape_string($tel_4)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error());
     
    //cinquième ligne du form// 
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_5)."','".mysql_escape_string($nom_5)."','".mysql_escape_string($adr_5)."','".mysql_escape_string($rem_5)."','".mysql_escape_string($tech_5)."','".mysql_escape_string($date_5)."','".mysql_escape_string($tel_5)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error()); 
     
    //sixième ligne du form//
     
    $sql = "INSERT INTO prestation_juillet_2006 (ref, nom, adr, rem, tech, date, tel) VALUES ('".mysql_escape_string($ref_6)."','".mysql_escape_string($nom_6)."','".mysql_escape_string($adr_6)."','".mysql_escape_string($rem_6)."','".mysql_escape_string($tech_6)."','".mysql_escape_string($date_6)."','".mysql_escape_string($tel_6)."')";
    mysql_query($sql)or die('Erreur SQL !'.$sql.''.mysql_error()); 
     
     
    echo 'merci beaucoup, vos infos ont été enregistrées.'; 
    mysql_close(); 
     
     
     
     
    //$sql = "INSERT INTO table VALUES ('".mysql_escape_string($id_client)."',".mysql_escape_string($ref).",'".mysql_escape_string($nom)."','".mysql_escape_string($adr_client)."','".mysql_escape_string($rem_client)."','".mysql_escape_string($tel_client)."')";//
     
     
    ?> 
    <body background="../img/grd-4px.gif">
     
    <a href="../deconnexion.php"><font color="#FF0000">Déconnexion</font></a>

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Salut !

    Donne toi un élément clé de ta ligne, qui doit toujorus être présent. Ici je prends comme exemple l'élément ref pour expliquer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (isset($ref_2) && strlen($ref_2) > 0)
    {
        // Insertion dans la base
    }
    if (isset($ref_3) && strlen($ref_3) > 0)
    {
        // Insertion dans la base
    }
     
    // ... etc
    Je te propose une solution plus optimisée. Dans ton formulaire, tu utilises les tableaux. De cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref[]" value="" />
    pour toutes les lignes. Ce qui donne dans le code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST['ref'] as $ref)
    {
       // insertion dans la base sans vérifier
    }
    Je ne veux pas trop m'avancer, je ne peux pas tester maintenant, mais ça devrait marcher et être plus propre. Seuls les éléments renseignés se trouveront dans la tableau _POST. Il te reste toujours la première solution si ce que je dis ne fonctionne pas !

    Mais si cela ne fonctionne pas avec cette syntaxe c'est quelque chose de tout proche (bidouille un peu !), je l'ai déjà fait, et c'est tout de même plus propre qu'une série de if.
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Par défaut
    Citation Envoyé par dbprog
    Salut !

    Donne toi un élément clé de ta ligne, qui doit toujorus être présent. Ici je prends comme exemple l'élément ref pour expliquer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (isset($ref_2) && strlen($ref_2) > 0)
    {
        // Insertion dans la base
    }
    if (isset($ref_3) && strlen($ref_3) > 0)
    {
        // Insertion dans la base
    }
     
    // ... etc
    Je te propose une solution plus optimisée. Dans ton formulaire, tu utilises les tableaux. De cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref[]" value="" />
    pour toutes les lignes. Ce qui donne dans le code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($_POST['ref'] as $ref)
    {
       // insertion dans la base sans vérifier
    }
    Je ne veux pas trop m'avancer, je ne peux pas tester maintenant, mais ça devrait marcher et être plus propre. Seuls les éléments renseignés se trouveront dans la tableau _POST. Il te reste toujours la première solution si ce que je dis ne fonctionne pas !

    Mais si cela ne fonctionne pas avec cette syntaxe c'est quelque chose de tout proche (bidouille un peu !), je l'ai déjà fait, et c'est tout de même plus propre qu'une série de if.
    Ok merci je vais tester ça.

    A+

  4. #4
    Membre chevronné Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Par défaut
    Salut,

    N'oublie pas de vider le contenu de tes variables après l'insertion dans la base. Si tu submit sur la même page cela pourrait être le problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SP-2007] Problème insertion dans la base
    Par walid. dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 11/07/2011, 17h21
  2. [VB.net] Problème insertion dans la base Sql
    Par daily14 dans le forum VB.NET
    Réponses: 10
    Dernier message: 25/11/2009, 16h13
  3. Réponses: 2
    Dernier message: 25/09/2008, 10h15
  4. Problème insertion date dans base Access
    Par pep972 dans le forum JDBC
    Réponses: 2
    Dernier message: 13/06/2008, 11h15
  5. [CKEditor] problème insertion texte dans base de données
    Par exeee dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 22/10/2007, 11h12

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