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 :

[SQL] Derniers enregistrement sur plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut [SQL] Derniers enregistrement sur plusieurs tables
    Bonjour à tous

    Mon Problème :

    J'ai plusieurs tables contenant toutes des articles (site de foot).
    J'aimerais afficher les 5 derniers articles qui ont été écris mais de plusieurs tables.

    Quand c'est sur une seule table j'ai juste à faire ORDER BY id DESC LIMIT 0,5
    Mais la je ne vois pas de solution a part faire un champs date et regarder les 5 date les plus récentes sur toutes mes tables mais cela nécessiterais que je reprenne mes scripts.

    Si vous voyez une autre solution je suis preneur

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Par défaut
    Salut,

    Je ne te garanti rien, je suis encore en phase d'apprentissage du php, mais essaye ça :

    SELECT table1.*, table2.* FROM table1, table 2 ORDER BY id

  3. #3
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ce n'est pas un problème PHP tu auras plus de chances d'avoir de bonnes réponses en postant dans le forum SQL.

    Et la réponse d'alexx n'est pas bonne car il y aurait une ambiguïté sur id.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Et pour ma part je pense que la seule solution est l'ajout d'un champ date puisque sinon tu na aucun moyen d ecomparaison..puisque les id peuvent etre identiques...mais d etoute maniere je pense qu'un champ date pour des articles peut etre fort utile

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ah oui bien vu Boo ça apporterait une solution adéquate au problème

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 29
    Par défaut
    Ah oui. J'ai un peu écrit sans réfléchir...

    Quoi qu'il en soit, mon débu est juste : SELECT table1.*, table2.* FROM table1, table 2 // c'est site tu veux une requête sur 2 tables.

    Ensuite, je te conseille moi aussi de mettre un timestamp (time()) à chaque nouveau message dans les deux tables

  7. #7
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    Ok merci a tous pour les réponse je crois que je vais me résigner à faire un champ date.

    Désolé de ne pas avoir posté au bon endroit, je croyais que ce forum était en rapport avec SQL je suis nouveau donc je découvre

  8. #8
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quoi qu'il en soit, mon débu est juste : SELECT table1.*, table2.* FROM table1, table 2
    Heureusement que c'est juste toutes les requêtes débutent comme ça Et au passage il est préférable de nommer ses champs au lieu de mettre *

    Désolé de ne pas avoir posté au bon endroit, je croyais que ce forum était en
    rapport avec SQL je suis nouveau donc je découvre
    Y'a pas de mal, beaucoup de personnes se trompent (c'est probablement dû aux sous-forums).

    Bon courage.

  9. #9
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    Alors j'ai ajouté un champ timestamp à toutes mes tables et j'ai donc cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'SELECT * FROM table1,table2,table3,table4,table5 ORDER BY timestamp DESC LIMIT 0,5 '
    et il me retourne : Erreur : Column 'timestamp' in order clause is ambiguous

    Comment lui dire de prendre tous les champs timestamp de toutes les tables car je pense que c'est cela qui gène

  10. #10
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est pas bien de donner des noms réservés aux champs (timestamp).

    Tu dois lui préciser sur quel timestamp tu fais le tri (tu as compris ça) avec tableX.timestamp.

    Il faut aussi que tu précises sur quels champs tu fais ta jointure parce que là ça fait pas ce que tu penses, il croise TOUS les enregistrements de tes cinq tables, il fait pas une liste avec les enregistrements de toutes les tables.

    Au final je te conseille d'essayer de trouver un bon tuto SQL car tu ne pars pas dans des bonnes directions, et à mon avis à cause de ça la modélisation de ta table n'est pas bonne.

  11. #11
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    D'accord bon je pense que je vais opter pour une autre solution en fesant une table spécialement pour le timestamp et tous les stocker dedan comme sa il n'y aura plus de problème

    Merci

  12. #12
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est quoi la différence entre les articles des cinq tables ?

  13. #13
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    En faite j'ai une table par sorte d'article :
    - Interviews
    - Portrait de joueur
    - Après - match
    -Avant - match

    Il ya une page par sorte d'article

  14. #14
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    problème de modélisation alors c'est bien ce que je pensais.

    Ce qu'il faut faire c'est une seule table article avec les champs que tu avais + un champ id_categorie, et à côté tu as une table categorie avec comme champ un id et un nom de catégorie, tu verras ça va être quinze fois plus facile à manipuler

  15. #15
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    Oui sa je le sais très bien mais j'ai fait sa dans mes tous début php et la je n'ai pas envi de tout changer pour linstant.
    Peut-etre pour une version prochaine

  16. #16
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    A mon avis par expérience il vaut mieux en chier à changer tes bases tout de suite plutôt que de galérer pendant longtemps à cause d'une mauvaise modélisation...

  17. #17
    Membre confirmé Avatar de bibom
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    83
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 83
    Par défaut
    C'est bon j'ai suivi ton conseil et tout maarche nickel
    J'ai tout refait avec une seule table.

    Merci de m'avoir aidé

  18. #18
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ah eh bien bravo maintenant tout va être bien plus simple pour toi.

    Bon courage pour la suite

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/10/2009, 13h31
  2. [SQL] Requête complexe sur plusieurs tables
    Par BFH dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/09/2007, 16h21
  3. Réponses: 2
    Dernier message: 08/06/2006, 06h29
  4. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 14h00
  5. enregistrement sur plusieurs tables
    Par vovor dans le forum Access
    Réponses: 2
    Dernier message: 03/10/2005, 11h25

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