A voir également:
- Php:ajout fichier txt a la base
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Php?id=1 - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
5 réponses
s'il vous plais aidez moi a résoudre ce problème
merci
merci
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
20 févr. 2012 à 17:23
20 févr. 2012 à 17:23
pour savoir si l'éléve exite ou pas tu dois tester si la requête retourne un résultat
if (mysql_num_rows($sql) >=1) alors // supprimer l'élève et l'insérer sinon l'ajouter seulement
if (mysql_num_rows($sql) >=1) alors // supprimer l'élève et l'insérer sinon l'ajouter seulement
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
20 févr. 2012 à 17:47
20 févr. 2012 à 17:47
Au lieu de mettre ça if (isset($_POST["$var_id"])) mets ça if (mysql_num_rows($sql) >=1)
bonjour tito23 merci encore une fois de m'aider
voila j'ai changer mon code comme ceci:
mais en exécutant il m'a affiche beaucoup d'erreur :
Warning: feof(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 14
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 15
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 16
Warning: fclose(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 29
Warning: feof(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 14
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 15
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 16
.....
j'ai pas compris ??!!
voila j'ai changer mon code comme ceci:
<?php require_once("xx/db_connect.inc.php"); require_once('xxx/xx.php'); $connexion=db_connexion(); // Connexion db $fichier_ouvrir = @fopen("permis.txt", "r"); if ($fichier_ouvrir) { while (!feof($fichier_ouvrir)) { $var_id= rtrim(fgets($fichier_ouvrir, 11)); $var_titre_archt= rtrim(fgets($fichier_ouvrir, 200)); $sql= mysql_query("select * from architecte1"); if (mysql_num_rows($sql) >=1) { // $req=("DELETE from architecte1 where id_archi=$var_id"); $req=("INSERT INTO architecte1 (id_archi,titre_archi) VALUES ('$var_id'),('$var_titre_archt')"); $req=mysql_query ("$req")or die(mysql_error()); } fclose($fichier_ouvrir); } } // Fermeture DB ?>
mais en exécutant il m'a affiche beaucoup d'erreur :
Warning: feof(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 14
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 15
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 16
Warning: fclose(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 29
Warning: feof(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 14
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 15
Warning: fgets(): 5 is not a valid stream resource in c:\program files\easyphp1-8\www\site2010\affichetxt.php on line 16
.....
j'ai pas compris ??!!
sakoba2010
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
21 févr. 2012 à 12:01
21 févr. 2012 à 12:01
Revoir cette ligne
Essais avec ça
$req=("INSERT INTO architecte1 (id_archi,titre_archi) VALUES ('$var_id'),('$var_titre_archt')");
Essais avec ça
$req=("INSERT INTO architecte1 (id_archi,titre_archi) VALUES ('$var_id' ,'$var_titre_archt')");
sakoba2010
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
21 févr. 2012 à 12:18
21 févr. 2012 à 12:18
Il affiche une erreur?
sakoba2010
Messages postés
157
Date d'inscription
lundi 7 février 2011
Statut
Membre
Dernière intervention
24 juillet 2013
15
21 févr. 2012 à 12:26
21 févr. 2012 à 12:26
Quel est le type de ce champ 'id_archi' ?
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 104
Modifié par [Dal] le 23/02/2012 à 10:21
Modifié par [Dal] le 23/02/2012 à 10:21
Salut Simou,
1.
Juste une hypothèse.
Si ton fichier contient des données encodées en arabe, il est possible que la cause pour laquelle le texte ne s'insère pas dans ta base, alors que les chiffres oui, est que ta base de données est paramétrée pour utiliser un jeu de caractères différent.
Par exemple si ton fichier texte est encodé sous Windows, en cp1256, tu devras paramétrer MySQL avec ce jeu de caractères, soit : au niveau du serveur (dans my.ini - qui par défaut doit proposer latin1), ou au niveau de création de la base, soit au niveau de la création des tables, ou même colonnes par colonnes.
C'est toi qui décides comment tu veux faire.
Vois cette discussion sur CCM : https://forums.commentcamarche.net/forum/affich-10661668-php-et-la-langue-arabe
Et
- la doc générale MySQL https://dev.mysql.com/doc/refman/5.6/en/charset-syntax.html
- la liste des jeux de caractères supportés par MySQL : https://dev.mysql.com/doc/refman/5.6/en/charset-charsets.html (pour l'arabe encodé depuis Windows c'est "cp1256" et "cp1256_general_ci" pour la collation)
Si la version de MySQL que tu utilises n'est pas 5.6, vois la doc correspondante à ta version en cliquant sur les liens (même si je ne pense pas que cela change beaucoup, sauf si tu as une version vraiment très ancienne).
Si mon hypothèse est correcte, et que tu veux, par exemple, changer le jeu de caractères d'une table que tu as déjà créé, tu peux faire comme cela :
2.
Sinon, comme je te l'ai dit en https://forums.commentcamarche.net/forum/affich-24408168-php-inserer-des-donnees-dans-la-base par rapport à ton exemple de données, je pense que ton code n'est pas bon.
Mais c'est toi qui vois, tu es maître de ton destin.
3.
C'est mal vu de créer plusieurs fils sur la même question. Cela crée de la confusion, et multiplie le travail des gens qui essayent de t'aider.
Bon courage :-)
Dal
1.
Juste une hypothèse.
Si ton fichier contient des données encodées en arabe, il est possible que la cause pour laquelle le texte ne s'insère pas dans ta base, alors que les chiffres oui, est que ta base de données est paramétrée pour utiliser un jeu de caractères différent.
Par exemple si ton fichier texte est encodé sous Windows, en cp1256, tu devras paramétrer MySQL avec ce jeu de caractères, soit : au niveau du serveur (dans my.ini - qui par défaut doit proposer latin1), ou au niveau de création de la base, soit au niveau de la création des tables, ou même colonnes par colonnes.
C'est toi qui décides comment tu veux faire.
Vois cette discussion sur CCM : https://forums.commentcamarche.net/forum/affich-10661668-php-et-la-langue-arabe
Et
- la doc générale MySQL https://dev.mysql.com/doc/refman/5.6/en/charset-syntax.html
- la liste des jeux de caractères supportés par MySQL : https://dev.mysql.com/doc/refman/5.6/en/charset-charsets.html (pour l'arabe encodé depuis Windows c'est "cp1256" et "cp1256_general_ci" pour la collation)
Si la version de MySQL que tu utilises n'est pas 5.6, vois la doc correspondante à ta version en cliquant sur les liens (même si je ne pense pas que cela change beaucoup, sauf si tu as une version vraiment très ancienne).
Si mon hypothèse est correcte, et que tu veux, par exemple, changer le jeu de caractères d'une table que tu as déjà créé, tu peux faire comme cela :
ALTER TABLE architecte1 CHARSET=cp1256 COLLATE=cp1256_general_ci;
2.
Sinon, comme je te l'ai dit en https://forums.commentcamarche.net/forum/affich-24408168-php-inserer-des-donnees-dans-la-base par rapport à ton exemple de données, je pense que ton code n'est pas bon.
Mais c'est toi qui vois, tu es maître de ton destin.
3.
C'est mal vu de créer plusieurs fils sur la même question. Cela crée de la confusion, et multiplie le travail des gens qui essayent de t'aider.
Bon courage :-)
Dal
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
Modifié par tito23 le 23/02/2012 à 12:10
Modifié par tito23 le 23/02/2012 à 12:10
Vu que le fichier texte est en arabe et en français l'encodage utf8 est la seule solution
ajoute cela entre <head>et </head>
ajoute cela entre <head>et </head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">et au début du code
mysql_query("set names utf8"); mysql_query("SET CHARACTER SET 'utf8'");si le problème n'est pas résolu tu dois exécuter cette instuction dans mysql
ALTER TABLE architecte1 CHARSET utf8;
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 104
23 févr. 2012 à 13:57
23 févr. 2012 à 13:57
Salut tito, peux-tu m'expliquer comment as-tu deviné que le fichier texte était encodé en utf8 plutôt qu'en cp1256 ?
https://en.wikipedia.org/wiki/Windows-1256
Dal
https://en.wikipedia.org/wiki/Windows-1256
Dal
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
23 févr. 2012 à 14:22
23 févr. 2012 à 14:22
j'ai pas dit que le fichier texte est encodé en utf8 ni en cp1256, je parle de l'encodage du page html et celui de la base de données
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 104
Modifié par [Dal] le 23/02/2012 à 14:47
Modifié par [Dal] le 23/02/2012 à 14:47
Très bien. Reste que ce que veux Simou, c'est injecter dans une table de sa base MySQL des données provenant d'un fichier texte. Le minimum, c'est de s'assurer que l'encodage correspond.
C'est pourquoi j'indique ci-dessus https://forums.commentcamarche.net/forum/affich-24483241-php-ajout-fichier-txt-a-la-base#65 : "Par exemple si ton fichier texte est encodé sous Windows, en cp1256, tu devras paramétrer MySQL avec ce jeu de caractères".
De toutes façons, il doit déterminer quel est l'encodage utilisé sur son fichier texte, sinon il n'arrivera à rien.
Ensuite, qu'il décide de coder son site avec tel ou tel Charset, c'est à lui de le déterminer, en fonction de ses contraintes et de ses préférences, il décidera s'il doit changer l'encodage des données issues du fichier texte avec Php (avec iconv https://www.php.net/manual/en/function.iconv.php ou mb_convert_encoding https://www.php.net/manual/en/function.mb-convert-encoding.php), s'il peut produire un fichier texte en utf8 ou pas, etc.
Dal
C'est pourquoi j'indique ci-dessus https://forums.commentcamarche.net/forum/affich-24483241-php-ajout-fichier-txt-a-la-base#65 : "Par exemple si ton fichier texte est encodé sous Windows, en cp1256, tu devras paramétrer MySQL avec ce jeu de caractères".
De toutes façons, il doit déterminer quel est l'encodage utilisé sur son fichier texte, sinon il n'arrivera à rien.
Ensuite, qu'il décide de coder son site avec tel ou tel Charset, c'est à lui de le déterminer, en fonction de ses contraintes et de ses préférences, il décidera s'il doit changer l'encodage des données issues du fichier texte avec Php (avec iconv https://www.php.net/manual/en/function.iconv.php ou mb_convert_encoding https://www.php.net/manual/en/function.mb-convert-encoding.php), s'il peut produire un fichier texte en utf8 ou pas, etc.
Dal
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
23 févr. 2012 à 14:48
23 févr. 2012 à 14:48
comme a dit Dal ça pourraitt être l'encodage du ficier texte qui pose problème, tu devrais changer son encodage avec notepad++ par exmple, on parle côté opérationnel ça lui aide mieux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 104
Modifié par [Dal] le 24/02/2012 à 14:40
Modifié par [Dal] le 24/02/2012 à 14:40
Salut Simou,
Il te faudra quand même t'assurer que tes tables MySQL peuvent bien accueillir du utf8, car par défaut MySQL est configuré en latin1. Si tes données sont en utf8, le plus simple est aussi que ton site soit en utf8.
Alors suis les conseils de Tito concernant l'adaptation du format de tes tables. J'ajouterai aussi la collation pour que tes requêtes SQL de classement alphabétique tombent correctement, donc :
Fait pareil pour toutes tes tables.
Et, comme suggéré par Tito, assure toi que ton site comporte dans l'entête des pages générées la balise meta suivante. Retire toutes autres mentions d'encodages différents :
Enfin, pour la 3ème fois je te signale que ton algorithme de récupération des données n'est pas bon par rapport aux données d'exemple que tu m'as données dans ton autre fil de discussion, et que tu devrais faire comme indiqué là pour les récupérer https://forums.commentcamarche.net/forum/affich-24408168-php-inserer-des-donnees-dans-la-base#14
C'est la dernière :-)
Courage, on approche du but.
Dal
Il te faudra quand même t'assurer que tes tables MySQL peuvent bien accueillir du utf8, car par défaut MySQL est configuré en latin1. Si tes données sont en utf8, le plus simple est aussi que ton site soit en utf8.
Alors suis les conseils de Tito concernant l'adaptation du format de tes tables. J'ajouterai aussi la collation pour que tes requêtes SQL de classement alphabétique tombent correctement, donc :
ALTER TABLE architecte1 CHARSET=utf8 COLLATE=utf8_general_ci;
Fait pareil pour toutes tes tables.
Et, comme suggéré par Tito, assure toi que ton site comporte dans l'entête des pages générées la balise meta suivante. Retire toutes autres mentions d'encodages différents :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Enfin, pour la 3ème fois je te signale que ton algorithme de récupération des données n'est pas bon par rapport aux données d'exemple que tu m'as données dans ton autre fil de discussion, et que tu devrais faire comme indiqué là pour les récupérer https://forums.commentcamarche.net/forum/affich-24408168-php-inserer-des-donnees-dans-la-base#14
C'est la dernière :-)
Courage, on approche du but.
Dal
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 104
27 févr. 2012 à 19:09
27 févr. 2012 à 19:09
Bon, on va procéder par étapes.
D'abord, on va vérifier que ton fichier texte contient bien du utf8.
Avec Firefox, fait "Fichier-Ouvrir un fichier..." et ouvre ton fichier texte dedans.
Ensuite fait "Affichage-Encodage des caractères" et vois quel est l'encodage qui permet un affichage correct.
- Si utf8 n'affiche pas correctement, vois dans "Plus d'encodages-Moyen oriental", et essaye les différents encodages disponibles pour l'arabe, et dis nous ce que tu as trouvé
- Si utf8 affiche correctement le contenu du fichier, confirme le nous
Dal
D'abord, on va vérifier que ton fichier texte contient bien du utf8.
Avec Firefox, fait "Fichier-Ouvrir un fichier..." et ouvre ton fichier texte dedans.
Ensuite fait "Affichage-Encodage des caractères" et vois quel est l'encodage qui permet un affichage correct.
- Si utf8 n'affiche pas correctement, vois dans "Plus d'encodages-Moyen oriental", et essaye les différents encodages disponibles pour l'arabe, et dis nous ce que tu as trouvé
- Si utf8 affiche correctement le contenu du fichier, confirme le nous
Dal
bonjour Dal
merci bien de votre aide j'ai bien verifier qua avec l'outil texte j'ai bcp de probleme d'encodage donc j'ai changer le travail en utilisant le xml normalement sa passe très bien
Dés que je trouve des soucis je te demande l'aide si vous voulez bien sur merci infiniment.
Je voudrais aussi remercier tito23 qui m'a aidez aussi merci a vous tous
merci bien de votre aide j'ai bien verifier qua avec l'outil texte j'ai bcp de probleme d'encodage donc j'ai changer le travail en utilisant le xml normalement sa passe très bien
Dés que je trouve des soucis je te demande l'aide si vous voulez bien sur merci infiniment.
Je voudrais aussi remercier tito23 qui m'a aidez aussi merci a vous tous