Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2006, 03h30   #1
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 07h29   #2
Invité régulier
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 9
Points : 9
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
@lexx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 09h31   #3
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 10h40   #4
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
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
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 10h42   #5
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Ah oui bien vu Boo ça apporterait une solution adéquate au problème
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 12h32   #6
Invité régulier
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 9
Points : 9
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
@lexx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 13h03   #7
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 13h51   #8
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Code :
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
Citation:
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.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 13h51   #9
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
Alors j'ai ajouté un champ timestamp à toutes mes tables et j'ai donc cette requete :
Code :
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 13h53   #10
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 14h11   #11
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 14h12   #12
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est quoi la différence entre les articles des cinq tables ?
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h40   #13
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h42   #14
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 17h22   #15
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 17h23   #16
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 22h22   #17
Membre du Club
 
Avatar de bibom
 
Étudiant
Inscription : juin 2005
Messages : 83
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 83
Points : 63
Points : 63
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é
bibom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 23h22   #18
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Ah eh bien bravo maintenant tout va être bien plus simple pour toi.

Bon courage pour la suite
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h15.


 
 
 
 
Partenaires

Hébergement Web