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 :

Une question idiote basique (j'ai pourtant lu des tutos..)


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut Une question idiote basique (j'ai pourtant lu des tutos..)
    Je viens vous voir car je suis un peu perdu...
    C'est pourtant basic mais je débute et là, je ne trouve pas de solution.
    Voilà, je tente de faire un site et je réalise un "mini squelette" que j'appliquerai plus tard à grande échelle.

    J'ai deux pages php, "jeu1.php" et "jeu2.php".
    J'ai une table "informationjeux" qui possède des champs (id, nom, description, prix, etc..).
    J'ai un autre table "vote" qui possède des champs (nom, note).

    Je souhaiterais faire une liaison entre ces deux pages et ces deux tables, afin que chaque page se calque à ses informations.
    En gros, je sais qu'il faut que j'assigne à "jeu1.php" l'id 1 (dont le nom est bien celui de jeu1), et pareil pour jeu2.php ET AINSI DE SUITE.

    Je ne travaille pas avec un CMS qui pourrait faire la liaison automatiquement. J'ai bien des pages séparées et une base à côté.

    Auriez-vous un truc tout bête à me dire (en plus de mon amateurisme ? ^^), merci d'avance

    Ps : Pour ce qui est de tutos que j'ai lu, si je comprends bien, il faudrait que mon url comporte php?id=1 pour jeu1.php par exemple ? Le tout avec une connexion à cette table au début de ma page.
    Je ne peux pas "cacher" cet "id=1", il faut le faire passer par l'url automatiquement ? Thx !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Juste un ou deux trucs :
    J'ai une table "informationjeux" qui possède des champs (id, nom, description, prix, etc..).
    J'ai un autre table "vote" qui possède des champs (nom, note).
    1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    2) Ta table vote devrait avoir pour clé étrangère l'identifiant de "informationjeux" et non pas son nom.
    En plus cette table pourrait s'appeler tout simplement "jeu" il mes emble !

    Pour le reste de ton problème, il n'est pas assez clairement expliqué pour qu'on puisse t'aider effecicacement.
    Que doivent afficher tes 2 pages ?

    Et tu devrais commencer par faire un bon modèle de données avant de te lancer tête baissée dans le développement.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Votre question est plutôt relative à PHP.

    En effet, il vous faut une unique page "jeu.php" à laquelle vous allez passer l'identifiant du numéro du jeu que vous voulez afficher/modifier.

    La méthode classique est effectivement la "querystring", c'est à dire d'ajouter dans le lien qui pointe vers la page, un code "?id=1" afin d'indiquer qu'il faut passer la variable "id" avec la valeur "1" à votre page.

    Vous avez d'autres méthodes, plus ou moins élaborée, plus ou moins faciles à implémenter :
    - Les valeurs de formulaire. Au lieu de faire un simple lien, vous faites un formulaire, dans lequel vous mettez un champ caché (input de type hidden) qui s'appellera id et contiendra la valeur désirée. La mise en place est un peu plus lourde, mais pas non plus bien compliquée
    - La réécriture d'URL : je n'ai jamais utilisé cette méthode, mais elle consiste à non pas appeler votre page directement en lui passant un paramètre, mais d'appeler par exemple l'url "http://monsite/jeu/monopoly". A ce moment, un module sur le site sait qu'il doit aller dans la table des jeux chercher l'id de celui qui s'appelle "monopoly", et le passer en parmètre à la page "jeu.php". C'est la solution la plus "sexie", car cela donne des url faciles à retenir pour les utilisateurs.
    - Les cookies/sessions : au moment où on clique sur un lien, on stocke en cookie ou en session l'identifiant du jeu à afficher, et on peut le rappeler au moment où on charge la page jeu.php
    - Le contexte : basé sur une clé qu'on passe à toutes les pages (soit par querystring, cookie, form ou session), et qui permet de retrouver dans une table volatile ou dans un fichier, l'ensemble des informations dont on a besoin pour afficher une page. C'est la solution utilisée par .NET par exemple pour conserver les données persistantes de façon transparente pour le développeur.
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Merci à vous deux !

    CinePhil :
    - En effet, il s'agit de colonnes et non de champs
    - Pour la partie "vote", tu as raison, il faudra que je fasse une liaison avec l'ID, thx
    - Et oui, là, je remets le côté dev tout à plat, d'autant que mes compétences ne sont pas très bonnes.

    StringBuilder :
    En fait, si j'ai deux fichiers php, c'est parce que je voulais mettre certains contenus en dur et non en base (le prix du mo en bdd étant 10 fois plus cher que pour le mo en disque dur sur les hébergements mutualisés) mais tu as en effet relancé une réflexion qui consiste à tout mettre en base.
    Cependant, je suis également freiné par deux choses :
    - Je ne passe pas par un frameworks et l'histoire du module pour interpréter côté serveur "fifa2013" par "jeux.php?id=2" est donc clairement au-delà de mes compétences. Voilà pourquoi (mon site ne fera pas 10 000 pages et n'aura pas 100 mises à jour par mois) je m'étais dis qu'en faisant un fifa2013.php?id=2, très moche au passage, j'aurai pu avoir une url un minimum compréhensible.
    Saurais-tu comment faire pour obtenir le résultat du premier exemple ?
    Je me vois mal passer par le rewritting url à url sur htaccess...

    Merci d'avance

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/07/2014, 10h09
  2. [XL-2003] Une question concernant mon module VBA pour envoi des mail en masse.
    Par dariyoosh dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/10/2010, 16h03
  3. Réponses: 6
    Dernier message: 20/11/2009, 13h16
  4. [RegEx] une question idiote, regex ou substr
    Par Dendrite dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2009, 11h49
  5. Réponses: 19
    Dernier message: 30/05/2006, 18h43

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