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 :

Base de données avec simple fichier texte sans MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Avatar de johnrock
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations forums :
    Inscription : Janvier 2013
    Messages : 40
    Points : 91
    Points
    91
    Billets dans le blog
    1
    Par défaut Base de données avec simple fichier texte sans MySQL
    je pense bien qu'on peut stocker les données dans un simple fichier texte comme base de données mais je ne sais par où commencer.

    si c'est possible, veillez m'aider s'il vou plait.
    ✪ ➭ Pensez à visiter: http://johnclub242.blogspot.com

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 27
    Points : 56
    Points
    56
    Par défaut
    Il est effectivement possible de stocker des informations dans un fichier texte, toutefois pour ma part quand j'ai ce genre de besoin ponctuel j'utilise plutôt un fichier xml couplé à DOM.

    Gestion du XML en PHP 5 : utiliser DOM

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Et mysqlite ? pas possible ? Parce que si tu dois faire des recherches sur tes données une structure de type sgbdd est fortement recommandée.

    Sinon à part XML si tu peux aussi sérialiser un tableau directement dans un fichier texte, genre :

    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
    $tab = array();
     
    $tab['toto'] = 'la tête à toto';
    $tab['titi'] = 'la tête à titi';
    $tab['tata'] = 'la tête à tata';
     
    //nom du fichier
    $monfichier = 'monfichier.txt';
     
    //écriture du tableau sérialisé dans le fichier
    file_put_contents($monfichier, serialize($tab));
     
    //lecture du fichier
    $lecture_fichier = file_get_contents($monfichier);
     
    // récupère la structure du tableau
    $tab_recup = unserialize($lecture_fichier);
     
    echo isset($tab_recup['titi']) ? $tab_recup['titi'] : '';
    // affiche 'la tête à titi'

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par Munn Li Voir le message
    Il est effectivement possible de stocker des informations dans un fichier texte, toutefois pour ma part quand j'ai ce genre de besoin ponctuel j'utilise plutôt un fichier xml couplé à DOM.

    Gestion du XML en PHP 5 : utiliser DOM
    néanmoins
    j'ai créé pour des besoins particulier un fichier texte ligne par ligne ou je stocke des informations balisées fait maison (par exemple _intro_ quelques mots_intro_ (c'est juste un exemple).
    que je récupérais par regex dans php avec fopen etc...
    Puis je me suis dit : soyons sérieux et transformons ce fichier texte en xml
    ce que j'ai fait.
    A ma grande surprise la récupération des infos dans le fichier txt par regex est extrèmement plus rapide que dans le fichier xml si on utilise le dom.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Au risque de répéter ce qu'a dit ABCIWEB, le plus rationnel pour avoir une base de données, c'est d'utiliser une base de données !
    Si tu tiens absolument à avoir un fichier de type txt, utilise SQLite...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    johnrock n'a pas dit qu'il souhaitaIs une SGBD, il a dit BD.
    j'ai l'impression que la plupart des développeurs ont pour seule obsession de ne pas réinventer la roue.
    Pourtant pour stocker, exploiter quelques données simples, une fichier.txt , quelques balises, quelques regex, et un langage de programmation basique ou une connaissance basique d'un langage de programmation suffisent pour exploiter des données sans se compliquer la vie et sans utiliser des tonnes de mémoire et de puissance de processeur.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    On peut dire aussi exactement le contraire : c'est avec ton système que tu te complique la vie et les regex ne sont pas réputés pour être particulièrement économes en mémoire.

    Pour des petits besoins l'exemple que j'ai donné avec le tableau sérialisé est très efficace et simplissime à utiliser. On peut même éventuellement utiliser un tableau multidimensionnel et les fonctions pour travailler sur les tableaux sont légion en php. Mais quand cela se complique un peu sqlilte est la voie naturelle, bien plus simple et efficace pour faire des recherches et des regroupements qu'un regex.

    On pourrait éventuellement considérer ton système comme une solution intermédiaire, mais son manque d'évolutivité par rapport à sqlilte en fait un système difficile à recommander. En bref il a beaucoup d'inconvénients et peu d'avantages.

    Je serais presque prêt à parier que tu trouve cela simple parce que tu as l'habitude de l'utiliser et que tu ne t'es pas intéressé suffisamment aux autres roues pour pouvoir bien les comparer avec la tienne

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Je serais presque prêt à parier que tu trouve cela simple parce que tu as l'habitude de l'utiliser et que tu ne t'es pas intéressé suffisamment aux autres roues pour pouvoir bien les comparer avec la tienne
    ta méthode est excellente sauf que je peux difficilement écrire dans un array

    $tab['toto'] = 'la tête à toto';
    $tab['titi'] = 'la tête à titi';
    $tab['tata'] = 'la tête à tata';

    si je fais, c'est ressemblant
    _p__nom_toto_nom_la tête à toto_p_
    _p__nom_titi_nom_la tête à titi_p_
    _p__nom_tata_nom_la tête à tata_p_

    cependant je peux aisément complexifier

    _p__nom_toto_nom_la tête à toto est _adj_grosse_adj__p_
    _p__nom_titi_nom_la tête à titi est _adj_petite_adj__p_
    _p__nom_tata_nom_la tête à tata est _adj_patate_adj__p_

    ce qui donne quoi en array()?

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Je comprend rien à ton pb. Tu veux stocker quelles données initialement et faire ou écrire quoi exactement ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Je comprend rien à ton pb. Tu veux stocker quelles données initialement et faire ou écrire quoi exactement ?
    je n'ai aucun problème, c'est vous qui en avez un avec votre array
    il s'agit en informatique de traiter et stocké des informations.

    vous proposez un array pour ce faire
    je vous demande comment vous le faite
    vous proposez mysql
    je vous demande comment vous le faite

    moi je peux le faire simplement à la main en éditant le fichier
    vous pouvez ?

    je peux aussi écrire des fonctions comme
    get(nom=toto)
    put(nom=tutu, phrase='la tête à tutu est _adj_vide_adj_')
    delete(nom=tata)
    update(nom=toto, adj=rigolote)

    ou encore

    getListe(adj=vide && nom=tutu)

    bref, j'ai construit une bdd relationnelle dans un fichier txt.

    pour ensuite ecrire des fonctions comme

    trans(non=toto, json)
    trans(non=toto, arrays)
    trans(non=toto, xml)
    trans(non=toto, text)
    trans(non=toto, nimporte quoi)

    ou encore inscrit(nom=tata, SGBD) ou inscrit (adj=petite, autreSGBD)

    ...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Oui je me doute bien que tu n'as pas de problème, je voulais dire que je ne comprend rien au problème ou à la question que tu me pose, pas plus que ce que je ne pourrais pas faire en utilisant un tableau. On peut bien organiser un tableau multi dimensionnel comme une bdd et créer des fonctions qui permettront de faire des recherches, modifications, ajouts, suppressions etc. dans le tableau de données. Je vois donc toujours pas où est le problème c'est pour cela que je te demandais des détails parce je me dit qu'on ne doit pas avoir les mêmes besoins si tu pose ces questions.

    Par exemple pour la petite histoire, il y a environ cinq ans j'ai fait ce site qui en fait est un CMS que j'ai réalisé uniquement à partir de fichiers textes et de tableaux sérialisés. Le client administrateur peut insérer tout type d'objet dans ses pages, liens, texte, photos, photos agrandissables, vidéos, musique, que l'on mettre dans le fil du texte ou en tant qu'objet flottant, etc. En fait pour son site (si tu le regarde) le client n'a utilisé réellement que 10% des possibilités et refuse même après lui avoir conseillé, de mettre quelques images pour créer un peu de dynamique, mais bon les clients sont roi. Le CMS fonctionne avec un système de bbcode exactement comme dans ce forum et pour faciliter les possibilités de mise en page, les pages sont organisées par paragraphes que l'on peut ajouter, déplacer ou supprimer indépendamment.

    Tout ça pour te dire qu'on peu déjà s'amuser pas mal uniquement avec des tableaux sérialisés dans un fichier texte. A l'époque c'était la période où j'étudiais les fonctions sur les tableaux et j'ai fait ça à titre d'exercice pour voir comment on pouvait se passer de bdd et avoir néanmoins des possibilités d'administration.
    Alors effectivement cela fonctionne correctement et c'est très rapide mais cela demande pas mal de boulot et si l'on pousse le bouchon un peu plus loin niveau fonctionnalités, on se rend compte qu'on est entrain de réinventer un système de gestion de base de données sauf qu'on est très loin d'avoir développé toutes les fonctions déjà disponibles, sans compter les systèmes d'optimisation ou la gestion des accès simultanés ou... etc. etc.

    Donc pour les sites suivants et bien qu'étant fier d'avoir réussi mon affaire sans sgbdd... étant donné qu'on a maintenant pratiquement toujours (même chez les FAI), à la fois mysql et mysqlite... la voix de la sagesse à repris le dessus et c'est vraiment sans regrets que je me suis dit (pas sans l'avoir déjà entendu) qu'il serait plus judicieux d'investir du temps dans les commandes sql plutôt que dans mes fonctions sur les tableaux qui ne faisaient finalement que reproduire un début d'embryon du même système. En même temps j'ai transformé mon système de bbcode en wysiwyg ce qui fait que tout est maintenant beaucoup plus agréable à utiliser.

    Voilà je t'ai raconté un peu mon parcours de développeur pour dire qu'on est nombreux à déjà avoir essayé et testé les limites des fichiers textes avec un système de gestion perso (quelque soit la technique employée) mais que je n'en connais aucun qui au fil du temps continue à les recommander autrement qu'éventuellement pour des choses très simples. D'où j'en reviens à mon questionnement du début, à savoir qu'on ne doit pas avoir les mêmes besoins

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Points : 94
    Points
    94
    Par défaut
    Merci pour cette longue réponse.
    Je suis entièrement d'accord avec tout ce que tu dis. D'ailleurs tu est develloppeur et je ne le suis pas.
    En ce moment même on pourrait penser que je te parle ... En fait non, je te parle pas, je communique avec une base de donnée à l'aide d'une application foireuse qui me chipote par ce que je ne sais pas écrire le mot devellopeur et qui ne me propose aucune correction pour le faire, et qui de temps en temps fait des pauses et me fait tourner la roue multicolore de mon vieux powerBook.
    C'est ça mon problème.
    j'ai eu en jour besoin de prendre des notes, beaucoup de notes qui soient facilement lisible par moi, mais aussi exploitable par une machine.
    Ma première démarche fut donc de crée une base mysql , quelques fonctions php pour gérer tout ça, et une interface avec des textarea, des listes etc.
    ça m'a beaucoup déçu , du point de vue de la rapidité mais aussi de possibilités du système.
    Je me suis alors tourner vers Xml mais pareil, l'interface est indispensable.
    Les machines savent très bien communiquer entre elles, elle le font à une vitesse incroyable mais l'humain ?
    la plus part des formulaires sont très pénibles à remplir, c'est nom, prénom adresse ... et ne vous proposent jamais le café.
    Voilà,c'est pour ça que j'ai créé ma petite application, et depuis je suis très heureux avec, mon interface est maintenant vim qui m'offre bien plus de possibilités que ce misérable textarea dans lequel je suis entrain de pousser péniblement mes mots.
    Bien sur j'ai réinventé une roue, mais c'est ma roue, je la connais parfaitement et d'ailleurs elle m'étonne de plus en plus par les possibilités qu'elle m'offre.
    Pour ce faire j'ai appris les expressions régulières, les fonctions de call_back ..etc et je ne regrette pas l'investissement. C'est tout aussi bien que d'apprendre à se servir des grosses roues toutes faites.
    Et c'est pourquoi je ne découragerais personne qui voudrait créer sa propre DB dans un fichier txt.

    J'ai beaucoup apprécié ton site, il est Zen, simple, et rapide .. surtout la page du formulaire de contact

  13. #13
    Membre actif
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Points : 259
    Points
    259
    Par défaut
    Bon, j'utiliserai SQLite.
    Hayiiiiiiiiiiiiii !

Discussions similaires

  1. Peupler une base de données avec un fichier texte (code PHP)
    Par fufumax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 15/02/2015, 14h03
  2. alimentation de base de donnée par un fichier texte
    Par diamond_bleu dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/06/2007, 08h42
  3. Générer Base de données avec le fichier de mapping
    Par vain_mich dans le forum Hibernate
    Réponses: 1
    Dernier message: 10/05/2007, 16h07
  4. adresser une base de données avec un fichier vbscript
    Par boss_gama dans le forum VBScript
    Réponses: 8
    Dernier message: 16/08/2006, 19h19
  5. Base de donnée et export fichier text
    Par Kastagne dans le forum MFC
    Réponses: 6
    Dernier message: 07/03/2006, 22h27

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