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 :

Le fichier de traitement.php de formulaire ne remonte rien [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut Le fichier de traitement.php de formulaire ne remonte rien
    Bonjour,

    Je suis novice en développement, et cela fait plusieurs jours que je sèche sur mon formulaire. Aujourd'hui, je n'ai plus aucun retour du fichier de traitement, ni erreur, ni insertion dans la base de donnée. Je pense qu'une logique doit m'échapper.

    je souhaite utiliser un formulaire "remise-materiels.html" pour enregistrer les données dans mysql et imprimer simultanément le formulaire .
    Le fichier de traitement "traitementmobile.php", ne fonctionne pas. J'ai consulté beaucoup de sujet similaire, mais je ne trouve rien qui m'aide. Je fais donc appelle à votre savoir.

    Voici mes code php et html :

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php
    // Parametres mysql 
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD,DB_DATABASE)
    or die('Impossible de se connecter : ' . mysqli_error());
    // sélection de la base de données
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_ok = "Votre demande a bien été prise en compte.";
    $message = $msg_erreur;
    // vérification des champs
    if (empty($_POST['NOM'])) {
        $message .= "NOM<br/>";
    }
    if (empty($_POST['PRENOM'])) {
        $message .= "PRENOM<br/>";
    }
    if (empty($_POST['EMAIL'])) {
        $message .= "EMAIL<br/>";
    }
    if (empty($_POST['SERVICE'])) {
        $message .= "SERVICE<br/>";
    }
    if (empty($_POST['SIM'])) {
        $message .= "SIM<br/>";
    }
    if (empty($_POST['NUMERO'])) {
        $message .= "NUMERO DE MOBILE<br/>";
    }
    if (empty($_POST['COMPTE'])) {
        $message .= "NUMERO DU COMPTE<br/>";
    }
    if (empty($_POST['MARQUE'])) {
        $message .= "MARQUE DU MOBILE<br/>";
    }
    if (empty($_POST['MODELE'])) {
        $message .= "MODELE DU MOBILE<br/>";
    }
    if (empty($_POST['IMEI'])) {
        $message .= "IMEI<br/>";
    }
    if (empty($_POST['SN'])) {
        $message .= "S/N DU MOBILE<br/>";
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
      echo $message;
     
    // sinon c'est ok
    } else {
     
      if(isset($_POST['checkbox']) and !empty($_POST['checkbox']))
    { 
        $checkbox =  $_POST['checkbox'];
        $sql = array(); 
         foreach( $checkbox as $index => $values ) {
            $sql[] = '(NULL,'.$values['EQUIPEMENT'].')';
        }
        $checkbox = mysqli_query('INSERT INTO telephone-mobile (checkbox) VALUES '.implode(',', $sql));
     
    } 
    if(isset($_POST['date']) and !empty($_POST['date']))
    { 
        $date =  $_POST['datedebut' OR 'datefin'];
        $sql = array(); 
        foreach ($date as $row) {
     
            $date = mysqli_query('INSERT INTO telephone-mobile (date) VALUES ' .query(',', $sql));
            }
        }
    if(isset($_POST['values']) and !empty($_POST['values']))
    {
        foreach($_POST as $index => $values) {
            $_POST = mysqli_query('INSERT INTO telephone-mobile (nom,prenom,email) VALUES ' .query(',', $sql));
    }
    $res = "INSERT INTO telephone-mobile VALUES ('".$NOM."', '".$PRENOM."', '".$EMAIL."', '".$SERVICE."', '".$SIM."', "
            . "'".$NUMERO."', '".$COMPTE."', '".$MARQUE."', '".$MODELE."', '".$IMEI."', "
            . " '".$Chargeur."', '".$CableUSB."', '".$Casque."', '".$Cartememoire."', '".$CoqueHouse."', '".$Autre."',"
            . " '".$etatremise."', '".$etatretour."', '".$datedebut."', '".$datefin."'())";
     
                $res = mysqli_query('INSERT INTO telephone-mobile VALUES '.implode(',', $sql));
     
      if ($res) {
        echo $msg_ok;
      } else {
        echo mysqli_error($sql);
      }
    }
    }
    ?>
    Code html : 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtmll/DTD/xhtml-transitional.dtd">
    <html xmlns="http://www.w3.org.199/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <title>Enregistrement</title>
            <link href="form.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <div>
                <form target="_top" method="post" action="traitementmobile.php">
                    <fieldset id="TELEPHONE">
                        <p class="titre1" align="center">REMISE DE MATERIELS</p>
                        <br /><br /><br /><br />
                        <p class="titre" align="center">TELEPHONE</p>
                        <br /><br /><br /><br /><br /><br />
                        <label>MARQUE :</label>
                        <select name="MARQUE">
                            <option value=""></option>
                            <option value="NOKIA">NOKIA</option>
                            <option value="SAMSUNG">SAMSUNG</option>
                            <option value="WIKO">WIKO</option>
                        </select>
                        <br />
                        <label>MODELE :</label>
                        <select name="MODELE">
                            <option value=""></option>
                            <option value="6700">6700</option>
                            <option value="2330">2330</option>
                            <option value="GALAXY S3">GALAXY S 3</option>
                            <option value="KAR 2">KAR 2</option>
                            <option value="KAR 3">KAR 3</option>
                        </select>
                        <p id="CHAMPS">
                        <label>S/N :</label>
                        <input type="text" size="30" name="SN"></input>
                        <label>IMEI :</label>
                        <input type="text" size="30" name="IMEI"></input>
                        <br />
                        <label>SIM :</label>
                        <input type="text" size="30" name="SIM"></input>
                        <label>NUMERO :</label>
                        <input type="text" size="30" name="NUMERO"></input>
                        <br />
                        <label>VALEUR :</label>
                        <input type="text" size="30" name="VALEUR"></input>
                        <label>COMPTE :</label>
                        <select name="COMPTE">
                            <option value=""></option>
                            <option value="0000000">0000000</option>
                        </select>
                        </P>
                        <p id="EQUIPEMENTS"><label>EQUIPEMENTS:</label>
                            <input name="EQUIPEMENTS[]" value="Chargeur" type="checkbox" />Chargeur
                            <input name="EQUIPEMENTS[]" value="CableUSB" type="checkbox" />Cable USB
                            <input name="EQUIPEMENTS[]" value="Casque" type="checkbox" />Casque<br />
                            <input name="EQUIPEMENTS[]" value="Cartememoire" type="checkbox" />Carte memoire
                            <input name="EQUIPEMENTS[]" value="CoqueHouse" type="checkbox" />Coque/House
                            <input name="EQUIPEMENTS[]" value="Autre" type="checkbox" />Autre</p>
                        <p class="titre2" align="center">UTILISATEUR</p>
                        <br /><br /><br /><br />
                        <label>NOM :</label>
                        <select name="NOM">
                            <option value=""></option>
                            <option value="BRUZESSE">BRUZESSE</option>
                            <option value="BLANCHETIERE">BLANCHETIERE</option>
                            <option value="GUILLOU">GUILLOU</option>
                        </select>
                        <label>PRENOM :</label>
                        <select name="PRENOM">
                            <option value=""></option>
                            <option value="BRUZESSE">AGNES</option>
                            <option value="BLANCHETIERE">MAUD</option>
                            <option value="GUILLOU">OLIVIER</option>
                        </select><br />
                        <label>EMAIL :</label>
                        <select name="EMAIL">
                            <option value=""></option>
                            <option value="a.bruzzese@cc-sudestuaire.fr">a.bruzzese@cc-sudestuaire.fr</option>
                            <option value="m.blanchetiere@cc-sudestuaire.fr">m.blanchetiere@cc-sudestuaire.fr</option>
                            <option value="o.guillou@cc-sudestuaire.fr">o.guillou@cc-sudestuaire.fr</option>
                        </select>
                        <label>SERVICE :</label>
                        <select name="SERVICE">
                            <option value=""></option>
                            <option value="FINANCES">FINANCES</option>
                            <option value="DEV.ECO ET TOURISME">DEV.ECO ET TOURISME</option>
                            <option value="INFORMATIQUE">INFORMATIQUE</option>
                        </select>
                        <br /><br />
                        Je m'engage à* :<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;prendre soin du matériel qui m'est confié,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;faire un usage strictement professionnel du téléphone et de son forfait,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;restituer ce matériel au service SI à la fin de mes missions sur ce poste ou en cas de remise de &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nouveau matériel,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;signaler tout dysfonctionnement au service SI,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;ne pas insérer la carte SIM dans un autre téléphone sans l'accord du service SI,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;ne pas insérer une autre carte SIM dans ce téléphone,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;modifier le code PIN à la réception de ce téléphone et à le remettre sur 0000 au<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;préalable de sa restitution.<br />
     
                        <meta charset="utf-8">
                            <title>jQuery UI Datepicker - Icon trigger</title>
                            <link rel="stylesheet" href=".\jquery-ui-1.9.2.custom\css\jquery-ui-1.9.2.custom.css">
                                <script src=".\jquery-ui-1.9.2.custom\js\jquery-1.8.3.js"></script>
                                <script src=".\jquery-ui-1.9.2.custom\js\jquery-ui-1.9.2.custom.js"></script>
                                <script>
                                    $(function() {
                                        $("#datedebut").datepicker({
                                            showOn: "button",
                                            buttonImage: "./jquery-ui-1.9.2.custom/calendar.gif",
                                            buttonImageOnly: true,
                                            buttonText: "Cliquez"
                                        });
                                        $("#datefin").datepicker({
                                            showOn: "button",
                                            buttonImage: "./jquery-ui-1.9.2.custom/calendar.gif",
                                            buttonImageOnly: true,
                                            buttonText: "Cliquez"
                                        });
                                    });
                                    jQuery(function($) {
                                        $.datepicker.regional['fr'] = {
                                            closeText: 'Fermer',
                                            prevText: 'Précédent',
                                            nextText: 'Suivant',
                                            currentText: 'Aujourd\'hui',
                                            monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
                                                'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
                                            monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin',
                                                'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
                                            dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
                                            dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
                                            dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
                                            weekHeader: 'Sem.',
                                            dateFormat: 'dd/mm/yy',
                                            firstDay: 1,
                                            isRTL: false,
                                            showMonthAfterYear: false,
                                            yearSuffix: ''};
                                        $.datepicker.setDefaults($.datepicker.regional['fr']);
                                    });
                                </script>
                                <p>Date de remise:<input type="text" id="datedebut" class="datepicker"></input></p>
                                <p id="SIGNATURE1" align="right"><label>SIGNATURE:</label>
                                <p id="ETAT1"><label>État de remise:</label>
                                    <input name="ETAT1[]" value="Neuf" type="checkbox" />Neuf
                                    <input name="ETAT1[]" value="Très bon" type="checkbox" />Très bon
                                    <input name="ETAT1[]" value="Bon" type="checkbox" />Bon
                                    <input name="SIGNATURE1" size="25" type="text" /></p></p>
                                <p>Date de retour: <input type="text" id="datefin" class="datepicker"></input></p>
                                <p id="SIGNATURE2" align="right"><label>SIGNATURE:</label>
                                    <p id="ETAT2"><label>État de retour:</label>
                                    <input name="ETAT2[]" value="Neuf" type="checkbox" />Neuf
                                    <input name="ETAT2[]" value="Très bon" type="checkbox" />Très bon
                                    <input name="ETAT2[]" value="Bon" type="checkbox" />Bon
                                    <input name="SIGNATURE2" size="25" type="text" /></p></p>
                            </link>
                            <p class="titre3" align="center">COMMENTAIRES</p>
                            <br /><br /><br /><br /><br />
                            <fieldset id="COMMENTAIRES"><textarea name="comments" style="width: 674px; height: 42px" ></textarea>
                            </fieldset>
                            <p id="buttons">
                                <input value="Envoyer" type="submit"/>&nbsp;&nbsp;&nbsp;&nbsp;
                                <input value="Recommencer" type="reset"/>
                                </p>
                        </meta>
                    </fieldset>
                </form>
            </div>
        </body>
    </html>

    Je vous remercie par avance de votre aide.
    Jean-Michel

    Serveur WAMP et outil NetBeans

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour Jean-Michel,

    Quand tu dis
    Aujourd'hui, je n'ai plus aucun retour du fichier de traitement, ni erreur, ni insertion dans la base de donnée.
    Cela concerne également les messages de type "Champ vide" ? Si tu ne remplis rien de ton formulaire tu as un retour d'erreur sur la page traitementmobile.php ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir Max,

    Merci pour ta réponse.

    Non, si je ne rempli pas les champs, le comportement est normal, j'ai le retour du php, qui me précise les champs omis.

    J'ai bien eu des erreurs concernant des fonctions mysqli, renvoyé par WAMP, puis à force de modifications plus rien... Plus d'erreur, mais pas de données non plus. Le problème viens surement du traitementmobile.php, mais d'ou ??? Je ne suis même pas sûr de mes fonctions et variables.

    Jean-Michel.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Déjà, ça, c'est pas une bonne idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($date as $row) {
    	$date = mysqli_query('INSERT INTO telephone-mobile (date) VALUES ' .query(',', $sql));
    }
    Tu écrases dans la boucle la variable sur laquelle tu boucles je sais pas trop ce que ça fait, mais je crains des résultats bizarres...

    Et là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST as $index => $values) {
    	$_POST = mysqli_query('INSERT INTO telephone-mobile (nom,prenom,email) VALUES ' .query(',', $sql));
    }
    C'est pareil, en pire, vu que tu écrases $_POST qui est une super-globale (autrement dit que tu n'es pas censé modifier)

    Pour le reste, j'ai du mal à voir ce que tu veux faire. On dirait que tu as une seule table et que tout va dedans en vrac On peut avoir la structure de ta table ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Bonjour Jean-Michel,

    Effectivement, cela vient de ton fichier 'traitementmobile.php' mais je voulais m'assurer que tu avais des retours du fichier php.

    Pour les 3 conditions si tout est remplis, tu ne rentreras jamais dans tes conditions, donc aucun retour.

    La première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['checkbox']) and !empty($_POST['checkbox']))
    Tu n'auras jamais rien dans $_POST['checkbox'], tu as du regarder un tuto mais il faut quand même remplacer le 'checkbox' par le nom de tes checkbox sinon on ne sait pas à quoi cela correspond.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['EQUIPEMENTS']) and !empty($_POST['EQUIPEMENTS']))
    Idem pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['date']) and !empty($_POST['date']))
    'date' ne correspond à rien, il faut que tu ajoute un champ 'name' à tes deux champs date pour ensuite récupérer la valeur dans ton fichier .php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="datedebut" class="datepicker" name="datedebut"></input>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['datedebut']) and !empty($_POST['datedebut']))
    Pour le dernier rebelote
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['values']) and !empty($_POST['values']))
    $_POST['values'] ne veut rien dire, et comme tu à déjà testé tes valeurs en début de fichier tu n'as plus besoin de les re-tester ici.

    Pour les requêtes, Celira a tout dit.

    Pour moi ton fichier est bien fouillis par rapport à la complexité de ton formulaire.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir,

    Merci à vous deux.

    Je vais tâcher d'appliquer tout ça, même si je n’appréhende pas bien les requêtes (Je vous informerai de la suite).

    Pour info comme tu me le demande Celira, cela correspond à trois tables de ma BdD. Voici les structures : ( et là, je me dis, zut, effectivement trois tables...)

    Je souhaite créer un formulaire pour enregistrer des infos dans BdD, et l'imprimer simultanément.


    Structure de la table `telephone-mobile`
    Code sql : 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
    --
     
    CREATE TABLE IF NOT EXISTS `telephone-mobile` (
      `MARQUE` varchar(100) NOT NULL,
      `MODELE` varchar(100) NOT NULL,
      `IMEI` int(26) NOT NULL,
      `SN` varchar(26) DEFAULT NULL,
      `VALEUR` varchar(6) NOT NULL,
      `Chargeur` varchar(32) DEFAULT NULL,
      `CableUSB` varchar(32) DEFAULT NULL,
      `Casque` varchar(32) DEFAULT NULL,
      `Cartememoire` varchar(32) DEFAULT NULL,
      `CoqueHouse` varchar(32) DEFAULT NULL,
      `Autre` varchar(32) DEFAULT NULL,
      `etatremise` text,
      `etatretour` text,
      `datedebut` date DEFAULT NULL,
      `datefin` date DEFAULT NULL,
      UNIQUE KEY `IMEI` (`IMEI`),
      KEY `MOBILE` (`MARQUE`,`MODELE`,`SN`),
      KEY `VALEUR` (`VALEUR`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    Structure de la table `ligne mobile`
    --
     
    CREATE TABLE IF NOT EXISTS `ligne mobile` (
      `SIM` int(100) NOT NULL,
      `NUMERO` varchar(100) NOT NULL,
      `COMPTE` varchar(100) NOT NULL,
      PRIMARY KEY (`SIM`),
      UNIQUE KEY `SIM` (`SIM`,`NUMERO`),
      KEY `COMPTE` (`COMPTE`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
     Structure de la table `user`
    --
     
    CREATE TABLE IF NOT EXISTS `user` (
      `CODE AGENT` int(11) NOT NULL,
      `NOM` char(100) NOT NULL,
      `PRENOM` char(100) NOT NULL,
      `EMAIL` varchar(100) NOT NULL,
      `SERVICE` varchar(100) NOT NULL,
      PRIMARY KEY (`CODE AGENT`),
      UNIQUE KEY `CODE AGENT` (`CODE AGENT`),
      UNIQUE KEY `EMAIL_2` (`EMAIL`),
      KEY `NOM` (`NOM`,`SERVICE`),
      KEY `EMAIL` (`EMAIL`),
      KEY `CODE AGENT_2` (`CODE AGENT`),
      KEY `PRENOM` (`PRENOM`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    J'ai une base avec quatre tables et je prévois un autre formulaire similaire.


    Bien j'y ai passé un peu de temps ce soir, après les modification sur vos conseils, j'ai de nouveau des retour d'erreur qui concerne les requêtes.
    ex :
    Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\formulaire-web\traitementmobile.php on line 64
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    } else {
     
      if(isset($_POST['EQUIPEMENTS']) and !empty($_POST['EQUIPEMENTS']))
    { 
        $checkbox =  $_POST['EQUIPEMENTS'];
        $sql = array(); 
         foreach( $_POST as $index => $values ) 
         {    
         $res = mysqli_query($sql);/* ligne 64*/
        }

    Encore merci pour votre aide à tout les deux.

    Jean-Michel.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je m'y connais assez peu en SQL, mais je crois pas que ça ressemble beaucoup à une requête SQL ça...

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Salut Jean-Michel,

    Premier vrai problème, tes tables. Pour tes trois tables il te manques déjà un identifiant unique en clé primaire, comme idTelephone par exemple pour la table telephone-mobile.

    Pour la première table, les équipements posent problème et je pense que c'est pour ça que tu t'y perds. Tes champs équipements sont des VARCHAR ce qui veut dire que tu a prévu de mettre par exemple Chargeur => Chargeur.
    Maintenant imagine que tu as 100 mobiles dans ta base et que ce n'est plus Chargeur mais Chargeur_USB que tu veux mettre, tu modifie unes par unes les 100 entrées ?

    Si ton formulaire n'évolue quasiment jamais, tu peux dans ce cas là mettre tes champs équipements en 'TINYINT' (1 ou 0) et la déjà c'est plus lisible, par exemple Chargeur => 1


    Après pour faire proprement, normalement tu devrais plutôt séparer un peu tout ça, une table TELEPHONE-MOBILE (sans les équipements), une table EQUIPEMENTS (0 => 'Chargeur', 1=> 'Carte mémoire'), et une table HAS_EQUIPEMENT par exemple. Mais cette solution demande déjà plus de connaissances et tes champs équipements de ton formulaire devront être pris de la table EQUIPEMENTS.


    Tout dépend l'utilisation de ton formulaire, il y'a encore une troisième solution à laquelle je pense qui est plus simple si tu veux juste imprimer, à toi de voir.
    Elle consiste a créer juste un champ EQUIPEMENTS de type TEXT dans ta table TELEPHONE-MOBILE et d'insérer sous forme d'une chaîne de caractères les équipements (Exemple : EQUIPEMENTS => 'Chargeur, Carte mémoire...').
    Si il n'y a aucun traitement de tes données derrière c'est selon moi le meilleur moyen et le plus rapide.

    Dis nous quel est ton but (sans forcément dévoiler le projet) et je t'aiderais dans ton développement.



    Pour la parenthèse sur l'erreur mysqli, tu n'as pas finis d'en avoir si tu débute en PHP, il faut que tu cherche l'erreur dans un moteur de recherche ou dans la doc. Mysql.
    Si tu lis le code d'erreur, tu peux voir qu'il te demande deux paramètres et tu n'en donne qu'un.

    mysqli_query prend deux paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($connection,$requete)
    donc dans ton cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($connect,'INSERT INTO telephone-mobile....//dans ton exemple')
    Par contre comme dis Bovino, je ne vois pas trop ce que tu nous fais avec ton $sql = array().

    Bonne journée.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir Max,

    Pour la requête effectivement Bovino à mis le doigt dessus (merci), je l'ai copier d'un tuto qui traitait des cases à cocher et j'avoue que je tâtonne...

    Pour les clés primaires, je ne comprend pas, j'en ai pourtant désigné en INT, une colonne par table ayant des numéros uniques ?

    Mon but est d'enregistrer les informations concernant la distribution des téléphones mobiles.
    Puis des autres matériels via d'autres formulaires "html" et fichiers "php" pour le traitement en m'inspirant de celui des mobiles(une fois qu'il sera fonctionnel).

    Ce n'est pas juste pour imprimer(des formulaires d'impression j'en ai fait avec excel en vba par le passé).

    Aujourd'hui toutes les informations sont traités sur plusieurs fichiers tableurs, pour savoir qui à quoi et depuis quand, je dois consulter 4 fichiers différents.
    Pour la remise de matériel, j'ai des fichiers "doc" que je dois remplir à chaque fois, enregistrer et imprimer.
    C'est chronophage et pas du tout intuitif.
    Il n'y a pas de secret, je souhaite imprimer et enregistrer simultanément les informations.

    J'ai choisi php et mysql, car je pense que c'est plus souple et évolutif.

    J'aimerai pouvoir rééditer les informations, donc les stoker dans la BdD, pour consulter par exemple à partir d'un utilisateur, ce qu'il a comme matériels.

    Je vais appliquer tes bons conseils tout en continuant de lire les cours php...

    Je te tiens au courant.

    Encore merci pour ton aide, Max.

    Jean-Michel.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir,

    J'ai modifié selon tes conseils, Max, du moins, j'espère avoir compris.

    Je remets ci-dessous les script de mon formulaire, html, php et base mysql.

    Le formulaire html
    Code html : 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    <html xmlns="http://www.w3.org.199/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <title>Enregistrement</title>
            <link href="form.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <div>
                <form target="_top" method="post" action="traitementmobile.php">
                    <fieldset id="TELEPHONE">
                        <p class="titre1" align="center">REMISE DE MATERIELS</p>
                        <br /><br /><br /><br />
                        <p class="titre" align="center">TELEPHONE</p>
                        <br /><br /><br /><br /><br /><br />
                        <label>MARQUE :</label>
                        <select name="MARQUE">
                            <option value=""></option>
                            <option value="NOKIA">NOKIA</option>
                            <option value="SAMSUNG">SAMSUNG</option>
                            <option value="WIKO">WIKO</option>
                        </select>
                        <br />
                        <label>MODELE :</label>
                        <select name="MODELE">
                            <option value=""></option>
                            <option value="6700">6700</option>
                            <option value="2330">2330</option>
                            <option value="GALAXY S3">GALAXY S 3</option>
                            <option value="KAR 2">KAR 2</option>
                            <option value="KAR 3">KAR 3</option>
                        </select>
                        <p id="CHAMPS">
                            <label>S/N :</label>
                            <input type="text" size="30" name="SN"></input>
                            <label>IMEI :</label>
                            <input type="text" size="30" name="IMEI"></input>
                            <br />
                            <label>SIM :</label>
                            <input type="text" size="30" name="SIM"></input>
                            <label>NUMERO :</label>
                            <input type="text" size="30" name="NUMERO"></input>
                            <br />
                            <label>VALEUR :</label>
                            <input type="text" size="30" name="VALEUR"></input>
                            <label>COMPTE :</label>
                            <select name="COMPTE">
                                <option value=""></option>
                                <option value="0000000">0000000</option>
                            </select>
                        </P>
                        <p id="EQUIPEMENTS"><label>EQUIPEMENTS:</label>
                            <input name="EQUIPEMENTS[]" value="Chargeur" type="checkbox" />Chargeur
                            <input name="EQUIPEMENTS[]" value="CableUSB" type="checkbox" />Cable USB
                            <input name="EQUIPEMENTS[]" value="Casque" type="checkbox" />Casque<br />
                            <input name="EQUIPEMENTS[]" value="Cartememoire" type="checkbox" />Carte memoire
                            <input name="EQUIPEMENTS[]" value="CoqueHouse" type="checkbox" />Coque/House
                            <input name="EQUIPEMENTS[]" value="Autre" type="checkbox" />Autre</p>
                        <p class="titre2" align="center">UTILISATEUR</p>
                        <br /><br /><br /><br />
                        <label>NOM :</label>
                        <select name="NOM">
                            <option value=""></option>
                            <option value="BRUZESSE">BRUZESSE</option>
                            <option value="BLANCHETIERE">BLANCHETIERE</option>
                            <option value="GUILLOU">GUILLOU</option>
                        </select>
                        <label>PRENOM :</label>
                        <select name="PRENOM">
                            <option value=""></option>
                            <option value="BRUZESSE">AGNES</option>
                            <option value="BLANCHETIERE">MAUD</option>
                            <option value="GUILLOU">OLIVIER</option>
                        </select><br />
                        <label>EMAIL :</label>
                        <select name="EMAIL">
                            <option value=""></option>
                            <option value="a.bruzzese@cc-sudestuaire.fr">a.bruzzese@cc-sudestuaire.fr</option>
                            <option value="m.blanchetiere@cc-sudestuaire.fr">m.blanchetiere@cc-sudestuaire.fr</option>
                            <option value="o.guillou@cc-sudestuaire.fr">o.guillou@cc-sudestuaire.fr</option>
                        </select>
                        <label>SERVICE :</label>
                        <select name="SERVICE">
                            <option value=""></option>
                            <option value="FINANCES">FINANCES</option>
                            <option value="DEV.ECO ET TOURISME">DEV.ECO ET TOURISME</option>
                            <option value="INFORMATIQUE">INFORMATIQUE</option>
                        </select>
                        <br /><br />
                        Je m'engage à* :<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;prendre soin du matériel qui m'est confié,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;faire un usage strictement professionnel du téléphone et de son forfait,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;restituer ce matériel au service SI à la fin de mes missions sur ce poste ou en cas de remise de &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nouveau matériel,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;signaler tout dysfonctionnement au service SI,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;ne pas insérer la carte SIM dans un autre téléphone sans l'accord du service SI,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;ne pas insérer une autre carte SIM dans ce téléphone,<br />
                        -&nbsp;&nbsp;&nbsp;&nbsp;modifier le code PIN à la réception de ce téléphone et à le remettre sur 0000 au<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;préalable de sa restitution.<br />
     
                        <meta charset="utf-8">
                            <title>jQuery UI Datepicker - Icon trigger</title>
                            <link rel="stylesheet" href="./jquery-ui-1.9.2.custom/css/jquery-ui-1.9.2.custom.css">
                                <script src="./jquery-ui-1.9.2.custom/js/jquery-1.8.3.js"></script>
                                <script src="./jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"></script>
                                <script>
                                    $(function() {
                                        $("#datedebut").datepicker({
                                            showOn: "button",
                                            buttonImage: "./jquery-ui-1.9.2.custom/calendar.gif",
                                            buttonImageOnly: true,
                                            buttonText: "Cliquez"
                                        });
                                        $("#datefin").datepicker({
                                            showOn: "button",
                                            buttonImage: "./jquery-ui-1.9.2.custom/calendar.gif",
                                            buttonImageOnly: true,
                                            buttonText: "Cliquez"
                                        });
                                    });
                                    jQuery(function($) {
                                        $.datepicker.regional['fr'] = {
                                            closeText: 'Fermer',
                                            prevText: 'Précédent',
                                            nextText: 'Suivant',
                                            currentText: 'Aujourd\'hui',
                                            monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
                                                'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
                                            monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin',
                                                'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
                                            dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
                                            dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
                                            dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
                                            weekHeader: 'Sem.',
                                            dateFormat: 'dd/mm/yy',
                                            firstDay: 1,
                                            isRTL: false,
                                            showMonthAfterYear: false,
                                            yearSuffix: ''};
                                        $.datepicker.setDefaults($.datepicker.regional['fr']);
                                    });
                                </script>
                                <p>Date de remise:<input type="text" id="datedebut" class="datepicker" name="datedebut"></input></p>
                                <p id="SIGNATURE1" align="right"><label>SIGNATURE:</label>
                                    <p id="ETAT1" name="etatderemise"><label>État de remise:</label>
                                        <input name="ETAT1[]" value="Neuf" type="radio" />Neuf
                                        <input name="ETAT1[]" value="Très bon" type="radio" />Très bon
                                        <input name="ETAT1[]" value="Bon" type="radio" />Bon
                                        <input name="SIGNATURE1" size="25" type="text" /></p></p>
                                <p>Date de retour: <input type="text" id="datefin" class="datepicker" name="datefin"></input></p>
                                <p id="SIGNATURE2" align="right"><label>SIGNATURE:</label>
                                    <p id="ETAT2" name="etatderetour"><label>État de retour:</label>
                                        <input name="ETAT2[]" value="Neuf" type="radio" />Neuf
                                        <input name="ETAT2[]" value="Très bon" type="radio" />Très bon
                                        <input name="ETAT2[]" value="Bon" type="radio" />Bon
                                        <input name="SIGNATURE2" size="25" type="text" /></p></p>
                            </link>
                            <p class="titre3" align="center">COMMENTAIRES</p>
                            <br /><br /><br /><br /><br />
                            <fieldset id="COMMENTAIRES"><textarea name="comments" style="width: 682px; height: 16px" ></textarea>
                            </fieldset>
                            <p id="buttons">
                                <input value="Envoyer/Imprimer" type="submit" onclick="window.print()"/>&nbsp;&nbsp;&nbsp;&nbsp;
                                <input value="Recommencer" type="reset"/>
                            </p>
                        </meta>
                    </fieldset>
                </form>
            </div>
        </body>
    </html>

    Le traitement php
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    <?php
     
    // Parametres mysql
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());
    // sélection de la base de données
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_erreur2 = "Oops !!! Il dois manquer quelques choses.";
    $msg_ok = "Matériel enregistré.";
    $message = $msg_erreur;
    $message2 = $msg_erreur2;
    // vérification des champs
    if (empty($_POST['NOM'])) {
        $message .= "NOM<br/>";
    }
    if (empty($_POST['PRENOM'])) {
        $message .= "PRENOM<br/>";
    }
    if (empty($_POST['EMAIL'])) {
        $message .= "EMAIL<br/>";
    }
    if (empty($_POST['SERVICE'])) {
        $message .= "SERVICE<br/>";
    }
    if (empty($_POST['SIM'])) {
        $message .= "SIM<br/>";
    }
    if (empty($_POST['NUMERO'])) {
        $message .= "NUMERO DE MOBILE<br/>";
    }
    if (empty($_POST['COMPTE'])) {
        $message .= "NUMERO DU COMPTE<br/>";
    }
    if (empty($_POST['MARQUE'])) {
        $message .= "MARQUE DU MOBILE<br/>";
    }
    if (empty($_POST['MODELE'])) {
        $message .= "MODELE DU MOBILE<br/>";
    }
    if (empty($_POST['IMEI'])) {
        $message .= "IMEI<br/>";
    }
    if (empty($_POST['SN'])) {
        $message .= "S/N DU MOBILE<br/>";
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
        echo $message;
     
    // sinon c'est ok
    } else {
     
        if (isset($_POST['equipements'])) {
            foreach ($_POST as $choix => $values) {
                echo "accessoires : ", $values, "<br>";
            }
        }
    //{
        //$checkbox = $_POST['Chargeur'];
        //$checkbox = $_POST['CableUSB'];
        //$checkbox = $_POST['Casque'];
        //$checkbox = $_POST['Cartememoire'];
        //$checkbox = $_POST['CoqueHouse'];
        //foreach ($_POST as $index => $values) {
        // $res = "INSERT INTO equipements VALUES ('" . $Chargeur . "', '" . $CableUSB . "', '" . $Casque . "', '" . $Cartememoire . "', '" . $CoqueHouse . "'())";
        //$res = mysqli_query($connect, 'INSERT INTO equipements VALUES ' . implode(',', $sql)); }
     
     
    if (isset($_POST['datedebut'])) {
        foreach ($_POST as $datedebut => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $datedebut . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
    if (isset($_POST['datefin'])) {
        foreach ($_POST as $datefin => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $datefin . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
     
    if (isset($_POST['telephone-mobile'])) {
        foreach ($_POST as $index => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $SIM . "', '" . $NUMERO . "', '" . $COMPTE . "', '" . $MARQUE . "', '" . $MODELE . "', '" . $IMEI . "', '" . $datedebut . "', '" . $datefin . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
     
    if (isset($_POST['telephone-mobile'])) {
        foreach ($_POST as $index => $values) {
            $res = "INSERT INTO user VALUES ('" . $NOM . "', '" . $PRENOM . "', '" . $EMAIL . "', '" . $SERVICE . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO user VALUES');
        }
    }
     
    if (isset($_POST['etatderemise'])) {
        $radio = $_POST['Neuf'];
        $radio = $_POST['TresBon'];
        $radio = $_POST['Bon'];
     
        echo "état ?", $_POST; {
            $res = "INSERT INTO etatderemise VALUES ('" . $Neuf . "', '" . $TresBon . "', '" . $Bon . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO etatderemise VALUES');
        }
    }
     
    if (isset($_POST['etatderetour'])) {
        $radio = $_POST['Neuf'];
        $radio = $_POST['TresBon'];
        $radio = $_POST['Bon'];
     
        echo "état ?", $_POST; {
            $res = "INSERT INTO etatderetour VALUES ('" . $Neuf . "', '" . $TresBon . "', '" . $Bon . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO etatderetour VALUES');
        }
    }
    if ($comments!="") {
        echo "Valeur du textarea: ",$comments;
    }
     
    if ($res) {
        echo $msg_ok;
    } else {
        echo $message2;
    }
    }
    ?>
    Les tables sql
    Code sql : 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    ET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données :  `materiels`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `equipements`
    --
     
    CREATE TABLE IF NOT EXISTS `equipements` (
      `Chargeur` tinyint(4) NOT NULL,
      `CableUSB` tinyint(4) NOT NULL,
      `Casque` tinyint(4) NOT NULL,
      `Cartememoire` tinyint(4) NOT NULL,
      `CoqueHouse` tinyint(4) NOT NULL,
      `idequipements` int(11) NOT NULL,
      PRIMARY KEY (`idequipements`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `etatderemise`
    --
     
    CREATE TABLE IF NOT EXISTS `etatderemise` (
      `Neuf` tinyint(4) NOT NULL,
      `TresBon` tinyint(4) NOT NULL,
      `Bon` tinyint(4) NOT NULL,
      `idremise` int(11) NOT NULL,
      PRIMARY KEY (`idremise`),
      KEY `Neuf` (`Neuf`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `etatderetour`
    --
     
    CREATE TABLE IF NOT EXISTS `etatderetour` (
      `Neuf` tinyint(4) NOT NULL,
      `TresBon` tinyint(4) NOT NULL,
      `Bon` tinyint(4) NOT NULL,
      `idretour` int(11) NOT NULL,
      PRIMARY KEY (`idretour`),
      KEY `Neuf` (`Neuf`,`TresBon`,`Bon`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `ligne mobile`
    --
     
    CREATE TABLE IF NOT EXISTS `ligne mobile` (
      `SIM` int(100) NOT NULL,
      `NUMERO` varchar(100) NOT NULL,
      `COMPTE` varchar(100) NOT NULL,
      PRIMARY KEY (`SIM`),
      UNIQUE KEY `SIM` (`SIM`,`NUMERO`),
      KEY `COMPTE` (`COMPTE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `pc`
    --
     
    CREATE TABLE IF NOT EXISTS `pc` (
      `PCMARQUE` varchar(100) NOT NULL,
      `PCMODELE` varchar(100) NOT NULL,
      `SNPC` int(20) NOT NULL,
      PRIMARY KEY (`SNPC`),
      KEY `MARQUE` (`PCMARQUE`,`PCMODELE`,`SNPC`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `telephone-mobile`
    --
     
    CREATE TABLE IF NOT EXISTS `telephone-mobile` (
      `MARQUE` varchar(100) NOT NULL,
      `MODELE` varchar(100) NOT NULL,
      `IMEI` int(30) NOT NULL,
      `SN` varchar(26) DEFAULT NULL,
      `VALEUR` varchar(6) NOT NULL,
      `datedebut` date DEFAULT NULL,
      `datefin` date DEFAULT NULL,
      `COMMENTS` text,
      PRIMARY KEY (`IMEI`),
      UNIQUE KEY `IMEI` (`IMEI`),
      KEY `MOBILE` (`MARQUE`,`MODELE`,`SN`),
      KEY `VALEUR` (`VALEUR`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `user`
    --
     
    CREATE TABLE IF NOT EXISTS `user` (
      `CODE AGENT` int(11) NOT NULL,
      `NOM` char(100) NOT NULL,
      `PRENOM` char(100) NOT NULL,
      `EMAIL` varchar(100) NOT NULL,
      `SERVICE` varchar(100) NOT NULL,
      PRIMARY KEY (`CODE AGENT`),
      KEY `EMAIL` (`EMAIL`),
      KEY `PRENOM` (`PRENOM`),
      KEY `NOM` (`NOM`),
      KEY `SERVICE` (`SERVICE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    Voilà, J'ai essayé de clarifier.

    Maintenant j'ai une erreur en fin de traitement sur la variable "comments", je me suis inspiré de cours pour réduire le code php !

    J'espère que je suis sur la bonne voie.


    NB 2h30 plus tard... la commande echo ne m'apporte rien...!
    Je continue mes recherche en attendant votre réponse.

    Merci par avance de votre aide.

    Jean-Michel.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Bon après différentes modifications j'en suis au résultat qu'il n'y a plus d'erreur en fin de traitement, mais je n'ai rien d'enregistré dans ma base de données !

    Voici mon dernier code php :

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    <?php
     
    // Parametres mysql
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());
    // sélection de la base de données
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_erreur2 = "Oops !!! Il dois manquer quelques choses.";
    $msg_ok = "Matériel enregistré.";
    $message = $msg_erreur;
    $message2 = $msg_erreur2;
    // vérification des champs
    if (empty($_POST['NOM'])) {
        $message .= "NOM<br/>";
    }
    if (empty($_POST['PRENOM'])) {
        $message .= "PRENOM<br/>";
    }
    if (empty($_POST['EMAIL'])) {
        $message .= "EMAIL<br/>";
    }
    if (empty($_POST['SERVICE'])) {
        $message .= "SERVICE<br/>";
    }
    if (empty($_POST['SIM'])) {
        $message .= "SIM<br/>";
    }
    if (empty($_POST['NUMERO'])) {
        $message .= "NUMERO DE MOBILE<br/>";
    }
    if (empty($_POST['COMPTE'])) {
        $message .= "NUMERO DU COMPTE<br/>";
    }
    if (empty($_POST['MARQUE'])) {
        $message .= "MARQUE DU MOBILE<br/>";
    }
    if (empty($_POST['MODELE'])) {
        $message .= "MODELE DU MOBILE<br/>";
    }
    if (empty($_POST['IMEI'])) {
        $message .= "IMEI<br/>";
    }
    if (empty($_POST['SN'])) {
        $message .= "S/N DU MOBILE<br/>";
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
        echo $message;
     
    // sinon c'est ok
    } else {
     
        if (isset($_POST['equipements'])) {
     
        $checkbox = $_POST['Chargeur'];
        $checkbox = $_POST['CableUSB'];
        $checkbox = $_POST['Casque'];
        $checkbox = $_POST['Cartememoire'];
        $checkbox = $_POST['CoqueHouse'];
        foreach ($_POST as $index => $values) { 
        $res = "INSERT INTO equipements VALUES ('" . $Chargeur . "', '" . $CableUSB . "', '" . $Casque . "', '" . $Cartememoire . "', '" . $CoqueHouse . "'())";
     
        $res = mysqli_query($connect, 'INSERT INTO equipements VALUES ' . implode(',', $sql));
    }
        }
     
    if (isset($_POST['datedebut'])) {
        foreach ($_POST as $datedebut => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $datedebut . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
    if (isset($_POST['datefin'])) {
        foreach ($_POST as $datefin => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $datefin . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
     
    if (isset($_POST['telephone-mobile'])) {
        foreach ($_POST as $index => $values) {
            $res = "INSERT INTO telephone-mobile VALUES ('" . $SIM . "', '" . $NUMERO . "', '" . $COMPTE . "', '" . $MARQUE . "', '" . $MODELE . "', '" . $IMEI . "', '" . $datedebut . "', '" . $datefin . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
        }
    }
     
    if (isset($_POST['telephone-mobile'])) {
        foreach ($_POST as $index => $values) {
            $res = "INSERT INTO user VALUES ('" . $NOM . "', '" . $PRENOM . "', '" . $EMAIL . "', '" . $SERVICE . "'())";
     
            $res = mysqli_query($connect, 'INSERT INTO user VALUES');
        }
    }
     
    if (isset($_POST['etatderemise'])) {
        $radio = $_POST['Neuf'];
        $radio = $_POST['TresBon'];
        $radio = $_POST['Bon'];
     
        {
           $res = "INSERT INTO etatderemise VALUES ('" . $Neuf . "', '" . $TresBon . "', '" . $Bon . "'())";
           $res = mysqli_query($connect, 'INSERT INTO etatderemise VALUES');
        }
    }
     
    if (isset($_POST['etatderetour'])) {
        $radio = $_POST['Neuf'];
        $radio = $_POST['TresBon'];
        $radio = $_POST['Bon'];
     
        {
            $res = "INSERT INTO etatderetour VALUES ('" . $Neuf . "', '" . $TresBon . "', '" . $Bon . "'())";
            $res = mysqli_query($connect, 'INSERT INTO etatderetour VALUES');
        }
    }
    if (isset($_POST['comments'])) {
        foreach ($_POST as $comments => $values){
            $res = "INSERT INTO comments VALUES ('".$comments."'())";
    }
    }
    if ($res) {
        echo $msg_ok;
    } else {
        echo $message2;
    }
    }
    ?>
    Merci d'avance à tous pour votre aide.

    Et joyeuses fêtes.

    Jean-Michel

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ d'abord, il faut que tu saches que tu peux EDITER tes propres messages !
    Cela t'éviterait de copier x fois ton code, après chaque micro-modification...

    2/ il est clair que tu avances à tâtons, sans vraiment bien comprendre ce que tu fais...
    Par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <p id="EQUIPEMENTS"><label>EQUIPEMENTS:</label>
        <input name="EQUIPEMENTS[]" value="Chargeur" type="checkbox" />Chargeur
        <input name="EQUIPEMENTS[]" value="CableUSB" type="checkbox" />Cable USB
        <input name="EQUIPEMENTS[]" value="Casque" type="checkbox" />Casque<br />
        <input name="EQUIPEMENTS[]" value="Cartememoire" type="checkbox" />Carte memoire
        <input name="EQUIPEMENTS[]" value="CoqueHouse" type="checkbox" />Coque/House
        <input name="EQUIPEMENTS[]" value="Autre" type="checkbox" />Autre</p>
    2a/ Il s'agit alors de récupérer $_POST['EQUIPEMENTS'], et non $_POST['equipements'] (car les variables peuvent être sensibles à la casse).

    2b/ Le fait d'avoir plusieurs input avec de même name EQUIPEMENTS[], fait que la variable $_POST['EQUIPEMENTS'] est un array (pouvant donc contenir plusieurs valeurs).
    Ca, tu l'as plus ou moins compris, mais tu ne sais pas t'en servir...
    Pour t'en convaincre (et comprendre), tu peux l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST['EQUIPEMENTS']);
    2c/ $_POST['EQUIPEMENTS'] n'est QU'UNE partie de $_POST !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      if (isset($_POST['equipements'])) { // NON !
            foreach ($_POST as $choix => $values) { // re-NON !
                echo "accessoires : ", $values, "<br>";
            }
        }
    on applique le foreach sur $_POST['EQUIPEMENTS'] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      if ( !empty($_POST['EQUIPEMENTS'])) { // (j'en profite pour emplacer isset par !empty, plus approprié)
            echo "accessoires : <br>";
            foreach ($_POST['EQUIPEMENTS'] as $values) { // ($choix => n'est pas utile, puisque tu n'utilises pas les index dans la suite)
                echo $values . "<br>"; // attention cependant : $values contient la "value" (ex.: cartememoire), pas le texte affiché à coté de la checkbox (ex.: carte mémoire)
               // le point "." ( ici, après $values ) est préférable à la virgule "," pour la concaténation
            }
        }
    2d/ Le code précédent peut encore s'écrire plus simplement (et efficacement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if ( !empty($_POST['EQUIPEMENTS'])) { // j'en profite pour emplacer isset par !empty, plus approprié
            echo "accessoires : " . implode( '<br />', $_POST['EQUIPEMENTS']) . "<br />";
        }
    ou mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      if ( !empty($_POST['EQUIPEMENTS'])) {
            echo "accessoires : " . implode( ', ', $_POST['EQUIPEMENTS']); // j'ai choisi de les afficher sur la même ligne, séparés par une virgule ;)
        }
    Voir implode()
    Bon. Là, je crois que je t'ai perdu...

    Bref.
    Il faut que tu arrêtes de tâtonner et de prendre des bouts de code ici et là.
    Soit sûr de ce que tu fais.

    Tu aurais dû partir d'un formulaire SIMPLE, puis, progressivement, augmenter la difficulté.
    C'est d'ailleurs toujours possible : rajoute progressivement les éléments...

    3/ Enfin :
    Citation Envoyé par Jean-Michel G Voir le message
    ...J'ai choisi php et mysql, car je pense que c'est plus souple et évolutif...
    Ne confonds pas :



    Sur ce : Joyeux Noël !
    Dernière modification par Bovino ; 26/12/2014 à 07h48.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir jreaux62,

    Merci pour ton aide.

    A vrai dire, au début je suis parti d'un formulaire simple, mais je crois que j'ai augmenté la difficulté un peu trop vite...
    J'ai bien vu que je pouvais modifier un message, je pensais juste que de reposter mes codes était plus facile à suivre, sans remonter en haut du post.
    Quand à mon choix , comme tu l'as surement compris, je voulais dire solution "web".

    Bref, en relisant tout ça, je me suis aperçu que dans le traitement php, je demandais l'affichage des données. Hors ce que je souhaite, c'est imprimer le formulaire et enregistrer les données dans la base !

    Bon je reprends tout.

    Jean-Michel.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonjour et BONNE ET HEUREUSE ANNÉE à tous !

    Me revoilà avec mon code.
    J'ai tout repris et j’essaie d'apprendre et d'avancer petit à petit.(On trouve de tout et surtout sur l'extension "mysql", sur "mysqli" il y a moins d'infos ou de modèles)

    Là mon code ne me renvoie pas certain "var-dump" que j'ai inscrit pour le tester !
    (EQUIPEMENT, etatremise et etatretour)
    Et rien ne s'inscrit dans les tables...
    J'imagine que pour que les données s'enregistrent dans la base, il faut que tout le code ce soit exécuté correctement ?

    Pouvez-vous jeter un œil et m’aiguiller vers les corrections, svp ?

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
     
    <?php
     
    // Parametres mysql
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());
    // sélection de la base de données
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_erreur2 = "Oops !!! Il dois manquer quelques choses.";
    $msg_ok = "Matériel enregistré.";
    $message = $msg_erreur;
    $message2 = $msg_erreur2;
    $NOM = $_POST['NOM'];
    $PRENOM = $_POST['PRENOM'];
    $EMAIL = $_POST['EMAIL'];
    $SERVICE = $_POST['SERVICE'];
    $SIM = $_POST['SIM'];
    $NUMERO = $_POST['NUMERO'];
    $COMPTE = $_POST['COMPTE'];
    $MARQUE = $_POST['MARQUE'];
    $MODELE = $_POST['MARQUE'];
    $IMEI = $_POST['IMEI'];
    $SN = $_POST['SN'];
    $comments = $_POST['comments'];
    $datedebut = $_POST['datedebut'];
    $datefin = $_POST['datefin'];
    $_POST['EQUIPEMENTS'] = Array();
     
    // vérification des champs
    if (empty($_POST['NOM'])) {
        $message .= "NOM<br/>";
    }
    if (empty($_POST['PRENOM'])) {
        $message .= "PRENOM<br/>";
    }
    if (empty($_POST['EMAIL'])) {
        $message .= "EMAIL<br/>";
    }
    if (empty($_POST['SERVICE'])) {
        $message .= "SERVICE<br/>";
    }
    if (empty($_POST['SIM'])) {
        $message .= "SIM<br/>";
    }
    if (empty($_POST['NUMERO'])) {
        $message .= "NUMERO DE MOBILE<br/>";
    }
    if (empty($_POST['COMPTE'])) {
        $message .= "NUMERO DU COMPTE<br/>";
    }
    if (empty($_POST['MARQUE'])) {
        $message .= "MARQUE DU MOBILE<br/>";
    }
    if (empty($_POST['MODELE'])) {
        $message .= "MODELE DU MOBILE<br/>";
    }
    if (empty($_POST['IMEI'])) {
        $message .= "IMEI<br/>";
    }
    if (empty($_POST['SN'])) {
        $message .= "S/N DU MOBILE<br/>";
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
        echo $message;
     
    // sinon c'est ok
    } else {
        if (!empty($SIM) && !empty($NUMERO) && !empty($COMPTE) && !empty($MARQUE) && !empty($MODELE) && !empty($IMEI)) {
            {
                $res = "INSERT INTO telephone-mobile VALUES ('', '" .$SIM[0]. "', '" .$NUMERO[0]. "', '" .$COMPTE[0]. "', '" .$MARQUE[0]. "', '" .$MODELE[0]. "', '" .$IMEI[0]. "'())";
                $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
            }
        }
     
        if (!empty($_POST['EQUIPEMENTS'])) {
            var_dump($_POST['EQUIPEMENTS']);
            $checkbox['Chargeur'] = "Chargeur";
            $checkbox['CableUSB'] = "CableUSB";
            $checkbox['Casque'] = "Casque";
            $checkbox['Cartememoire'] = "Cartememoire";
            $checkbox['CoqueHouse'] = "CoqueHouse";
     
            foreach ($checkbox as $values) {
     
                $res = "INSERT INTO equipements VALUES ('','" .$Chargeur. "', '" .$CableUSB. "', '" .$Casque. "', '" .$Cartememoire. "', '" .$CoqueHouse. "'())";
                $res = mysqli_query($connect, 'INSERT INTO equipements VALUES');
            }
        }
        if (!empty($NOM) && !empty($PRENOM) && !empty($EMAIL) && !empty($SERVICE)) {
            var_dump(($NOM) && ($PRENOM) && ($EMAIL) && ($SERVICE));
            {
                $res = "INSERT INTO user VALUES ('','" .$NOM[0]. "', '" .$PRENOM[0]. "', '" .$EMAIL[0]. "', '" .$SERVICE[0]. "'())";
                $res = mysqli_query($connect, 'INSERT INTO user VALUES');
            }
        }
     
        if (!empty($datedebut)) {
            var_dump($datedebut);
            //foreach ($datedebut as $values)
            {
                $res = "INSERT INTO telephone-mobile VALUES ('" .$datedebut. "'())";
                $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
            }
        }
        if (!empty($datefin)) {
            var_dump($datefin);
            //foreach ($datefin as $values)
            {
                $res = "INSERT INTO telephone-mobile VALUES ('" .$datefin. "'())";
                $res = mysqli_query($connect, 'INSERT INTO telephone-mobile VALUES');
            }
        }
     
        if (!empty($_POST['etatderemise'])) {
            var_dump($_POST['etatderemise']);
            $radio = $_POST['Neuf'];
            $radio = $_POST['TresBon'];
            $radio = $_POST['Bon'];
            foreach ($radio as $values) {
     
                $res = "INSERT INTO etatderemise VALUES ('','" .$Neuf. "', '" .$TresBon. "', '" .$Bon. "'())";
                $res = mysqli_query($connect, 'INSERT INTO etatderemise VALUES');
            }
        }
     
        if (!empty($_POST['etatderetour'])) {
            var_dump($_POST['etatderetour']);
            $radio = $_POST['Neuf'];
            $radio = $_POST['TresBon'];
            $radio = $_POST['Bon'];
            foreach ($radio as $values) {
     
                $res = "INSERT INTO etatderetour VALUES ('','" .$Neuf. "', '" .$TresBon. "', '" .$Bon. "'())";
                $res = mysqli_query($connect, 'INSERT INTO etatderetour VALUES');
            }
        }
     
        if (!empty($_POST['comments'])) {
            var_dump($_POST['comments']);
            {
                $res = "INSERT INTO comments VALUES ('" .$comments. "'())";
                $res = mysqli_query($connect, 'INSERT INTO comments VALUES');
            }
        }
        if ($res) {
            echo $msg_ok;
        } else {
            echo $message2;
        }
    }
    ?>
    Petit rappel : Dans un premier temps je souhaite enregistrer les données du formulaire dans la base de données via "INSERT" (j'imprime simultanément mais cela n'est pas compliqué).
    Par la suite j'espère pouvoir appeler les données (NOM, Prénom,etc...) que je vais importer dans la base, via "SELECT"si j'ai bien compris.

    Merci d'avance pour votre aide.

    Jean-Michel.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ supprime la ligne 32 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['EQUIPEMENTS'] = Array();
    2/ if (empty($_POST['NOM'])) { :
    Tu as récupéré au dessus les $_POST dans des variables ($NOM = $_POST['NOM'];) : UTILISE-LES !
    Idem pour tous les autres...

    3/ "etatremise" et "etatretour" ne sont pas récupérés...

    4/ Pourquoi relancer un test, alors que tu l'as déjà été contrôlé avant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    } else {
        if (!empty($SIM) && !empty($NUMERO) && !empty($COMPTE) && !empty($MARQUE) && !empty($MODELE) && !empty($IMEI)) {
    5/ Kesako ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               $res = "INSERT INTO equipements VALUES ('','" .$Chargeur. "', '" .$CableUSB. "', '" .$Casque. "', '" .$Cartememoire. "', '" .$CoqueHouse. "'())";
                $res = mysqli_query($connect, 'INSERT INTO equipements VALUES');
    Il faut vraiment que tu apprennes la bonne syntaxe !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                $requete = "INSERT INTO equipements VALUES ('','" .$Chargeur. "', '" .$CableUSB. "', '" .$Casque. "', '" .$Cartememoire. "', '" .$CoqueHouse. "'())";
                $resultat = mysqli_query( $connect, $requete );

    Bref :
    Tout ça manque encore de rigueur et de logique.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonjour Jérôme,

    1 En fait j'ai le ligne 32, car j'avais une erreur "Notice:array to string conversion"... J'ai pensé à tors que cela m'aiderai.

    2/ if (empty($_POST['NOM'])) { :
    Tu as récupéré au dessus les $_POST dans des variables ($NOM = $_POST['NOM'] : UTILISE-LES !
    Je l'avais fais cela me semblais plus logique, mais ça ne fonctionnait pas, j'avais des erreurs "Notice: undefined index:"

    3/ "etatremise" et "etatretour" ne sont pas récupérés...
    Je vais chercher pourquoi !

    4/ Pourquoi relancer un test, alors que tu l'as déjà été contrôlé avant ?
    J'y ai bien pensé, mais quand j'ai modifié les lignes, erreur "Notice: undefined variable:"

    5/ Kesako ???
    Loc copia dins de forum (je l'ai copié depuis un forum)

    l faut vraiment que tu apprennes la bonne syntaxe !
    Je suis d'accord avec toi, il faut juste que je trouve les bon cours, correspondant car comme tu le sais ont trouve de tout sur le net
    ex: j'ai parfois vu "req" ou "res" ce qui correspond surement à "requete" et "resultat" mais comme les codes affichés sur son souvent incomplet...

    Bref. Encore merci pour ton aide Jérôme.

    Je vais appliquer tes corrections et je te tiens informé.

    Jean-Michel.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ tu peux déjà commencer par le manuel PHP :

    Je t'invite à t'intéresser sérieusment aux requêtes préparées, afin d'éviter les problèmes d'injection SQL.

    2/ $requete/$resultat, $query/$result,... ou peu importe.
    Ce qui est important, c'est de bien les différencier, et comprendre ce qu'on fait.
    $req/$res : ça se ressemble (et donc source d'erreur d'inattention)

  18. #18
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir,

    J'ai revu tout le code,

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
     
    <?php
     
    // Parametres mysql
    define('DB_SERVER', 'localhost'); // serveur mysql
    define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
    define('DB_SERVER_PASSWORD', ''); // mot de passe
    define('DB_DATABASE', 'materiels'); // nom de la base
    // Connexion au serveur mysql
    $connect = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE) or die('Impossible de se connecter : ' . mysqli_error());
    // sélection de la base de données
    $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
    <br/><br/>";
    $msg_erreur2 = "Oops !!! Il doit manquer quelques choses.";
    $msg_ok = "Matériel enregistré.";
    $message = $msg_erreur;
    $message2 = $msg_erreur2;
    $NOM = $_POST['NOM'];
    $PRENOM = $_POST['PRENOM'];
    $EMAIL = $_POST['EMAIL'];
    $SERVICE = $_POST['SERVICE'];
    $SIM = $_POST['SIM'];
    $NUMERO = $_POST['NUMERO'];
    $COMPTE = $_POST['COMPTE'];
    $MARQUE = $_POST['MARQUE'];
    $MODELE = $_POST['MODELE'];
    $IMEI = $_POST['IMEI'];
    $SN = $_POST['SN'];
    $VALEUR = $_POST['VALEUR'];
    $comments = $_POST['COMMENTS'];
    $datedebut = $_POST['datedebut'];
    $datefin = $_POST['datefin'];
    $EQUIP = $_POST['EQUIPEMENTS'];
    $remise = $_POST['remise'];
    $retour = $_POST['retour'];
     
     
    // vérification des champs
    if (empty($NOM)) {
        $message .= "NOM<br/>";
    }
    if (empty($PRENOM)) {
        $message .= "PRENOM<br/>";
    }
    if (empty($EMAIL)) {
        $message .= "EMAIL<br/>";
    }
    if (empty($SERVICE)) {
        $message .= "SERVICE<br/>";
    }
    if (empty($SIM)) {
        $message .= "SIM<br/>";
    }
    if (empty($NUMERO)) {
        $message .= "NUMERO DE MOBILE<br/>";
    }
    if (empty($COMPTE)) {
        $message .= "NUMERO DU COMPTE<br/>";
    }
    if (empty($MARQUE)) {
        $message .= "MARQUE DU MOBILE<br/>";
    }
    if (empty($MODELE)) {
        $message .= "MODELE DU MOBILE<br/>";
    }
    if (empty($IMEI)) {
        $message .= "IMEI<br/>";
    }
    if (empty($SN)) {
        $message .= "S/N DU MOBILE<br/>";
    }
    if (empty($VALEUR)) {
        $message .= "VALEUR DU MOBILE<br/>";
    }
    if (!empty($datedebut)) {
     
    }
    if (!empty($datefin)) {
     
    }
     if (!empty($comments)){
     
    }
    // si un champ est vide, on affiche le message d'erreur
    if (strlen($message) > strlen($msg_erreur)) {
     
        echo $message;
     
    // sinon c'est ok
    } else {
     
            {
                $requete = "INSERT INTO `telephone-mobile` (MARQUE, MODELE, IMEI, SN, VALEUR, datedebut, datefin, COMMENTS) VALUES ('" .$MARQUE. "', '" .$MODELE. "', '" .$IMEI. "', '".$SN."', '".$VALEUR."', '" .$datedebut. "', '" .$datefin. "', '" .$comments. "')";
                //$resultat = mysqli_query( $connect, $requete );
                if (mysqli_query($connect, $requete)) {
        echo "record telephone mobile";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
    }
            }
            {
                $requete = "INSERT INTO `ligne mobile` VALUES ('" .$SIM. "', '" .$NUMERO. "', '" .$COMPTE. "')";
                //$resultat = mysqli_query( $connect, $requete );
                if (mysqli_query($connect, $requete)) {
        echo "record ligne";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
    }
            }
     
        if (!empty($EQUIP)) {
     
            $Chargeur = 'Chargeur';
            $CableUSB = 'CableUSB';
            $Casque = 'Casque';
            $Cartememoire = 'Cartememoire';
            $CoqueHouse = 'CoqueHouse';
     
            foreach ($EQUIP as $value) {
     
                $requete = "INSERT INTO equipements  (Chargeur, CableUSB, Casque, Cartememoire, CoqueHouse) VALUES ('" .$Chargeur. "', '" .$CableUSB. "', '" .$Casque. "', '" .$Cartememoire. "', '" .$CoqueHouse. "')";
                //$resultat = mysqli_query( $connect, $requete );
            if (mysqli_query($connect, $requete)) {
        echo "record equip";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
    }
        }
        }      
            {
                $requete = "INSERT INTO user (NOM, PRENOM, EMAIL, SERVICE) VALUES ('" .$NOM. "', '" .$PRENOM. "', '" .$EMAIL. "', '" .$SERVICE. "')";
                //$resultat = mysqli_query( $connect, $requete );
            if (mysqli_query($connect, $requete)) {
        echo "record user";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
        }
            }
        /*if (!empty($datedebut)) {
            
            {
                //$requete = "INSERT INTO `telephone-mobile` (datedebut) VALUES ('" .$datedebut. "')";
                $resultat = mysqli_query( $connect, $requete );
            if (mysqli_query($connect, $requete)) {
        echo "record debut";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
        }
            }
        }
        if (!empty($datefin)) {
            
            {
                $requete = "INSERT INTO `telephone-mobile` (datefin) VALUES ('" .$datefin. "')";
                //$resultat = mysqli_query($connect, $requete );
            if (mysqli_query($connect, $requete)) {
        echo "record fin";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
        }
            }
        }*/
        if (!empty($remise)) {
     
            $Neuf = 'Neuf';
            $TresBon = 'TresBon';
            $Bon = 'Bon';
            foreach ($remise as $value) {
     
                $requete = "INSERT INTO etatderemise (Neuf, TresBon, Bon) VALUES ('" .$Neuf. "', '" .$TresBon. "', '" .$Bon. "')";
                //$resultat = mysqli_query($connect, $requete );
            if (mysqli_query($connect, $requete)) {
        echo "record remise";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
        }
            }
        }
        if (!empty($retour))  {
     
            $Neuf = 'Neuf';
            $TresBon = 'TresBon';
            $Bon = 'Bon';
            foreach ($retour as $value) {
     
                $requete = "INSERT INTO etatderetour (Neuf, TresBon, Bon) VALUES ('" .$Neuf. "', '" .$TresBon. "', '" .$Bon. "')";
                //$resultat = mysqli_query($connect, $requete );
                if (mysqli_query($connect, $requete)) {
        echo "record retour";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
            }
        }
        }
        /*if (!empty($comments)) {
            
            {
                $requete = "INSERT INTO `telephone-mobile` (COMMENTS) VALUES ('" .$comments. "')";
                //$resultat = mysqli_query($connect, $requete );
                if (mysqli_query($connect, $requete)) {
        echo "record comments";
    } else {
        echo "Error: " . $requete . "<br>" . mysqli_error($connect);
            }
        }
        }*/
        if ($resultat) {
            echo $msg_ok;
            mysqli_close($connect);
        } else {
            echo $message2;
        }
     
        }
    ?>
    Cela fonctionne en partie. J'y ai inclus des "echos" afin de voir les erreurs (notamment sql).
    Maintenant les données s'enregistrent dans la base, mais malheureusement, si une case est cochée, toutes les données, même celles des cases non cochées s'enregistrent également.
    Part contre si aucunes cases n'est cochées,(dans les arrays), j'ai une "Notice" Index indéfini pour le ou les "arrays" concernés !
    J'ai beau lire et relire le code et les tables, je ne vois pas ou est le problème, à part que ça concerne les arrays !

    Un coup d'oeil de votre part, verra peut-être le problème.

    Merci d'avance.

    Jean-Michel.

  19. #19
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 902
    Points : 6 681
    Points
    6 681
    Par défaut
    Un état ne peut pas être à la fois bon, très bon ou je ne sais quoi en même temps. Donc pour ça des checkbox sont inappropriées. À la place, tu peux utiliser soit un select, soit des boutons de radio.

    Aussi avant d'écrire $bidule = $_POST['bidule']; vérifie avant que $_POST['bidule'] est définie et avise au cas où il ne le serait pas. Ça t'évitera les notices en question.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 59
    Points : 13
    Points
    13
    Par défaut
    Bonsoir CosmoKnacki,

    Merci pour ta réponse. Pour les états "Bon", "Très bon", etc... ce sont des boutons radios et je pensais pouvoir utiliser un "foreach" pour récupérer le bouton sélectionné.
    Part contre, j'ai bien une partie de case à cocher qui peuvent être ou non cochés. Hors, c'est quand elle sont toutes vides que j'ai le "Notice" d'index non défini, idem pour les boutons radios.
    La dernière partie de boutons radios ne sera pas forcement sélectionné.

    Je vais continuer de chercher.

    Merci.

    Jean-Michel.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 4 1234 DernièreDernière

Discussions similaires

  1. traitement du fichier texte avec PHP,
    Par owenho dans le forum Langage
    Réponses: 9
    Dernier message: 15/07/2012, 23h03
  2. Aide pour Traitement d'un formulaire - PHP
    Par De Felger dans le forum Langage
    Réponses: 44
    Dernier message: 08/04/2012, 19h40
  3. Réponses: 1
    Dernier message: 10/08/2011, 16h44
  4. Récupérer $POST de formulaire créer par JAVASCRIPT pour traitement PHP
    Par rodblochon dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/03/2010, 06h14
  5. Traitement php d'un formulaire dynamique !
    Par Argol dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/03/2009, 16h10

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