Bien que ça soit deux technologies complètements différentes, PHP & MySQL cohabitent surtout pour l’apprentissage comme s’il était qu’un. Si vous apprenez le langage PHP & le SGBD MySQL, vous vous posez peut être la question de savoir comment faire ou mettre un moteur ou de recherche dans son site avec ce deux technologies…

Et bien ça tombe bien, découvrons ensemble comment programmer un moteur de recherche très mais alors très basique et afin je vous donnerai des pistes pour faire un moteur de recherche avancé.

Moteur de recherche PHP & MySQL

Devinez que vous ayez une table « article » qui a une structure suivante :

Id, titre, contenu, date_creation

Et vous voulez mettre qu’une personne puisse avoir la possibilité de rechercher un article sur base de son titre. Par exemple : taper « piment » pour retrouver les articles avec comme titre : « les piments rouges sont dangereux », « pourquoi je n’aime pas le piment », etc.

Pour aboutir à un tel résultat, tout se joue dans la requête sql de la récupération de vos articles. Pour récupérer un article, on peut faire :

Il y a aussi possibilité d’utiliser la clause WHERE

Ce qui veut dire qu’on récupère tous les articles dont la date est égale ou au-delà du 19 mai 2017.

De la même manière qu’on peut dire :

Ce qui veut dire qu’on récupère tous les articles où le titre est égal à « piment »

Ceci est vraiment trop précis mais on aimerait dire un truc du genre : « récupère tous les articles où le titre contient piment. »

Pour cela, il faut utiliser LIKE. LIKE se traduit en français par « comme ».

Ce qui veut dire qu’on récupère tous les articles où le titre est comme « piment ».

En se servant du signe %, qui est un « joker », on peut dire à peu près ce qu’on veut

Ce qui veut dire qu’on récupère tous les articles où le titre commence par « piment ».

Récupère tous les articles où le titre termine par « piment »

Récupère tous les articles où le titre contient « piment »

Pour exemple, vous retrouvez un blog minimal que j’ai fait pour vous donner l’idée de comment se servir de ce clause MySQL et un peu de PHP, pour au final avoir une barre de recherche.

search php mysql

Allez plus loin…

C’est qu’on a fait ci-dessus, est ce qu’on appelle une recherche par un mot clé. C’est-à-dire, l’utilisateur ferra la recherche que par un seul mot clé. Même s’il tapait une phrase comme « Programme de tchat », cela sera considéré comme un seul mot clé, donc, les résultats qui seront retournés sont ceux qui contiennent le mot clé « programme de tchat ».

Avec MySQL, il serait mieux d’explorer les recherches sur les index FULLTEXT pour faire des recherches un peu plus avancées. Les recherches sur plusieurs mots clés… en tapant par exemple « programme de tchat », ceci sera découpé en mot « par espace », et chaque mot sera cherché indépendamment. Ce qui ferra que programmetchat seront recherchés individuellement et l’ensemble de résultat produit pour ce deux requêtes seront renvoyés comme résultat. Cliquez ici plus d’informations sur le sujet.

Ces derniers les applications web ou mobile ont tendance à gérer les utilisateurs peu importe leurs objectifs. gérer les utilisateurs impliquent à ce qu’on aie une base de données (MySQL, PostgreSQL, Oracle, etc…), hormis une base de données, il faut programmer chaque fonctionnalité des utilisateurs. l’inscription, la connexion etc… déjà c’est fatiguant tout ça ! Je vous montre comment connecter vos utilisateurs sans pour sans besoin de vous taper la gueule, Inscrire et connecter vos utilisateurs sans mot de passe juste avec un numéro de téléphone

Account Kit est un outil développé par Facebook qui va vous permettre d’ inscrire et d’identifier rapidement vos utilisateurs à partir de leurs numéro de téléphone ou leurs adresse email. Son champ d’action est immense vu qu’il peut être utilisé avec les applications Web, les applications mobile s(Android, IOS).

Comment fonctionne Account Kit

Votre utilisateur arrive dans la partie de votre site web ou application mobile qui requière une authentification, vous mettez un formulaire où il n’aura qu’à taper son numéro de téléphone ou son adresse email. Après validation, il va recevoir un sms avec le numéro de validation qu’on peut considérer comme étant le mot de passe.  Une fois qu’il entre le numéro de validation dans son le champ de validation, l’utilisateur est automatiquement connecté. A savoir qu’avec les smartphones, la validation se fait automatiquement.

Pour savoir comment implémenté une application en se servant de Account Kit, la documentation de Account Kit est très bien faite pour vous aider, en plus il y a une version française

L’ordinateur ou toute autre machine capable de traiter automatiquement les données dispose d’un microprocesseur. Ce microprocesseur est l’unité qui exécute toutes les instructions qu’on donne à la machine. Ces instructions pour qu’elles soient comprises par le microprocesseur, elles doivent être en binaire. Etant difficile à l’homme de manipuler aisément le binaire, certains dispositions ont été adoptées par l’homme pour simplifier la communication entre celui-ci et la machine, notamment avec le langage assembleur, mais le langage de programmation, c’est celle qui est plus facile à manipuler et a été évoqué dans l’épisode précédente de cette série « Programmation pour tous ».

Pourquoi utilise-t-on les langages de programmation et non le langage assembleur ?

Parce que le langage assembleur n’est tout autre que du binaire en lettre, programmer en assembleur nécessite de connaitre comment fonctionne le microprocesseur, son interaction avec les registres, les périphériques, la RAM, bref, il faut aussi avoir les bases en électronique. Tandis que dans un langage de programmation, vous êtes en abstraction totale avec les matérielles au cas où vous n’en voulez pas vous en servir bien-sûr.

Dans un langage Assembleur on peut dire :

  • Est-ce que la case mémoire 45 est utilisée ?
  • Si ce n’est pas utilisé
  • Réserve  la case 45 de la mémoire
  • Stock 3674 dans la case 45 de la mémoire

Alors qu’avec un langage de programmation on peut directement dire :

  • Stock 3674 dans la mémoire (et toutes les vérifications qui sont effectuées avec l’assembleur sont gérées par le langage de programmation)

Avec cet exemple, ce qui devrait être fait avec l’assembleur dans 5 instructions est simplifié dans une seule instruction avec un langage de programmation.

On se retrouve dans la partie 2 pour la suite

Pages: 1 2

Le microprocesseur attend les instructions en binaire comme évoqué dans l’épisode précédente comme :

10101110 10101110 0010100

Pour une machine, cette instruction est normale. Dans la réalité de programmeurs de cette génération, la programmation ne se fait pas en binaire. On donne les instructions à des machines en utilisant un langage de programmation comme par exemple (C++):

Avec cette instruction, l’ordinateur comprendra qu’il doit faire à ce qu’une fenêtre puisse s’afficher contenant le message “hello world”.

hello-world

Ne me demande pas où coller ce code pour pouvoir afficher aussi cette fenêtre car il y a encore des choses qu’il faut comprendre avant de voir le résultat dans ta machine.

Comment c’est possible alors que tu as écrit du texte que l’ordinateur ne peut pas comprendre ? tu avais dit qu’il comprend que le binaire

La réponse est très simple, l’ordinateur traduit les textes que j’ai écrit en binaire avant qu’il puisse l’envoyer au microprocesseur pour exécuter.

Comment le traduit-il alors qu’il ne le connait déjà pas d’office ? c’est comme essayer soit même de traduire le chinois en français pour le comprendre alors qu’on comprend déjà pas du chinois

Je répond à cette question en te narrant un peu rapidement l’histoire du début de la programmation jusqu’à la où on est maintenant car c’est très important que tu le saches.

Le premier programme Informatique

Une britannique du nom de Lady ADA LOVELACE, est considérée d’après l’histoire comme étant la première programmeuse, c’est-à-dire, la première à pouvoir donner les instructions à une machine pour que le traitement se fasse de manière automatique. c’était au 18ème siècle[plus d’infos].

Au départ, en programmation, tout était du binaire. c’est juste en 1954 qu’il y a eu une petite simplification ou changement. La société IBM a mis au point un programme écrit en binaire qui permettait de traduire une instruction texte (chaîne de caractère) en binaire.

Par exemple au lieu de donner les instructions en binaire comme

10110000 11001000

Tu peux écrire

movb $0x61, %al

Et le programme prend bien soin de le traduire en binaire avant que la machine l’exécute. c’est la naissance de l’assembleur.

L’écriture (movb $0x61, %al) qui doit être traduit est ce qu’on appele “le langage d’assemblage” ou “le langage assembleur” et le programme qui traduit cette écriture (le langage d’assembleur) est ce qu’on appelle “Assembleur” ou “programme d’assembleur“.

Vu que c’est difficile de programmer en binaire, les concepteurs de microprocesseur ont mis pour chaque modèle de leurs microprocesseur langage assembleur correspondant, c’est-à-dire, hormis le binaire, le microprocesseur comprend aussi le langage assembleur.

En réalité, le microprocesseur ne peut comprendre que du binaire, l’assembleur est juste une abstraction entre le langage assembleur et le binaire. Chaque modèle de processeur aussi a son propre langage assembleur.

Bon, la compréhension c’est vrai qu’elle pourrait s’envoler mais je m’en voudrais si je ne vous parlais pas de ça. C’est tellement vaste le concept que j’ai évité même d’entrer en profondeur pour que tout reste simple comme au début. Mais si tu veux bien en savoir plus sur le concept, des liens sont justes  On se retrouve dans la deuxième partie (2)…

Pages: 1 2

L’un des sites que tu visites te plaie ou une fonctionnalité se trouvant dans ce site te donne les charmes, et étant que webmaster, tu aimerais aussi reproduire cette même fonctionnalité ou par curiosité savoir la boite noire de la fonctionnalité ou bien encore connaître juste les technologies utilisées par ce site Web ? On est tous tombé dans ce genre des situations.

Découvrir les technologies utilisées dans la partie front du site (librairies, framework javascript) sembleraient être encore plus facile quand on sait se servir des outils de débogages que les navigateurs intègres mais les technologies backend (PHP, JAVA, PYTHON…) sont floues car leurs exécutions se font coté serveur qu’on a pas accès.

Découvrez ces outils que j’utilise fréquemment et que j’ai jugé mauvais de ne pas  promouvoir ceux ci à la porté de ceux qui ne le connaissent pas. Ces outils peuvent vous aider à :

  • Savoir le langage de programmation utilisé pour coder un site Web
  • Savoir le framework utilisé pour coder un site
  • Savoir le Système de gestion de contenu (CMS) utilisé pour développer un site Web
  • Savoir la régie publicitaire utilisée par un site web
  • Savoir l’hébergeur d’un site Web

Builtwith

Builtwith.com est un service qui fournis toutes les technologies utilisées par un site web. C’est mon outil préféré; il est disponible en version web (site web) et dispose aussi d’une extension compatible avec Chrome et Firefox.

Builtwith site web

La version web de builtwith est très simple d’utilisation. Il suffit juste d’insérer dans la barre d’adresse le site web que vous voulez savoir ses technologies et builtwith ferra l’affaire.

 

Builtwith extension et outils

Il existe aussi tant d’autres supports où Builtwith peut être exécutés tel que les extensions Firefox, Google chrome, Safarie, etc…

Wappalyzer

Webppalyzer est une extension (add-on ou plugin) disponible dans Chrome et Firefox, qui, permet de dévoiler les technologies utilisées par un site web.

technologies-site-web

Ça montre bien que le site eduquepsp.cd est conçu avec le CMS Joomla et le serveur web de son hébergeur est Nginx.

C’est vraiment très pratique ces outils et je vous conseille de les en utiliser autant que vous le pouvez et surtout de ne surtout pas oublier de partager cet article avec vos proches comme je le fais avec vous.