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 :

Restreindre une table


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Restreindre une table
    Bonjour,

    Je travaille avec une base Mysql et php pour le site.
    Mon problème est le suivant.

    Sur une de mes pages j'ai uniquement besoin d'une partie d'une de mes grandes table (Par exemple les personnes < 18 ans dans ma table Personnes tres grande).

    Je voulais donc travailler sur une version restreinte de cette table pour toutes mes requêtes de la pages (ca permettrai a chaque fois de ne pas traiter des personnes obligatoirement inutiles sur cette page).

    Comment créer cette table intermédiaire (ou équivalent) ?
    Merci de votre aide .

  2. #2
    Membre averti Avatar de Hug0_76
    Profil pro
    Inscrit en
    Août 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 292
    Points : 332
    Points
    332
    Par défaut
    Salut,

    Dans ton problème, il y a une partie que je n'ai pas saisie, où comptes tu manipuler tes tables? Avec php ou directement sur MySQL?
    Je te propose 3 solutions :
    1. Table temporaire
    2. Index de recherche sur ta table
    3. Chargement en mémoire (variable php qui contient un résultat de requète)


    En ce qui concerne les tables temporaires, tu peux créer une table de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE TEMPORARY TABLE temp_nom_table (nom VARCHAR(20), prenom VARCHAR(20), age INTEGER)
    SELECT (nom, prenom, age) FROM table_entiere WHERE col_age > 18;
    Pour la syntaxe, va ici


    Pour les index (diminution du temps de recherche sur certains paramètres), tu peux procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX part_of_age ON table_entiere(col_age);
    Toujours pareil si tu ne sais pas à quoi saire ni comment créer des index va sur la doc ici


    Dernière solution, consiste à récupérer dans un tableau PHP le résultat d'une requête SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $t_result = select("SELECT nom, prenom, age FROM ma_table WHERE age > 18");
    select() étant une fonction que tu auras développer pour te retourner un résultat.

    J'espère que j'ai été assez clair!!!
    Bon courage
    Si la connerie de certain fonctionnait au gazole il y aurait pénurie !!!!

    Lao Tzeu a dit : "Il faut trouver la voix"...Si tu ne l'as pas trouvé, je vais t'aider en te coupant la tête.

  3. #3
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Si tu utilises mysql 5.x, tu peux regarder les nouvelles possibilités offertes par les Views. Basiquement, c'est exactement ce que tu recherches

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2002
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    merci a vous deux je vais explorer dans ces directions .

  5. #5
    Membre averti Avatar de Hug0_76
    Profil pro
    Inscrit en
    Août 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 292
    Points : 332
    Points
    332
    Par défaut
    Exact goodpz a raison, tu peux aller voir du coté des VIEWs, le seul inconvénient (si cela en est réellement un) c'est que ta vue, tu devras la supprimée de ta bdd.
    Alors que ta table temporaire, elle sera supprimée une fois déconnecté du serveur mysql
    Si la connerie de certain fonctionnait au gazole il y aurait pénurie !!!!

    Lao Tzeu a dit : "Il faut trouver la voix"...Si tu ne l'as pas trouvé, je vais t'aider en te coupant la tête.

Discussions similaires

  1. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00
  2. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54
  3. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  4. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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