8768 sujets

Développement web côté serveur, CMS

Bonjour, je travaille actuellement sous phpmyadmin et j’ai un petit problème.
En effet, j’ai deux tables (dans des bases différentes) qui portent le même nom, dans l’une ma 1ère colonne s’appelle nom_port_carte. Dans l’autre table j’aimerais splitter cette colonne (nom_port_carte) dans 5 champs à savoir : nom, slot, port, carte et déport.

Mon objectif est donc de transférer les données de nom_port_carte dans 5 champs (nom, slot, port, carte et déport).

A savoir que dans nom_port_carte se trouve des données comme ci-dessous :
RGP011_RIGUEPEU-4-EG4P-1(PORT-1)

Donc dans la 2ème table avec les 5 champs j’aimerais obtenir :

nom : RGP011_RIGUEPEU
slot : 4
port : 1
carte : EG4P
déport : null

CSY8621_COUSSAY-1-EG4P-1(DEPORT GE)
nom : CSY8621_COUSSAY
slot : 1
port : null
carte : EG4P
déport : DEPORT GE

Il faut donc splitter, découper cette chaîne en fonction des tirets.

Partie du code que j'ai écrit pour le transfert :


public void gestRtn() throws SQLException, IOException, FileNotFoundException {
        
        Connection con = Connector_IGPV2_full.getInstance().getCon();
        Connection con2 = Connector_IGPV2_2.getInstance().getCon();
        
        ResultSet rs = con.prepareStatement("SELECT nom_port_carte from perffh_igpv2_1.rtn_sfp").executeQuery();
        
        while(rs.next()) {
            
            PreparedStatement ps = con2.prepareStatement("INSERT INTO rtn (nom, slot, port, carte, deport
                    + "description) values (?,?,?,?,?)");

ps.setString(1, extractNom(rs.getString("nom_port_carte")));
        ps.setString(2, extractSlot(rs.getString("nom_port_carte")));
        ps.setString(3, extractPort(rs.getString("nom_port_carte")));
        ps.setString(4, extractCarte(rs.getString("nom_port_carte")));
        ps.setString(5, extractDeport(rs.getString("nom_port_carte")));

ps.executeUpdate();
            ps.close();
        }
        rs.close();
        con.close();
        con2.close();
    }


Quelqu'un peut me donner un coup de pouce ? SVP

Merci par avance pour votre aide, Cordialement. Smiley biggrin
Smiley cligne



J'ai tenter quelque chose afin de régler mon problème mais j'ai quelques difficultés.

En effet, je teste pas à pas et pour le slot je n'arrive pas à obtenir 4, j'obtiens :

4EM6F1(0043BRW5)

Voici mon code :



/**
     * Découpe le champ nom_port_carte
     * @param nom
     * @return String[]  0 = nom / 1 = slot / 2 = port / 3 = carte / 4 = deport
     */
    private String[] cutNom(String nom) {
        String[] finalSplit = new String[5];
        if (nom != null && !nom.equals("NULL") && nom.length() > 10) {
            String temp3 = nom.substring(0, nom.indexOf("-"));
            nom = temp3.replaceAll("\\s", "_") + " " + nom.substring(nom.indexOf("-"));
            nom = nom.replaceAll("\\-", "");
            nom = nom.replaceAll("\\(", "");
            nom = nom.replaceAll("\\)", "");
            nom = nom.replaceAll("\\s", "\\|");
            String[] rawSplit = nom.split("\\|");
            finalSplit = new String[5];
 
            finalSplit[0] = rawSplit[0];
            finalSplit[1] = rawSplit[1];
            //finalSplit[2] = rawSplit[2];
            //finalSplit[3] = rawSplit[3];
            //rawSplit[3] = rawSplit[3].replace("-", "/");
            //String[] temp = rawSplit[4].split("-");
            //finalSplit[2] = rawSplit[2] + " " + temp[0] + "/" + temp[1];
            //finalSplit[3] = rawSplit[3];
            //String[] temp2 = rawSplit[4].split("/");
            //finalSplit[4] = temp[2] + " " + temp2[0] + "/" + temp2[1];
        }
        return finalSplit;
    }

Modifié par Sora1853 (09 May 2019 - 08:27)
Bon j'ai réussi mon problème en revanche c'est que certain nom on est des tirets et cela me pose problème :

Version avant :

upload/1557408747-75527-versionavant.png

Version après :

upload/1557408787-75527-versionaprns.png

Et voici mon code maintenant :

upload/1557408805-75527-maversion.png