Projet de Terminal S

Petit nouveau ! | 9 Messages

14 mars 2016, 17:58

Bonjour à tous,

Dans le cadre de mon option ISN (Informatique et science du numérique). Je suis amené à réaliser un site internet. J'ai donc choisi de réaliser quelque chose qui soit très interactif avec du php donc.
Le site consisterait à aider l'utilisateur à choisir son téléphone portable. à l'aide de plusieurs questions qui ciblerait son choix sur tel ou tel téléphone.

J'aimerai donc savoir s'il est possible en php de récupérer de nombreuses données sur des sites internet de vente de téléphone pour ne pas avoir à aller chercher les données une à une. Et aussi comment utiliser ces données en php.

Merci à tous
Odeoz

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 mars 2016, 18:48

Bonjour,

Ce qu'il faut c'est d'abord que tu te constitues une base de données avec les téléphones mobiles, leurs caractéristiques et leurs photos.

- Soit tu achètes une base de données toute faite avec les infos dedans : http://www.phonearena.com/database
- Soit tu la fait à la main (c'est la seule façon fiable et gratuite d'avoir des données dont tu es sûr de la qualité, et pour un exercice de cours si tu n'as que 15 modèles ça n'est pas choquant).
- Soit tu les récupères à l'arrache sur un site type fnac ou darty en faisant un petit robot qui va parcourir les pages, ça peut se faire en PHP (mot clé "scrapper" sur Google) ou via un outil dédié type http://import.tio
- Soit tu utilise des API/Webservices qui contiendrait déjà les données qui t'intéressent. Je n'en connais pas qui sont spécialisé dans les téléphones mobiles, mais Amazon a une API qui permet de récupérer des infos, à toit de voir si il y aura toutes les caractéristiques que tu cherches :
Doc officielle ici : https://affiliate-program.amazon.com/gp ... /main.html
Et librairie PHP avec exemple fonctionnel ici : https://github.com/Exeu/apai-io
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 mars 2016, 18:56

Je viens de tomber sur un site qui va te faire gagner beaucoup de temps : Fonoapi
Ils permettent via des API de récupérer les caractéristiques (mais pas les photos) d'un nombre très important de téléphones et au format JSON avec une API pour récupérer les données facilement en PHP :)
https://fonoapi.freshpixl.com/

Voici par exemple tous les téléphones Samsung (ils en ont listé 1061 ! ) :
https://fonoapi.freshpixl.com/v1/getdev ... ce=samsung
Bien sûr si tu remplaces Samsung à la fin par Nokia (437), HTC (230) ou Apple (36) ça marche aussi...
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

14 mars 2016, 19:56

Waw, quelle vitesse!! Vous etes super reactif merci de votre aide !!
Vous m'avez mis sur la voie et c'est ce que je cherchais. Une fois que j'aurai toutes ces données comment je peux faire pour les utiliser dans mon code ?

Petit nouveau ! | 9 Messages

14 mars 2016, 20:00

Quant a fonoapi je ne sais pas encore bien comment fonctionne les API ( Je n'ai jamais appris le php mais je compte bien m'y mettre).
Mais j'ai vu qu'il referençait plus de 6000 telephones incroyable :)

Mammouth du PHP | 2703 Messages

14 mars 2016, 22:07

tu crées une ou plusieurs tables dans une base de données.
tu récupères les données avec l'api, les sauves dans la base de données. ensuite, tu fais une interface qui permettra de chercher dans cette base de données.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

14 mars 2016, 23:47

Si tu remplaces la marque par un symbole pourcentage "%", tu va récupérer une grosse partie (si ce n'est l'intégralité) de la base de fonoapi au format JSON.
Le fichier fait 3.5Mo.
Et ensuite tu peux l'importer directement dans MySQL avec MySQL Workbench par exemple : https://dev.mysql.com/doc/workbench/en/ ... table.html
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

15 mars 2016, 12:00

Je comprends le principe mais le problème c'est que je ne m'y connais pas très bien en php et mySQL. J'ai deux mois pour réaliser ce projet qui est pour mon BAC!
Pensez vous que j'ai le temps d'apprendre ce qu'il faut pour réaliser ce projet en 2 mois. si oui pouvez vous m'orientez sur ce que je dois commencer a apprendre?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

15 mars 2016, 15:01

En 2 mois tu as le temps pour apprendre les bases de PHP et MySQL et faire un petit projet.
Maintenant, tout dépend de ton niveau, du temps que tu vas passer réellement dessus (car j'imagine que tu n'es pas 2 mois à plein temps), et de l'ambition du site que tu veux réaliser...

Le plus important avant d'apprendre le langage c'est que tu définisse bien le périmètre de ton projet, fait des maquettes (sur papier ou powerpoint) des différents écrans/pages du site que tu veux réaliser.
Et ensuite vérifies que tu as bien toutes les données nécessaires à la réalisation (car par exemple fonoapi te fournit des données dans un certain format mais il va peut être t'en manquer (comme par exemple les photos des mobiles...)

Une fois cela fait, il faut que tu identifies les principaux blocs fonctionnels nécessaires à la réalisation de ton site (système d'identification / page de recherche / filtre par préférence / affichage d'une fiche produit...) et enfin tu pourras attaquer le développement.

Il est important de ne pas négliger l'aspect préparatoire de ton projet car ça va te faire gagner beaucoup de temps pour la suite.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

29 mars 2016, 11:12

Bonjour,
J'avance tranquillement dans mon projet, cependant j'aurais une question quant à l'importation de la base SQL dans MySQL workbench.

-D'abord pour sauvgarder au format .json à partir de cette url: https://fonoapi.freshpixl.com/v1/getdev ... ce=samsung
Je ne sais pas comment l'enregistrer à ce format je n'arrive qu'à l'enregistrer en .txt?

-Et après cela je ne sais pas comment l'importer dans Mysql workbench je n'arrive qu'a importer des format sql.

Merci d'avance pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

29 mars 2016, 18:48

Le format json, c'est un simple fichier texte, donc renomme ton fichier .txt en .json et ça reviendra au même.
Pour l'import via MySQL workbench en revanche, c'est une fonctionnalité que je n'ai jamais utilisé mais le lien vers la doc que je t'ai fournir a l'air relativement explicite, non ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

05 avr. 2016, 10:56

Bonjour,

Encore merci pour vos réponse rapide.
Cependant j'aurais encore quelques questions.
  • Est que je suis obligé de définir toutes les colonnes pour les catégories avant d'importer mon fichier Json
  • Est que je suis obligé de mettre une colonne pour toutes les catégorie que je fait avec "device name", "brand" , etc.
    Ce qui me gène c'est qu'il y a au moins 20 catégorie et qu'il n'y en a que 5-6 qui m’intéresse vraiment
  • Quel datatype mettre pour mettre des chiffres et des lettres comme pour la résolution par exemple ou il y a des chiffres et un x (1980x1050)
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

05 avr. 2016, 19:18

Est que je suis obligé de définir toutes les colonnes pour les catégories avant d'importer mon fichier Json
Est que je suis obligé de mettre une colonne pour toutes les catégorie que je fait avec "device name", "brand" , etc.
Ce qui me gène c'est qu'il y a au moins 20 catégorie et qu'il n'y en a que 5-6 qui m’intéresse vraiment
Si j'en crois la figure 6.20 de la doc MySQL, tu devrais pouvoir décocher les colonnes qui ne t'intéressent pas :
https://dev.mysql.com/doc/workbench/en/ ... figuration

Au pire, si ce n'est pas possible, importe toutes les données et tu ferras le ménage ensuite directement dans phpmyadmin en supprimant les données inutiles.
Quel datatype mettre pour mettre des chiffres et des lettres comme pour la résolution par exemple ou il y a des chiffres et un x (1980x1050)
Dans un premier temps un varchar, et ensuite si tu veux optimiser, tu pourras faire une requête SQL avec un SELECT UNIQUE pour voir toutes les valeurs possibles et si il n'y en a pas trop, remplacer le varchar par un enum()
Mais à mon sens, vu ton projet je me contenterai d'un varchar()
Quand tout le reste a échoué, lisez le mode d'emploi...