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 :

Caractères accentués et transfert de données d'une table à autre table


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 79
    Points : 42
    Points
    42
    Par défaut Caractères accentués et transfert de données d'une table à autre table
    Bonsoir,

    J'ai un soucis que j'avais mis de coté depuis pas mal de temps et qui concerne les fameux caractères spéciaux.

    J'ai une fonction qui transporte des données d'une table à une autre.

    J'ai ma requete pour sortir les données, je converti alors avec les deux infos qui m'interesse en variable avec mysqli_real_escape_string:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        mysqli_select_db($connect, $database_connect);
    $query_circuit = "SELECT * FROM produits WHERE code = '$code'";
    $circuit = mysqli_query($connect, $query_circuit) or die(mysqli_error());
    $row_circuit = mysqli_fetch_assoc($circuit);
    $totalRows_circuit = mysqli_num_rows($circuit);
     
    $titre = mysqli_real_escape_string($connect, $row_circuit['nom']);
    $resume = mysqli_real_escape_string($connect, $row_circuit['resume']);
    puis je les insère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        $sql3 = "INSERT INTO itineraires (code, date, version, titre, resume) VALUES ('$newcode', NOW(), '$newversion', '$titre', '$resume')";
     
             if ($conn->query($sql3) === TRUE) {
      echo "Version mise à jour" . "\n";
    } else {
      echo "Error: " . $sql3 . "<br>" . $conn->error;
    }
    J'affiche mes deux variables suite à l'opération, pas de soucis. Mais lorsque je les vérifie dans la base, j'ai un soucis avec les accents.
    Lorsque j'affiche un formulaire permettant de modifier ces données, je vous aussi le problème des accents:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="titre" type="text" id="titre" size="50" maxlength="150" value="<?php echo htmlentities($row_sql['titre'], ENT_COMPAT, 'UTF-8'); ?>"/>

    Je tourne en rond après avoir fait beaucoup de test.

    J'avais réussi à résoudre ce soucis auparavant sur d'autres opérations en rajoutant sur mon connect:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_set_charset($connect, "utf8");
    Mais la je coince.

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 391
    Points : 4 806
    Points
    4 806
    Par défaut
    Bonjour,

    Le problème des accents est très connu en mysqli, c'est pour ça qu'il vaut mieux utiliser PDO.

    sinon il existe une solution pour éviter tout ça, c'est de modifier le jeu de caractère en "latiin1" lors de l'insertion et en "utf8mb4" lors de la sélection avec mysqli_set_charset du style procédural.

Discussions similaires

  1. [Débutant] problème du transfert de données d'une table à l'autre
    Par blida02 dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/05/2018, 00h16
  2. Réponses: 9
    Dernier message: 01/04/2016, 17h48
  3. Réponses: 2
    Dernier message: 18/03/2010, 14h31
  4. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 17h41
  5. Réponses: 3
    Dernier message: 07/06/2006, 13h05

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