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

SQLite Discussion :

Question simple - retrieve


Sujet :

SQLite

  1. #1
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Question simple - retrieve
    Bonjour chers savants !

    J'ai déjà bien joué avec 4D et FileMaker Pro advanced mais pour un retraité bénévole, tout ça est bien mais bien trop cher pour moi ! (dans l'Île du Sud en Nouvelle Zélande, on ajoute couramment "but" à la fin des phrases... comme "ou bien' pour les Savoyards).

    Je me tourne donc vers SQLite3 dont j'ai cru comprendre qu'il est possible de mettre une base directement dans le dossier d'un site sans avoir à payer d'hébergement supplémentaire pour la BD ? Pouvez-vous me le confirmer ?

    Dans l'affirmative, on peut donc retirer (retrieve) des informations contenues dans la base, et les afficher dans une page PHP qui aurait une fenêtre de recherche ?
    J'aimerais bien parvenir à ce résultat "basique" !

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    SQLite est plutôt dédié monoposte
    C'est MySQL le "pseudo gratuit" pour ce qui est de "de mettre une base directement dans le dossier d'un site sans avoir à payer d'hébergement supplémentaire pour la BD"

    on peut donc retirer (retrieve) des informations contenues dans la base, et les afficher dans une page PHP qui aurait une fenêtre de recherche ?
    oui, mai en SQL on parle de SELECT pas de "retrieve"
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut "search as you type" avec une base dans le dossier du site
    Merci SergioMaster pour cette précision. Je vais donc m'intéresser à MySQL au lieu de SQLite.

    Une question connexe dont je ne vois pas non plus le bout, et en admettant que j'arrive à me connecter à ma base MySQL, c'est comment faire en sorte d'obtenir, dans la fenêtre de recherche de la page PHP une fonctionnalité "search as you type" ou "type ahead search" ou "instant prediction" ou encore "incremental search" - comme quoi l'éloquence a depuis longtemps traversé l'Atlantique. Quand les Grecs étaient en Égypte, les Égyptiens se moquaient de leurs concours d'éloquence et de leurs mots qui ne produisaient aucun effet ! Cela fait réfléchir.

    Je ne suis pas au bout de mes peines.

    Merci de votre aide bienveillante.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    avec PHP, qui n'est pas dans mes compétences, je n'en ai aucune idée précise, ceci dit il y a sur DVP (pour developpez.net) un forum dédié.
    PHP est un langage de programmation, généralement relié à du HTML et du CSS pour la présentation (ces deux derniers ont aussi leurs forums DVP dédiés)

    La seule réponse que je puisse faire est sur ces
    "search as you type" ou "type ahead search" ou "instant prediction" ou encore "incremental search"
    d'un point de vue base de données .

    je vais peut être enfoncer des portes ouvertes et écrire quelques bêtises en essayant de "vulgariser"!

    Un SGBD (et pas que MySQL) est la partie moteur des données contenues dans des tables. 4D, FileMaker pro, MS Access, Paradox etc... ont/avaient tous un moteur de cet acabit (quoique moins performant) mais avec en plus (si mes souvenirs sont bon) une partie design d'interface utilisateur (ce que n'ont pas les "vraies" SGBD).
    un SGBD gère des bases de données (pas qu'une seule) chacune contenant des tables (mais aussi les index, les relations entre tables etc...) contenant des colonnes (que quelques uns continuent à appeler champs). Une table ainsi découpée contient des lignes (ex enregistrements).

    J'en arrive (enfin) à la "recherche" dans une table. A l'apparition des SGBD des normes ont été mises en place (en aparté je dirai que MySQL est loin de toutes appliquer celles-ci et qu'il est étonnant que ce soit la plus répandues sur les serveurs) mais aussi un langage : le SQL soit Structured Query Language.

    Les recherches dans une base de données se font via ce langage SQL (encore une autre forum DVP) qui sera "encapsulé" dans le langage choisi pour l'application.
    i.e. PHP

    faire une recherche particulière dans une base de données se fait via une instruction SQL : SELECT
    bien sur il faut lui indiquer :
    quoi ! on y ajoute donc la liste des colonnes que l'on veut
    d'où ! on indique alors la table par FROM et le nom de la table
    "qui" ! si l'on ne veut pas toutes les lignes de la table, la clause WHERE unecolonne=unevaleur ....

    en exemple soit une table ADHERENTS avec les colonnes NOM,PRENOM,DATE_NAISSANCE,MEMBRE_BUREAU (O/N),VILLE,CODEPOSTAL
    si l'on veut obtenir les adhérents faisant partie du bureau
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NOM,PRENOM FROM ADHERENTS WHERE MEMBRE_BUREAU='O';
    Maintenant, si l'on veut par l'application, obtenir soit les adhérents faisant partie du bureau soit les autres on peut bien sur faire deux requêtes différentes soit utiliser ce que l'on appelle une requête paramétrée où le 'O' est remplacé par un nom de paramètre (là, dépendant des langages mais pas du SQL , ce n'est pas toujours exprimé de la même manière.

    j'en viens à la recherche en fonction d'une saisie partielle ("search as you type")
    on veut faire une recherche sur la localisation des adhérents
    1- tous les adhérents d'un département (Loire Atlantique)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NOM,PRENOM FROM ADHERENTS WHERE CODEPOSTAL LIKE '44%';
    2-tous les adhérents dont la ville commence par "ce que l'on tape"
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NOM,PRENOM FROM ADHERENTS WHERE CODEPOSTAL LIKE  :cequelontape;
    voilà la requête paramétrée avec comme paramètre 'cequelontape' (que j'ai noté avec un : devant habitude due au langages que j'utilise), ne pas oublier de rajouter le caractère de remplacement (wildchar) % en fin
    il n'y a "plus qu'à" faire interagir l'interface utilisateur (détection des frappes dans une zone) avec la requête et "rafraîchir" l'écran en retour

    Certains SGBD permettent de se passer du caractère de remplacement via des clause telles que START WITH ou STARTING WITH (non connus de MySQL)
    dans tout les cas LIKE existe ("à cause de la norme") et il y a bien d'autres possibilités/particularités selon le SGBD choisi.

    mes conseils avant de se lancer dans le petit bain (la tenue de l'avatar est prête) rechercher les tutoriels ou cours dans les forums (pour ce qui est de la partie SQL c'est bien étoffé) pour les autres points : joker
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Merci
    Merci SergioMaster

    pour cette longue réponse et le temps passé à traiter de ce sujet - C'est vraiment très sympa !

    Le meilleur exemple de "search as you type" que j'utilise couramment se trouve dans les dictionnaires Apple. En plus, lorsque le dictionnaire choisi est chargé, (ce qui est toujours le cas) on peut l'utiliser "off line". Pas besoin de MAMP, c'est superbe !

    Merci encore

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Utilisez MS SQL Server with advanced services qui est la version gratuite de SQL Server et mettez en place une indexation textuelle sur les colonnes qui vous intéresse et faites appel à la fonction :
    FREETEXT(...)
    Dans laquelle vous placez tous les mots de votre recherche comme dans Google.

    Si en plus il vous faut un "ranking" du résultats, utilisez FREETEXTTABLE qui renvoie en sus des "poids" et classez les du plus élevé au moins élevé.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Merci Frédéric
    Il y aurait donc une solution Microsoft à mon problème qui est d'accéder, depuis une page web (en lecture seule) à une base de données genre SQLite dans le dossier du site et non pas chez un hébergeur qui exploite un serveur (et le fait payer).
    Le problème est que je n'utilise pas du tout Microsoft : je suis sur Mac depuis toujours et avant (la préhistoire de l'informatique) en 1976, je faisais mes programmes en cobol Burroughs car il n'y avait pratiquement rien.
    Cela dit, html5, php, css et tout le reste d'Internet s'affranchit heureusement des plateformes

    Merci pour votre réponse.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par Barcus Voir le message
    Il y aurait donc une solution Microsoft à mon problème qui est d'accéder, depuis une page web (en lecture seule) à une base de données genre SQLite dans le dossier du site et non pas chez un hébergeur qui exploite un serveur (et le fait payer).
    Je ne pense pas que c'est ce qu'il ait voulu dire (AMHA loin de là !) je pense que Frederic (aka SQLPro) indiquait que SQLServer proposait un vrai système de recherche "à la google" contrairement à MySQL (qu'il n'aime pas beaucoup voire pas du tout au point d'y voir )

    ce lien explique ce que SQLite peut ou ne peut pas faire, donc je fait un méaculpa, il est possible de mettre une base SQLite pour un site Web (d'après ce que j'ai compris/survolé et avec les contraintes indiquées) et ce à priori sans "taxe" de l'hébergeur puisque il n'y a pas de moteur SGBD à installer (du moins pour PHP encore d'après mon "survol")

    Serge
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Barcus Voir le message
    Merci Frédéric
    Il y aurait donc une solution Microsoft à mon problème qui est d'accéder, depuis une page web (en lecture seule) à une base de données genre SQLite dans le dossier du site et non pas chez un hébergeur qui exploite un serveur (et le fait payer).
    Le problème est que je n'utilise pas du tout Microsoft : je suis sur Mac depuis toujours et avant (la préhistoire de l'informatique) en 1976, je faisais mes programmes en cobol Burroughs car il n'y avait pratiquement rien.
    Cela dit, html5, php, css et tout le reste d'Internet s'affranchit heureusement des plateformes
    Une erreur commune est de considérer SQL Lite comme un serveur de bases de données. Ce n'est en aucun cas cela. SQL lite comme son nom l'indique est destiné à de très léger processus dans lequel IL N'Y A JAMAIS QU'UN SEUL UTILISATEUR CONCURRENT.. Autrement dit cela ne sert que pour de l'embarqué, par exemple pour mettre une base dans un frigo, une voiture (GPS) ou un missile !

    Si vous envisagez un site web dans lequel plusieurs utilisateurs peuvent consulter ssimultanément, alors il vous faut un serveur SQL et non une bibliothèque de code SQL.

    Vous avez donc le choix dans le libre, entre les SGBDR PostGreSQL, MariaDB (un pseudo vrai libre de MySQL) ou SQL Server Express (un vrai non libre, mais gratuit).

    Dans ce dernier cas (SQL Server), vous disposez d'un module "full text" très riche et complet, capable de faire exactement des recherches textuelles comme vous le demandiez.... et bien plus encore.

    Si vous n'aimez pas Windows, vous pouvez néanmoins utiliser la version Linux de SQL Server fournit sous Docker. Elle est actuellement expérimentale (version bêta), mais la version de production devrait arriver dans le courant de l'année...
    https://www.microsoft.com/en-us/sql-...ncluding-Linux

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre à l'essai Avatar de Barcus
    Homme Profil pro
    en retraite
    Inscrit en
    Avril 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : en retraite
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2016
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Merci à vous deux SergioMaster et SQLPro,

    J'ignorais
    IL N'Y A JAMAIS QU'UN SEUL UTILISATEUR CONCURRENT.
    pour SQLite. C'est donc rédhibitoire d'autant que je n'ai pas pour l'instant de projet de missile : j'y penserai le cas échéant. Je vais aller plutôt voir la version Linux de SQL Server !
    Merci pour l'aperçu de ce qui répond le mieux à mes exigences particulières. Je vous tiendrai au courant.

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour
    Citation Envoyé par SQLpro Voir le message
    Vous avez donc le choix dans le libre, entre les SGBDR PostGreSQL, MariaDB (un pseudo vrai libre de MySQL) ou SQL Server Express (un vrai non libre, mais gratuit).
    marrant que jamais tu ne cites Firebird vrai OpenSource Gratuit (mais dont on trouve peu d'hébergeur hélas)

    mais ce que je comprend de la "problématique" de Barcus, est qu'il veut avoir un site or la plupart des hébergeurs ne propose que MySQL de "installé gratuit" comme SGBD

    Effectivement SQLite n'est pas un serveur de base de données, et donc ne peut pas pas être interrogé par des applications tierces.
    De mon point de vue, par contre s'il s'agit d'un site web il en va différemment dans le sens ou du point de vue de l'interrogation de la base il n'y a qu'un seul client : le "programme web" qui envoi les pages html. Ce qui explique que selon les informations de SQLite on peut utiliser celle-ci pour un WebSite (dans la limite du raisonnable au niveau trafic)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    De mon point de vue, par contre s'il s'agit d'un site web il en va différemment dans le sens ou du point de vue de l'interrogation de la base il n'y a qu'un seul client : le "programme web" qui envoi les pages html. Ce qui explique que selon les informations de SQLite on peut utiliser celle-ci pour un WebSite (dans la limite du raisonnable au niveau trafic)
    Non, pas dut out, parce que par essence et heureusement un serveur Web, genre Apache ou IIS fait du multi threading et donc envoi simultanément plusieurs threads au serveur de base de données. C'est donc mort à l'avance. En revanche, il existe des site web mono utilisateur. Encore une fois, le cas de la voiture (GPS) ou du lave vaisselle est très classique. Plutôt que de développer en client lourd, on fait du web sur un OS léger mais destiné à un seul utilisateur...
    J'ai par exemple un client qui utilise SQL lite pour des données local sur smartphone, qui mélange données Internet (SQL Server / IIS) et données locales affichées dans une même page web pour l'application.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/09/2004, 14h27
  2. Question simple sur la libération des objets
    Par gibet_b dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2004, 10h01
  3. DTS : Question simple sur sources de données
    Par guignol dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/05/2004, 12h09
  4. [LG]Choix du pascal ou autre ? Questions simples...
    Par vlacq dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2004, 23h42
  5. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13

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