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 :

accents insertion base de données [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    alors, je viens de faire un test avec uft8_decode et effectivement mon accent passe bien dans la BDD.
    Par contre, le code header ne fonctionne pas :/

    Ce qui m'inquiète, c'est que la je travaille en local avec mysql, mais une fois réglé, ca passe sur 1and1 et si ca ce trouve, ca ne sera pas la meme configuration...


    Edit : du coup, j'ai testé de mettre un fichier htaccess sur 1and1... Ca m'a tout simplement fait planté le site. Je ne maitrise pas la théorie, j'ai créé un fichier text mettant la ligne php_value default_charset ISO-8859-1
    J'ai uploadé le fichier à la racine du site, supprimé l'extension txt.

    Sur 1and1, je suis donc toujours en php 5.6
    J'ai tenté de mettre en header, mais aucun effet non plus.

    Pour patienté, j'ai donc utilisé la fonction utf8_decode()...

    Edit : j'ai également tenté un htaccess sur 1and1 avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Définir le codage de caractères
    AddDefaultCharset ISO-8859-1
    Mais ca ne fonctionne pas non plus.

    Après, je n'ai pas mis cette ligne de code dans mon fichier de connexion sur 1and1... ca peut peut-être aussi venir de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysqli->set_charset('latin1');
    J'ai l'impression d'en avoir mis partout que je ne sais plus ce qui est indispensable ou inutile...

  2. #22
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Puisque utf8_decode fonctionne et cette fonction comme le dit la doc elle convertit du utf-8 vers ISO-8859-1 , je vois qu'on en revient à l'option UTF-8..
    C'est vrai que se coller des utf8_decode, ça ne doit pas être du jeu.
    Pour le .htaccess avec php_value , faudrait que PHP soit un module APACHE et apparemment ce n'est pas le cas chez 1and1 . Malheureusement je ne pense pas qu'il te donne accès au php.ini sinon tu aurais positionné le default_charset à ISO-8859-1
    Pour le header il doit être tout en haut de ton script, 1ère ligne de préférence...
    Est-ce que tu as bien effectué tous les tests en local ? même si c'est vrai que si tu utilises WAMP pr exemple, ce n'est pas les mêmes réalités que ton site en ligne.

    Apparemment ton soucis semble plus complexe que ça, pas eu des difficultés chez moi avec les 2 solutions proposées.
    PS: Le AddDefautCharset n'a pas fonctionné chez moi, le defaut_charset de PHP prend la précédence donc j'étais toujours resté en UTF-8
    Le bienfait n'est jamais perdu

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    De ce que j'ai compris, chez 1and1, je peux mettre des php.ini dans tous les répertoires...

    Donc d'après vous, la seule solution qui me reste, c'est de tout convertir en utf-8 et abandonner le ISO-8859-1?

  4. #24
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Je ne veux pas être aussi catégorique même si la solution UTF-8 semble simple(pas besoin de changer l'encodage ni l'interclassement de ta BDD).
    Je te conseille ce lien https://www.julp.fr/articles/3-php-et-utf-8.html , j'espère que ça va te permettre de bien voir les choses et de te retrouver plus facilement. Malheureusement il ne passe plus par ici.

    Pour leheader comme précisé par Nighty , il doit être présent dans toutes les pages (première ligne de code de préférence) et avant un contenu,même pas un petit espace, ça aura pour incidence d'écraser l'encodage par défaut de PHP (même si je ne pense pas que ça soit la solution idéale, à voir).
    Il serait intéressant que tes scripts aient tous le même encodage suivant la solution que tu adopteras et pas de mix entre UTF-8, CP1252, et ISO-8859-1.
    Le bienfait n'est jamais perdu

  5. #25
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Bon ben yapuka !
    Merci, je reviens vers vous quand c'est fait et vous dire si ca s'est bien passé.

  6. #26
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Après d'autres recherches, le default_charset, peut être modifié avec init_set, ini_set('default_charset', 'ISO-8859-1'); donc on peut se passer de header pour. Donc si tu as un fichier inclut commun à toutes les pages, tu peux y mettre la ligne.
    Il y'a aussi le fichier .user.ini et comme PHP ne semble pas être un module apache chez toi, il pourra marcher, donc créer un fichier .user.ini à la racine du site et ajouter
    default_charset="ISO-8859-1".

    Tout dépend encore de l'hébergeur, à tester donc..
    Le bienfait n'est jamais perdu

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

    vouloir rester en ISO-8859-1 (latin1) est ridicule... et rétrograde.

    Non seulement UFT-8 est le format de caractères international * (standard Unicode) le plus utilisé,
    mais rien que pour afficher correctement le symbole €, il faudrait utiliser ISO-8859-15 (latin9) !
    * Idem pour les F.A.I. : ils privilégient UTF-8 pour la même raison.


    Ca prend à peine quelques heures (tests compris) pour TOUT passer un UTF-8...

    D'ailleurs, punk_sportif, si tu l'avais fait dès le début de cette discussion, tu aurais déjà fini !
    Dernière modification par Invité ; 20/05/2017 à 13h07.

  8. #28
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    J'ai fait quelques changements en passant en utf-8. Ca a l'air de fonctionner correctement. Mais je trouve ca illogique : tout est en utf-8, sauf mes champs de base en ISO-8859-1 et ca fonctionne quand même...

  9. #29
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Dans le lien que je t'ai donné .
    Comme vous le voyez, il n'y a en aucun cas lieu de réencoder vous-même les données à destination ou en provenance de MySQL dans la mesure où il les assure. Dans le cas contraire, c'est que ces jeux sont incorrects à un moment donné. Vous pourriez très bien avoir une table en latin1 (donc données réellement stockées en latin1) et les obtenir côté client en UTF-8 ; comme le contraire, écrire la requête d'insertion en UTF-8, MySQL, à sa réception, tentant de convertir les données d'UTF-8 en latin1
    On a vraiment tourner en rond dans cette histoire. Cette affaire d'encodage est vraiment "pénible" .Je viens de me rendre compte par exemple que CP1252 (latin1 de MYSQL) était une extension M$ de iso-8859-1.

    Mais bon, tout est bien qui finit bien.
    Le bienfait n'est jamais perdu

  10. #30
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Oui, c'est vraiment chiant. Les 2-3 fois ou j'ai fait des bases de données, me suis toujours posé la question de ce qu'il fallait prendre... Et c'est pas la première fois que je rencontre des problèmes d'accents en passant d'un système à un autre...

    Enfin, j'espère que mon code qui fonctionne en local ne posera pas de problème quand je l'aurais mis sur 1and1...

    Merci encore une fois à tous pour votre aide. C'est bien sympa d'aider les autres dans leurs problèmes

  11. #31
    Invité
    Invité(e)
    Par défaut
    Bonjour,**encore une fois, il ne faut pas confondre "encodage" et "interclassement" !

    1/ Tu peux sans problème modifier tous les interclassements (tables, champs) de ta bdd en :

    • utf8_general_ci



    2/ le choix de l'encodage se fait ensuite en PHP : (cf exemple)

  12. #32
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    1. Change ton interclassement en utf8_general_ci;
    2. Dans ton header mets le charset en utf8;
    3. et pour le php
      Code php : Sélectionner tout - Visualiser dans une fenêtre à part
      $mysqli = new mysqli('localhost', 'root', '', 'basefleury');  $mysqli->set_charset("utf8");
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  13. #33
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Salut tout le monde,

    J'ai de nouveau des problèmes d'accents, ce coup ci au niveau de l'export de ma base pour un fichier texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fputs($fp,$data['ref'].";".htmlentities($data['auteur'],ENT_NOQUOTES, 'utf-8')." ".htmlentities($data['titre'],ENT_NOQUOTES, 'utf-8').";".$res=str_replace("\r\n","<br> ",htmlentities($data['descriptif'],ENT_NOQUOTES, 'utf-8')).";".$res=str_replace("\r\n","<br> ",$htmlentities(data['descriptif'],ENT_NOQUOTES, 'utf-8'))."<br><br>".$res=str_replace("\r\n","<br>",htmlentities($data['commentaire'],ENT_NOQUOTES, 'utf-8')).";".$res=str_replace("\r\n"," ",$data['mots_cles']).";".$data['prix_vente'].";".$data['poids'].";".$data['rayonnage']."\r\n");
    Ca me donne des &eacute; à la place des é , des &egrave; à la place des è dans mon fichier texte...

    Vous avez une idée du pourquoi?

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

    Oui : htmlentities

  15. #35
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Si j'enlève htmlentities j'ai des é à la place des é et des è à la place des è...

    Ma base est toujours en latin_swedich... Quand j'ai voulu la convertir en utf-8 avec mysql, ca ne se passe pas bien : ca me met des blob...

  16. #36
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Toujours la même chose :
    - latin_swedish est un interclassement, ça n'a rien à voir avec l'encodage des données
    - il faut que le fichier .php soit encodé en UTF8
    - il faut que la connexion à la base de données soit en UTF8 aussi (requête SET NAMES 'utf8' à executer après la connexion si ce n'est pas le cas)
    - et bien sûr il faut que le programme avec lequel tu ouvres le fichier lise bien en UTF8 (ce n'est pas le cas de Excel par défaut par exemple).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #37
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    A priori, ces 3 conditions sont remplies par mon site.
    Voici mes fichiers de connexions et de requete.basefleury.phpexport.php

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

    tu serais bien aimable de copier-coller directement ton code dans le contenu du message.
    Car on n'ouvre pas* les pièces jointes.


    * Cela dit, je l'ai fait :

    1/ le code est encore plein de htmlentities() partout !... (il ne faut pas utiliser n'importe quelle fonction au pif !)

    2/ le code de connexion à la Bdd n'y est pas (on ne peut pas dire si tu as bien fait le nécessaire)

    3/ Il manque encore certains éléments nécessaires.
    RELIS : Passez à l'UTF-8 sans manquer une étape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php session_start() ;
    header( 'content-type: text/html; charset=utf-8' );
    4/ Il manque un doctype aussi, et remplace le meta charset :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!DOCTYPE html>
    <html>
    	<meta charset="utf-8" />
    ...

    5/... et j'en passe sûrement...


    Bref, si tu ne fais pas les corrections nécessaires, ne t'étonne pas...
    Dernière modification par Invité ; 01/06/2017 à 18h28.

  19. #39
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un point supplémentaire tout de même : il faut évidemment que les données soient déjà bien encodées lors de l'insertion, si dans Phpmyadmin, tes accents sont mal affichés, il faut refaire l'insertion des données;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  20. #40
    Nouveau membre du Club
    Homme Profil pro
    secrétaire
    Inscrit en
    Décembre 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : secrétaire

    Informations forums :
    Inscription : Décembre 2014
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    J'ai repris les pages pour passer à l'utf-8,
    J'ai suivi les conseils, mais toujours pas.
    Les données sont correctement écrites dans ma bdd, mais à l'export en fichier texte, j'ai ca par exemple :
    Très bon état . très bel exemplaire.
    Voici mon 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
     
     
    <?php
    session_start() ;
    header( 'content-type: text/html; charset=utf-8' );
    if(!isset($_SESSION["username"]) || $_SESSION["username"] == "")
    {	
      header("Location: ../index.php") ;
      exit();
    }//fin if
     
     //require_once('../Connections/basefleury.php'); 
     require_once('../Module/mes_fonctions.php'); 
    		//require_once('../Module/selection_gamme.php');
    		$mysqli = new mysqli('localhost', 'root', '', 'basefleury');
    //$mysqli->query('SET NAMES iso-8859-1');
    $mysqli->set_charset('utf8');
     
    if ($mysqli->connect_errno) {
        echo "Echec de la connexion: " . $mysqli->connect_error;
        exit();
    	}
     
     
    $url_home = 'index.php';
     
     
     
    		?>
     
    <!DOCTYPE html>
    <html>
    <head>
    <title>Export LEA</title>
    <meta charset="utf-8" />
    <meta http-equiv="Content-Type" content="text/html">
    </head>
     
    <body leftmargin="0" topmargin="0">
     <?php if (isset($_POST['zt_ma_req']))
    {
    	$sql = $_POST['zt_ma_req'];
    	$mon_choix=6;
    }
    else if (isset($_POST['zt_ma_req2']))
    	{
    	$sql = $_POST['zt_ma_req2'];
    	$mon_choix=8;
    	}
    else
    {
    		$mon_choix=$_POST['radiobutton'];
    		if ($mon_choix==5)
    		{
    			$sql ="select * from tlivre where (date_vente > '".dateFrToUs($_POST['zt_date1'])."' or date_vente = '0000-00-00') and  vendu = 0";
    			}
     
    		elseif ($mon_choix==4)
    		{
    			$sql ="select * from tlivre, tclient where date_vente > '".dateFrToUs($_POST['zt_date11'])
    			."' and date_vente < '".dateFrToUs($_POST['zt_date22'])."' and tlivre.num_client = tclient.num_client order by date_vente";
    		}
    		elseif ($mon_choix==7)
    		{
    			$sql ="select * from tclient, tlivre where tlivre.num_client = tclient.num_client and rayonnage = ".$_POST['zt_rayonnage']." order by tclient.num_client";
    		}
    		else
    			{
    			$sql = 'SELECT * from tlivre where vendu = 0 and fiche_terminee = 1 and prix_vente > 1'; 
    			}
    }	
     
    // on crée la requête SQL 
     
     
    // on envoie la requête 
    $req_exp = mysqli_query($mysqli, $sql) or die('Erreur SQL !'.$sql.'<br>'.mysqli_error($mysqli)); 
    ; 
    $fp = fopen("mon_export.txt","w+"); 
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    switch($mon_choix) 
        { 
        case '1': 
    		while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		fputs($fp,$data['ref'].";".$data['auteur']." ".$data['titre'].";".$res=str_replace("\r\n","<br> ",$data['descriptif']).";".$res=str_replace("\r\n","<br> ",$data['descriptif'])."<br><br>".$res=str_replace("\r\n","<br>",$data['commentaire']).";".$res=str_replace("\r\n"," ",$data['mots_cles']).";".$data['prix_vente'].";".$data['poids'].";".$data['rayonnage']."\r\n");
    		}
            break; 
        case '2': 
            while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		fputs($fp,$data['ref']."\t".$data['auteur']."\t".$data['titre']."\t".$res=str_replace("\r\n"," ",$data['descriptif'])."\t".$res=str_replace("\r\n"," ",$data['commentaire'])."\t".$res=str_replace("\r\n"," ",$data['mots_cles'])."\t".$data['prix_vente']."\r\n");
    		}
            break; 
        case '3': 
            while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		fputs($fp,$data['ref']."\t".$data['auteur']."\t".$data['titre']."\t".$res=str_replace("\r\n"," ",$data['descriptif'])."\t".$res=str_replace("\r\n"," ",$data['commentaire'])."\t".$res=str_replace("\r\n"," ",$data['mots_cles'])."\t".$data['prix_vente']."\tjpg\r\n");
    		} 
            break; 
        case '4': //compta
    		fputs($fp, "DATE \tNom de l article et ref \tFrance \tEurope \tAutre \tNom de l acheteur \tMoyen de paiement \tPrix d achat \tRemboursement \r\n");
             while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		 if ($data['lieu']=='France')
    		 	{
    			fputs($fp,$data['date_vente']."\t".$data['titre']." (".$data['ref'].")\t".$data['prix_vente']."\t\t\t".$data['nom_client']."\t".$res=str_replace("\r\n"," ",$data['moyen_paiement'])."\t".$data['prix_achat']."\t".$data['remboursement']."\r\n");
    			}
    		elseif ($data['lieu']=='Europe')
    			{
    				fputs($fp,$data['date_vente']."\t".$data['titre']." (".$data['ref'].")\t\t".$data['prix_vente']."\t\t".$data['nom_client']."\t".$res=str_replace("\r\n"," ",$data['moyen_paiement'])."\t".$data['prix_achat']."\t".$data['remboursement']."\r\n");
    			}
    		else
    			{
    				fputs($fp,$data['date_vente']."\t".$data['titre']." (".$data['ref'].")\t\t\t".$data['prix_vente']."\t".$data['nom_client']."\t".$res=str_replace("\r\n"," ",$data['moyen_paiement'])."\t".$data['prix_achat']."\t".$data['remboursement']."\r\n");
    			}
    		}
         break; 
        case '5': //stock
            fputs($fp, "Ref \tAuteur \tTitre \tNbre exemplaire \tPrix achat\r\n");
           while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		fputs($fp,$data['ref']."\t".$data['auteur']."\t".$data['titre']."\t\t".$data['prix_achat']."\r\n");
    		}
            break; 
    	case '6': // requete libre
           $result = mysqli_num_fields($req_exp);
    	    while($data = mysqli_fetch_array($req_exp))
    		{
            	$i=0;
    			while($i != $result) 
        			{ 
    			    fputs($fp,$res=str_replace("\r\n"," ",$data[$i])."\t"); 
    			    $i++;  // $i++ est équivalent à ($i+1) 
        		} 
    		fputs($fp,"\r\n"); 
    		}
    		break; 
    	case '7': //client selon rayonnage
            fputs($fp, "Rayonnage \tNum client \tNom client \tMail \r\n");
           while($data = mysqli_fetch_assoc($req_exp))
    	     {
    		fputs($fp,$data['rayonnage']."\t".$data['num_client']."\t".$data['nom_client']."\t".$data['mail_client']."\r\n");
    		}
            break; 
     
    	case '8': // requete libre avec retour chariots ^p
           $result = mysqli_num_fields($req_exp);
    	    while($data = mysqli_fetch_array($req_exp))
    		{
            	$i=0;
    			while($i != $result) 
        			{ 
    			    fputs($fp,$res=str_replace("\r\n","zzz",$data[$i])."\t"); 
    			    $i++;  // $i++ est équivalent à ($i+1) 
        		} 
    		fputs($fp,"\r\n"); 
    		}
    		break; 
    	} // fin case 
     
      //(1)
    //$donnees = fgets($fp,255);     //(2)
    fpassthru($fp);
    fclose($fp);                  //(3)
    //Affichage du résultat -----------
    //echo'Le fichier contient : '.$donnees; 
    ?> 
    <table width="500" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
      <tr>
        <td width="120">&nbsp;</td>
        <td><div align="center"><strong>EXPORTATION</strong></div></td>
      </tr>
    </table>
     
    <table width="500" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="120" bgcolor="#CCCCCC">
    	 <?php include('../module/menu.php');?>  
    	</td>	  
        <td width="380">Voici le fichier généré : <a href="mon_export.txt">
    	mon_export.txt</a><br>	  
          Pour enregistrer le fichier sur votre disque dur, faites "clique droit" 
    	puis "Enregistrer la cible sous".</td>
      </tr>
    </table>
    <p>&nbsp;</p>
    </body>
    </html>
    Je suis désolé, certaines choses paraissent évidentes pour vous, mais moi, j'ai "appris" sur le tas, et c'était juste pour faire ce site il y a quelques années... Alors, je veux bien croire que mon code est loin d'être optimal et propre...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Probléme insertion base de donnée Access
    Par Seb2913 dans le forum C#
    Réponses: 1
    Dernier message: 26/04/2015, 10h45
  2. [MySQL-5.6] Problème d'affichage des accents en base de données
    Par blackstrobe dans le forum Débuter
    Réponses: 0
    Dernier message: 15/10/2014, 16h44
  3. Réponses: 7
    Dernier message: 01/12/2009, 15h10
  4. Réponses: 7
    Dernier message: 07/05/2009, 17h32
  5. Problème d'insertion base de donnée Access
    Par hh4life dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/08/2007, 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