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

Langage PHP Discussion :

[Tableaux] Problème avec la fonction insert


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Points : 79
    Points
    79
    Par défaut [Tableaux] Problème avec la fonction insert
    Bonjour,

    J'ai un formulaire qui devrais inserer des données dans une table, mais à chaque enregistrement j'ai des champs vide ou alors ARRAY, et mes champs date indique 0000.00.00 je ne comprend pas pourquoi.
    Voici mon code du fichier FORM
    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
     
    <form method="POST"  name="prestations_tvc" action="../enregistrement/validation_tvc.php">
            <table border="0" id="table5" width="931">
                    <tr>
                            <td width="453"><font size="2">Date de l'installation :</font><input type="text" name="date_realisation" value = '<? echo $today = date("Y-m-j") ?>' size="20">
                            </td>
                            <td>
                            <p align="right"><font size="2">Date du jour </font>:
                            <input type="text" name="date_encodage" value = '<? echo $today = date("Y-m-j") ?>' size="20"></p>
                            </td>
                    </tr>
            </table>
            <table border="0" id="table3" width="935" bgcolor="#C0C0C0" style="background-image: url('../../img/bg.gif')">
                    <tr>
                            <td width="69" align="center"><b><font size="1">Ref client</font></b></td>
                            <td width="248" align="center"><b><font size="1">Adresse client</font></b></td>
                            <td width="66" align="center"><font size="2">nom</font></td>
                            <td width="65" align="center"><b><font size="1">code postal</font></b></td>
                            <td width="71" align="center"><b><font size="1">Localité</font></b></td>
                            <td align="center"><b><font size="1">Adresse MAC</font></b></td>
                    </tr>
                    <tr>
                            <td width="69" align="center">
                            <input type="text" name="ref[1]" size="7"></td>
                            <td width="248" align="center">
                            <input type="text" name="adr[1]" size="36"></td>
                            <td width="66" align="center">
                            <p align="center">
                            <input type="text" name="ref[1]" size="12"></p>
                            </td>
                            <td width="65" align="center">
                            <input type="text" name="postal[1]" size="6"></td>
                            <td width="71" align="center">
                            <p align="center"><input type="text" name="loca[1]" size="12"></p>
                            </td>
                            <td align="center" style="position: relative; float: left">
                                                    <p align="left"><input type="text" name="mac[1]" size="2">:<input type="text" name="mac[2]" size="2">:<input type="text" name="mac[3]" size="2">:<input type="text" name="mac[4]" size="2">:<input type="text" name="mac[5]" size="2">:<input type="text" name="mac[6]" size="2"></td>
                    </tr>
            </table>
    Et voici mon fichier 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
     
    $date1 = $_POST['date_realisation'];
    $date2 = $_POST['date_encodage'];
    $user = $_POST['user'];
    $ref = $_POST['ref'];
    $adr = $_POST['adr'];
    $code = $_POST['postal'];
    $localite = $_POST['loca'];
    $address_mac = $_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'].":".$_POST['mac'] ;
    $tech = $_POST['technicien'];
    $heure_debut = $_POST['ha1'].":".$_POST['ha2'];
    $heure_fin = $_POST['hd1'].":".$_POST['hd2'];
    $commentaire = $_POST['com'];
     
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';
    var_dump($commentaire);
    var_dump($heure_fin);
    var_dump($heure_debut);
    var_dump($tech);
    var_dump($address_mac);
    var_dump($localite);
    var_dump($code);
    var_dump($adr);
    var_dump($ref);
    var_dump($date2);
    var_dump($date1);
     
    /******************************************************************************************************************************************************
                        Date
    ******************************************************************************************************************************************************/
     
     
     
     
     
     
     
     
    /*****************************************************************************************************************************************************
                                                                      Insertion dans la base
    *****************************************************************************************************************************************************/
     
                                               $sql="INSERT INTO prestation_beta (IDot, date_realisation, date_encodage, nom_utilisateur, ref_client,                                                       adr_client, code_postal, commune, adr_modem, technicien, heure_debut, heure_fin, commentaire) values (                                                 '".$date1."','".$date2."','".$user."', '".$ref."', '".$adr."','".$code."','".$localite."','".                                                          $address_mac."', '".$tech."','".$heure_debut."','".$heure_fin."','".$commentaire."')";
     
     
                                                 $insert = mysql_query($sql) or die (mysql_error());
    Quelqu'un voie t'il erreur ???

    D'avance merci

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonsoir Dunbar,

    Aie pitié de nous, utilise les balises code.

    Pour le problème de la date je ne vois rien à priori.
    Pour ce qui est des array :
    dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref[1]" size="7"></td>
    puis plus bas
    et ce à plusieurs reprises.
    ref[1] est un tableau dont l'élément d'index 1 sera sera le texte introduit
    dans ta 'validation' tu utilises ref qui est le tableau dont tu ne précises pas quel élément tu veux. Il te réponds donc 'array'.
    Quand à la validation, elle ne valide rien en l'état. Elle se contente d'attribuer à une variable ce que tu 'espères' que ton utilisateur à introduit comme texte. Or tu ne peux être sur de rien au niveau des remplissages des champs. Donc il faut
    1) vérifier que les champs sont remplis et corrects en fonction de ce que tu attends (macadresse : pas de Z, pas de virgule, pas de ....
    2) agir en fonction de 1) soit renvoyer le formulaire en demandant de compléter soit envoyer les données dans la base

  3. #3
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par papyphp
    Bonsoir Dunbar,

    Aie pitié de nous, utilise les balises code.

    Pour le problème de la date je ne vois rien à priori.
    Pour ce qui est des array :
    dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref[1]" size="7"></td>
    puis plus bas
    et ce à plusieurs reprises.
    ref[1] est un tableau dont l'élément d'index 1 sera sera le texte introduit
    dans ta 'validation' tu utilises ref qui est le tableau dont tu ne précises pas quel élément tu veux. Il te réponds donc 'array'.
    Quand à la validation, elle ne valide rien en l'état. Elle se contente d'attribuer à une variable ce que tu 'espères' que ton utilisateur à introduit comme texte. Or tu ne peux être sur de rien au niveau des remplissages des champs. Donc il faut
    1) vérifier que les champs sont remplis et corrects en fonction de ce que tu attends (macadresse : pas de Z, pas de virgule, pas de ....
    2) agir en fonction de 1) soit renvoyer le formulaire en demandant de compléter soit envoyer les données dans la base
    Pourrais tu me donner un exemple stp ?
    D'avance merci

  4. #4
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="ref[1]" size="7"></td>
    Ce genre de chose se récupère de cette façon
    Pour récupérer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="mac[1]" size="2">:<input type="text" name="mac[2]" size="2">:<input type="text" name="mac[3]" size="2">:<input type="text" name="mac[4]" size="2">:<input type="text" name="mac[5]" size="2">:<input type="text" name="mac[6]" size="2">
    tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $address_mac =  '';
    foreach ($_POST['mac'] as $valeur)
      {$adressemac .= $valeur.':';}
    $adressemac = substr($adressemac,0,-1);
    foreach() permet de parcourir un tableau
    la dernière ligne enlève le signe ':' de trop
    un petit tour ici ne pourra pas te faire de tort
    bon courage

  5. #5
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 215
    Points : 79
    Points
    79
    Par défaut
    Merci et effectivement cela fonctionne beaucoup mieux, mais il ne prend toujours en compte mes champs dates ???

  6. #6
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,
    dans ta requête, les champs ne correspondent pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO prestation_beta (IDot, date_realisation,......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    values ('".$date1."','".$date2."','".$user."', '".$ref."', '".......
    Il n'y a pas de valeur pour IDot

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2008, 12h56
  2. [Tableaux] Problème avec la fonction str_split
    Par sasaas dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2008, 10h48
  3. [Tableaux] problème avec la fonction split()
    Par Marcus15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 11h17
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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