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

JDBC Java Discussion :

Insert into DB SQL en java


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut Insert into DB SQL en java
    Bonjour,


    Après multiples recherches et essais, je suis perdu...


    Je n'arrive pas à reprendre la valeur du Texfield pour l'ajouter dans ma DB SQL.

    Erreur :com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: FUNCTION numero.getInt does not exist


    Mon erreur devrait se trouver ici :

    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
     //-------------------------------Ajouter-----------------------//
        ////////TEST////////
        @FXML
        private void AjouterDB(ActionEvent event) {
            try {
     
     
                Connection connexion = Connexiondb.Connect();
                //Excecute la requete et envoie dans ResultSet
     
     
     
                String RequeteAjout = "INSERT INTO `joueurs`(`JoueurID`,`Numero`, `Prenom`, `Nom`, `Poste`, `Date_de_naissance`, `Nationalite`, `ClubID`) VALUES (NULL,numero.getInt(4),NULL,NULL, NULL,NULL,NULL ,'1')";
                /*TFPrenom.getText(), TFNom.getText(), TFPoste.getText(), TFDate_de_naissance.getText() , TFNationalite.getText()*/
                PreparedStatement PreparedStmt = connexion.prepareStatement(RequeteAjout);
                PreparedStmt.executeUpdate(RequeteAjout);
                //TEST DEBUG///
                System.out.println("Obtention des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Ajout impossible à effectuer.\nErreur :" + e);
            }
        }



    Code : PanelCtrl.java
    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
     
    package AfficherListeDB.Controleur;
     
     
    import AfficherListeDB.ConnexionDB;
    import AfficherListeDB.Joueurs;
    import com.sun.javafx.scene.layout.region.Margins;
    import com.sun.xml.internal.ws.commons.xmlutil.Converter;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.TextField;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.control.Button;
    import javax.print.attribute.DateTimeSyntax;
    import javax.swing.*;
    import java.net.URL;
    import java.sql.*;
    import java.sql.Date;
    import java.text.SimpleDateFormat;
    import java.util.*;
    import java.util.logging.SimpleFormatter;
     
     
    public class PanelCtrl implements Initializable {
        //Declaration des Variables du Tableau
        @FXML
        private TableView<Joueurs> Tableau;
        @FXML
        private TableColumn<Joueurs, String> Nom;
        @FXML
        private TableColumn<Joueurs, String> Prenom;
        @FXML
        private TableColumn<Joueurs, String> Poste;
        @FXML
        private TableColumn<Joueurs, Integer> numero;
        @FXML
        private TableColumn<Joueurs, String> Date_de_naissance;
        @FXML
        private TableColumn<Joueurs, String> Nationalite;
        @FXML
        private Button BAffiche;
        private Connection connection = null;
        private Statement PreparedStmt = null;
        private ResultSet RequeteAjout = null;
        private ObservableList<Joueurs> JoueursList;
        private ConnexionDB Connexiondb;
     
     
        //initialise le contenu
        @Override
        public void initialize(URL url, ResourceBundle resources) {
            Connexiondb = new ConnexionDB();
        }
     
        //------------------------------AfficherDB---------------------//
        @FXML
        private void AfficheDB(ActionEvent event) {
            try {
                Connection connexion = Connexiondb.Connect();
                JoueursList = FXCollections.observableArrayList();
                //Excecute la requete et envoie dans ResultSet
                ResultSet requete = connexion.createStatement().executeQuery("SELECT * FROM joueurs");
                while (requete.next()) {
                    //Obtiention des elements de la db
                    JoueursList.add(new Joueurs(
                            requete.getString(4),
                            requete.getString(3),
                            requete.getString(5),
                            requete.getInt(2),
                            requete.getString(6),
                            requete.getString(7)));
     
                }
                //System.out.println("Obtention des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Requête impossible à effectuer Erreur :" + e);
            }
            //Ajouter la valeur de la requete dans le Panel
            //ATTENTION utiliser les mêmes valeurs que les fx:id du fichier FXML!
     
            Nom.setCellValueFactory(new PropertyValueFactory<>("Nom"));
            Prenom.setCellValueFactory(new PropertyValueFactory<>("Prenom"));
            Poste.setCellValueFactory(new PropertyValueFactory<>("Poste"));
            numero.setCellValueFactory(new PropertyValueFactory<>("numero"));
            Date_de_naissance.setCellValueFactory(new PropertyValueFactory<>("Date_de_naissance"));
            Nationalite.setCellValueFactory(new PropertyValueFactory<>("Nationalite"));
     
            //System.out.println("ajout des le tableau : ok ");
     
            Tableau.setItems(null);
            Tableau.setItems(JoueursList);
     
        }
        //-------------------------------Ajouter-----------------------//
        ////////TEST////////
        @FXML
        private void AjouterDB(ActionEvent event) {
            try {
     
     
                Connection connexion = Connexiondb.Connect();
                //Excecute la requete et envoie dans ResultSet
     
     
     
                String RequeteAjout = "INSERT INTO `joueurs`(`JoueurID`,`Numero`, `Prenom`, `Nom`, `Poste`, `Date_de_naissance`, `Nationalite`, `ClubID`) VALUES (NULL,numero.getInt(4),NULL,NULL, NULL,NULL,NULL ,'1')";
                /*TFPrenom.getText(), TFNom.getText(), TFPoste.getText(), TFDate_de_naissance.getText() , TFNationalite.getText()*/
                PreparedStatement PreparedStmt = connexion.prepareStatement(RequeteAjout);
                PreparedStmt.executeUpdate(RequeteAjout);
                //TEST DEBUG///
                System.out.println("Obtention des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Ajout impossible à effectuer.\nErreur :" + e);
            }
        }
        /*
        ///TO DO
        @FXML
        private void SupprimerDB(ActionEvent event) {
            try {
     
     
                Connection connexion = Connexiondb.Connect();
                //Excecute la requete et envoie dans ResultSet
                String RequeteAjout = "INSERT INTO joueurs(JoueurID,Numero, Prenom, Nom, Poste,Date_de_naissance, Nationalite, CLUBID) VALUES ('',"+numero.getText()+","+Prenom.getText()+"," + Nom.getText() + "," + Poste.getText() + "," + Date_de_naissance.getText() + "," + Nationalite.getText() + ",'1')";
                PreparedStatement PreparedStmt = connexion.prepareStatement(RequeteAjout);
                PreparedStmt.executeUpdate(RequeteAjout);
                //TEST DEBUG///
                System.out.println("Obtention des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Ajout impossible à effectuer.\nErreur :" + e);
            }
        }
        ///TO DO
        @FXML
        private void ModifierDB(ActionEvent event) {
            try {
     
     
                Connection connexion = Connexiondb.Connect();
                //Excecute la requete et envoie dans ResultSet
                String RequeteAjout = "INSERT INTO joueurs(JoueurID,Numero, Prenom, Nom, Poste,Date_de_naissance, Nationalite, CLUBID) VALUES ('',"+numero.getText()+","+Prenom.getText()+"," + Nom.getText() + "," + Poste.getText() + "," + Date_de_naissance.getText() + "," + Nationalite.getText() + ",'1')";
                PreparedStatement PreparedStmt = connexion.prepareStatement(RequeteAjout);
                PreparedStmt.executeUpdate(RequeteAjout);
                //TEST DEBUG///
                System.out.println("Obtention des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Ajout impossible à effectuer.\nErreur :" + e);
            }
        }
        */
    }
    Code : Panel.FXML
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import javafx.scene.control.Button?>
    <?import javafx.scene.control.Label?>
    <?import javafx.scene.control.SplitPane?>
    <?import javafx.scene.control.TableColumn?>
    <?import javafx.scene.control.TableView?>
    <?import javafx.scene.control.TextField?>
    <?import javafx.scene.layout.Pane?>
     
    <Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="505.0" prefWidth="765.0" xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" fx:controller="AfficherListeDB.Controleur.PanelCtrl">
       <children>
          <SplitPane prefHeight="505.0" prefWidth="552.0">
             <items>
                 <TableView fx:id="Tableau" prefHeight="200.0" prefWidth="200.0">
                  <columns>
                      <TableColumn fx:id="Nom" prefWidth="89.99996948242188" text="Nom" />
                      <TableColumn fx:id="Prenom" prefWidth="110.0" text="Prénom" />
                      <TableColumn fx:id="Poste" prefWidth="97.0" text="Poste" />
                      <TableColumn fx:id="numero" prefWidth="62.0" text="Numéro" />
                      <TableColumn fx:id="Date_de_naissance" prefWidth="119.0" text="Date de Naissance" />
                      <TableColumn fx:id="Nationalite" prefWidth="78.0" text="Nationalité" />
                  </columns>
                </TableView>
             </items>
          </SplitPane>
           <!--- < A Ajouter  /> -->
             <Button fx:id="BAjouter" layoutX="588.0" layoutY="346.0" mnemonicParsing="false" onAction="#AjouterDB" prefHeight="25.0" prefWidth="68.0" text="Ajouter" />
           <!--- <   <Button fx:id="BSupprimer" onAction="#SupprimerDB" layoutX="614.0" layoutY="389.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="95.0" text="Supprimer" />
              <Button fx:id="BModifier" onAction="#ModifierDB" layoutX="662.0" layoutY="346.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="68.0" text="Modifier" />
              /> --> <Button fx:id="BAffiche" layoutX="586.0" layoutY="444.0" mnemonicParsing="false" onAction="#AfficheDB" text="Afficher la liste de joueurs" />
              <Label layoutX="568.0" layoutY="59.0" prefHeight="17.0" prefWidth="37.0" text="Nom :" />
              <TextField fx:id="TFNom" layoutX="622.0" layoutY="55.0" prefHeight="25.0" prefWidth="127.0" promptText="Nom" />
              <Label layoutX="568.0" layoutY="86.0" prefHeight="17.0" prefWidth="55.0" text="Prénom :" />
              <TextField fx:id="TFPrenom" layoutX="622.0" layoutY="82.0" prefHeight="25.0" prefWidth="127.0" promptText="Prénom" />
              <Label layoutX="568.0" layoutY="114.0" prefHeight="17.0" prefWidth="55.0" text="Poste :" />
              <TextField fx:id="TFPoste" layoutX="622.0" layoutY="110.0" prefHeight="25.0" prefWidth="127.0" promptText="Poste" />
              <Label layoutX="568.0" layoutY="144.0" prefHeight="17.0" prefWidth="55.0" text="Numéro :" />
              <TextField fx:id="TFnumero" layoutX="622.0" layoutY="140.0" prefHeight="25.0" prefWidth="127.0" promptText="Numéro" />
              <Label layoutX="571.0" layoutY="175.0" prefHeight="17.0" prefWidth="68.0" text="Ddn :" />
              <TextField fx:id="TFDate_de_naissance" layoutX="622.0" layoutY="171.0" prefHeight="25.0" prefWidth="127.0" promptText="ex. 2017-01-01" />
              <Label layoutX="571.0" layoutY="203.0" prefHeight="17.0" prefWidth="68.0" text="Nation. :" />
              <TextField fx:id="TFNationalite" layoutX="622.0" layoutY="199.0" prefHeight="25.0" prefWidth="127.0" promptText="Nationalité" />
           </children>
        </Pane>
    Code : Joueurs.java
    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
     
    package AfficherListeDB;
     
     
     
     
     
    public class Joueurs {
        private String Nom;
        private String Prenom;
        private String Poste;
        private int numero;
        private String Date_de_naissance;
        private String Nationalite;
     
        //Constructeurs
     
        public Joueurs(String nom, String prenom, String poste, int numero, String date_de_naissance, String nationalite) {
            Nom = nom;
            Prenom = prenom;
            Poste = poste;
            this.numero = numero;
            Date_de_naissance = date_de_naissance;
            Nationalite = nationalite;
        }
     
     
        //Getters
     
        public String getNom() {return Nom;}
        public String getPrenom() {return Prenom;}
        public String getPoste() {return Poste;}
        public int getNumero() {return numero;}
        public String getDate_de_naissance() {return Date_de_naissance;}
        public String getNationalite() {return Nationalite;}
     
     
        //Setters
     
     
        public void setNom(String nom) {Nom = nom;}
        public void setPrenom(String prenom) {Prenom = prenom;}
        public void setPoste(String poste) {Poste = poste;}
        public void setNumero(int numero) {this.numero = numero;}
        public void setDate_de_naissance(String date_de_naissance) {Date_de_naissance = date_de_naissance;}
        public void setNationalite(String nationalite) {Nationalite = nationalite;}
    }
    Code : ConnexionDB.java (Main)

    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
     
    package AfficherListeDB;
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    import java.sql.*;
     
     
    public class ConnexionDB extends Application {
     
        @Override
        public void start(Stage primaryStage) throws Exception{
            Parent root = FXMLLoader.load(getClass().getResource("vue/Panel.fxml"));
            primaryStage.setTitle("Tableau de Joueur");
            Scene scene = new Scene(root);
            primaryStage.setScene(scene);
            primaryStage.setResizable(true);
            primaryStage.show();
        }
     
        public Connection Connect(){
            try {
                /** connexion a la base de données a changer suivant votre configuration
                 * Déclaration des variables de connection
                 * @since 01/2017
                 */
                String url = "jdbc:mysql://localhost:3306/poo";
                String user = "root";
                String pass = "";
     
                Class.forName("com.mysql.jdbc.Driver");
                Connection connexion = DriverManager.getConnection(url, user, pass);
              //  System.out.println("Driver OK");
                return connexion;
     
            } catch (ClassNotFoundException | SQLException e) {
                // gestion des erreurs
                System.out.println("Pas trouvé le Driver erreur :"+e);
            }
            return null;
        }
        public static void main(String[] args) {
            launch(args);
        }
     
    }
    Votre aide serait la bienvenue !

    Ps : Si vous avez des conseils, je suis preneur. Toute remarque est positive ! Je précise que je suis débutant


    Bien à vous,

    Miguel

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Ca ne saurait en effet pas marché, la DB ne connaissant aucune instruction s'apellant numero.getInt(4). Tu t'es trompé dans la création du string de la requête.

    Mais de toute manière pour utiliser les preparedstatement il faut faire comme expliquer ici :

    https://docs.oracle.com/javase/7/doc...Statement.html
    https://java.developpez.com/faq/jdbc...paredStatement

    Et donc tu vas te retrouver avec qlq chose du genre un moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String sql = "INSERT INTO TABLE (nom, prenom, tel) VALUES(?,?,?)"; 
    PreparedStatement statement = connection.prepareStatement(sql); 
    //en spécifiant bien les types SQL cibles 
    statement.setString(1,"toto"); 
    statement.setString(2,montextfield2.getText()); 
    statement.setString(3,"tutu");
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut
    Bonjour,


    Un grand merci !


    Voici ma modification :

    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
     
     //-------------------------------Ajouter-----------------------//
        @FXML
        private void AjouterDB(ActionEvent event) {
            try {
     
     
                Connection connexion = Connexiondb.Connect();
                //Excecute la requete et envoie dans ResultSet
     
     
     
                String RequeteAjout = "INSERT INTO `joueurs`(`JoueurID`,`Numero`, `Prenom`, `Nom`, `Poste`, `Date_de_naissance`, `Nationalite`, `ClubID`) VALUES (?,?,?,?,?,?,?,?)";
                /*TFPrenom.getText(), TFNom.getText(), TFPoste.getText(), TFDate_de_naissance.getText() , TFNationalite.getText()*/
                PreparedStatement PreparedStmt = connexion.prepareStatement(RequeteAjout);
                PreparedStmt.setObject(1, null);
                PreparedStmt.setString(2,TFnumero.getText());
                PreparedStmt.setString(3, TFPrenom.getText());
                PreparedStmt.setString(4,TFNom.getText());
                PreparedStmt.setString(5,TFPoste.getText());
                PreparedStmt.setString(6,TFDate_de_naissance.getText());
                PreparedStmt.setString(7,TFNationalite.getText());
                PreparedStmt.setString(8,"1");
                PreparedStmt.executeUpdate();
                //TEST DEBUG///
                System.out.println("Ajout des éléments : ok");
            } catch (SQLException e) {
                System.out.println("Ajout impossible à effectuer.\nErreur :" + e);
            }
        }

    J'ai encore une "bête" question, pourquoi il n'accepte pas cette ligne alors que mon numéro est bien en int dans ma DB ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PreparedStmt.setInt(2,TFnumero.getInt());

    bàt

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Parce que la classe javafx.scene.control.TextField n'a pas de méthode getInt().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PreparedStmt.setInt(2,Integer.valueOf(TFnumero.getText()));
    A+.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Par défaut
    Ok merci, je clôture


    Bonne journée à vous

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

Discussions similaires

  1. Boucle et 1 seul INSERT Into pour SQL
    Par lounou dans le forum Langage
    Réponses: 5
    Dernier message: 06/05/2015, 21h23
  2. Horaire de l'INSERT INTO dans SQL
    Par lounou dans le forum Langage
    Réponses: 4
    Dernier message: 09/05/2014, 23h55
  3. [AC-2003] INSERT INTO de SQL SERVER vers ACCESS en ADO
    Par FMJ dans le forum VBA Access
    Réponses: 6
    Dernier message: 05/11/2009, 17h31
  4. PROBLEME INSERT INTO PL/SQL
    Par Bizoo dans le forum PL/SQL
    Réponses: 7
    Dernier message: 22/04/2008, 14h07
  5. Syntaxe d'une variable boolean dans INSERT INTO en SQL
    Par frevale dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/05/2006, 19h26

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