[php/mysql] Récupérer les champs de 2 tables
dcanl
Messages postés
3004
Date d'inscription
Statut
Contributeur
Dernière intervention
-
holow1 Messages postés 680 Date d'inscription Statut Membre Dernière intervention -
holow1 Messages postés 680 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai actuellement deux tables (news et L3) ayant la même structure :
J'aimerais pouvoir afficher le contenu de ces deux tables, trié par date (timestamp), mais je n'y arrive pas.
SELECT * FROM news, L3 récupère bien tous les champs dans mysql, mais comment faire l'affichage correspondant avec php ?
Pourriez-vous m'aider svp ?
Ou serait-il meilleur de faire une seule table pour toutes les actus avec un champ "Type" qui les classerait par catégorie... ?
Merci d'avance.
J'ai actuellement deux tables (news et L3) ayant la même structure :
id int(11) titre varchar(255) contenu text timestamp bigint(20) publication char(3) auteur varchar(50)Comme vous l'aurez compris, ces deux tables contiennent des actualités (table news pour les actualités du site, tables L3 pour les actualités concernant les études).
J'aimerais pouvoir afficher le contenu de ces deux tables, trié par date (timestamp), mais je n'y arrive pas.
SELECT * FROM news, L3 récupère bien tous les champs dans mysql, mais comment faire l'affichage correspondant avec php ?
Pourriez-vous m'aider svp ?
Ou serait-il meilleur de faire une seule table pour toutes les actus avec un champ "Type" qui les classerait par catégorie... ?
Merci d'avance.
A voir également:
- [php/mysql] Récupérer les champs de 2 tables
- Supercopier 2 - Télécharger - Gestion de fichiers
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
- Tables des matières word - Guide
6 réponses
Bonsoir
il y a un petit problème dans ta requête SELECT * FROM news, L3 c'est une jointure
si j’ai bien compris tu veux faire une union du contenu des deux table
essai plutôt
select * from (select * from news UNION select * from l3)as T1 order by timestamp desc
tu aura comme résultat un tableau avec 6 colonne et nombre de ligne = nombre ligne (L3) + nombre ligne (news)
il y a un petit problème dans ta requête SELECT * FROM news, L3 c'est une jointure
si j’ai bien compris tu veux faire une union du contenu des deux table
essai plutôt
select * from (select * from news UNION select * from l3)as T1 order by timestamp desc
tu aura comme résultat un tableau avec 6 colonne et nombre de ligne = nombre ligne (L3) + nombre ligne (news)
bonjour,
Expemple avec celle que j'utilise pour mon site.
voici ce que ça me donne
Essai de voir ce que ça donne avec ceci pour ta base (la page est au format .php)
Bonne journée. Il se peux que ce ne sois pas ce qui est recherché!
Expemple avec celle que j'utilise pour mon site.
<?php mysql_connect("localhost", "IDENTIFIANT", "MOT DE PASSE"); // Connexion à MySQL mysql_select_db("base"); // Sélection de la base du site $reponse = mysql_query("SELECT * FROM nom de la base"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : while ($donnees = mysql_fetch_array($reponse) ) { ?> Référence Chaine :</span><strong> <?php echo $donnees['id']; ?> </strong> Reçu le :</span><strong> <?php echo $donnees['date']; ?></strong> <p><?php echo $donnees['contenu']; ?></p> <?php } mysql_close(); // Déconnexion de MySQL ?>
voici ce que ça me donne
Essai de voir ce que ça donne avec ceci pour ta base (la page est au format .php)
<?php mysql_connect("localhost", "IDENTIFIANT", "MOT DE PASSE"); // Connexion à MySQL mysql_select_db("base"); // Sélection de la base du site $reponse = mysql_query("SELECT * FROM news"); // Requête SQL // On fait une boucle pour lister tout ce que contient la table : while ($donnees = mysql_fetch_array($reponse) ) { ?> ID:</span><strong> <?php echo $donnees['id']; ?> </strong> titre:<strong> <?php echo $donnees['titre']; ?></strong> timestamp:<?php echo $donnees['timestamp']; ?> publication:<?php echo $donnees['publication']; ?> auteur:<?php echo $donnees['auteur']; ?> <p><?php echo $donnees['contenu']; ?></p> <?php } mysql_close(); // Déconnexion de MySQL ?>
Bonne journée. Il se peux que ce ne sois pas ce qui est recherché!
tu fais la même chose en dessous mais avec la seconde table.
pour ce qui est de l'affichage par rapport au timestamp, je ne sais pas comment faire, je vais regarder sur le site du Zéro pour voir.
tu as bien conpris le code ! il affiche le contenue de ta table
bonne journée
pour ce qui est de l'affichage par rapport au timestamp, je ne sais pas comment faire, je vais regarder sur le site du Zéro pour voir.
tu as bien conpris le code ! il affiche le contenue de ta table
bonne journée
Re.
J'ai regardé comment fonctionnait les forums PUNBB.
J'ai calqué ma propre base de données sur ce modèle.
Il y a donc une table Catégories (News, L3) et une table Actualites (qui contient les actus postées).
Je peux alors sélectionner et afficher ce que je veux, dans l'ordre que je veux.
Merci quand même.
@+
J'ai regardé comment fonctionnait les forums PUNBB.
J'ai calqué ma propre base de données sur ce modèle.
Il y a donc une table Catégories (News, L3) et une table Actualites (qui contient les actus postées).
Je peux alors sélectionner et afficher ce que je veux, dans l'ordre que je veux.
Merci quand même.
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut dcanl,
j'ai le même conflit que toi, je dois récuperer des donnée de 2 tables différentes ayant le même nom de champs, pourrais-tu me donner un exemple du comment tu as résolu ton problème, car je ne connais pas du tout la façon de fonctionner des forum PUNBB.
Merci d'avance
Cordialement
j'ai le même conflit que toi, je dois récuperer des donnée de 2 tables différentes ayant le même nom de champs, pourrais-tu me donner un exemple du comment tu as résolu ton problème, car je ne connais pas du tout la façon de fonctionner des forum PUNBB.
Merci d'avance
Cordialement
Salut.
J'ai fusionné mes deux tables en une seule, en ajoutant un champ de clé étrangère "catégorie" qui pointe vers une table qui contient le nom de toutes les catégories possibles. C'est bien plus souple et pratique comme ça !
Toutes les opérations de récupération, tri et filtre sont ainsi beaucoup plus simples. Tout est adaptable.
@+
J'ai fusionné mes deux tables en une seule, en ajoutant un champ de clé étrangère "catégorie" qui pointe vers une table qui contient le nom de toutes les catégories possibles. C'est bien plus souple et pratique comme ça !
Toutes les opérations de récupération, tri et filtre sont ainsi beaucoup plus simples. Tout est adaptable.
@+
Je te remercie de ta réponse, bien qu'elle ne réponde pas à mon problème, c'est un projet que j'ai pour mon stage en entreprise, et je ne peut pas modifier leur base de donnée, car j'utilise celle centrale, je souhaite justement récupérer les donnée pour pouvoir les modeler à ma guise dans une base de donnée à part.
et je récupère d'une table pro_ofent.dte_debprev et pro_ofent.dte_finprev, et d'une autre table pro_ofop.dte_debprev et pro_ofop.dte_finprev
mon problème ce situe dans la boucle que je fait ensuite(foreach) pour extraire les données du résultat de la requête qui marche très bien, elle est aussi utilisé au travers de excel, les donnée sont très bien reçu.
par exemple : $row['DTE_DEBPREV'] et $row['DTE_FINPREV']
j'ai éssayé avec $row['PRO_OFENT.DTE_DEBPREV'] etc...
mais ça ne me retourne strictement rien ...
si vous avez des sugestion je suis tout ouï
Cordialement
et je récupère d'une table pro_ofent.dte_debprev et pro_ofent.dte_finprev, et d'une autre table pro_ofop.dte_debprev et pro_ofop.dte_finprev
mon problème ce situe dans la boucle que je fait ensuite(foreach) pour extraire les données du résultat de la requête qui marche très bien, elle est aussi utilisé au travers de excel, les donnée sont très bien reçu.
par exemple : $row['DTE_DEBPREV'] et $row['DTE_FINPREV']
j'ai éssayé avec $row['PRO_OFENT.DTE_DEBPREV'] etc...
mais ça ne me retourne strictement rien ...
si vous avez des sugestion je suis tout ouï
Cordialement
Je te remercie pour ta réponse, même si il est vrai que ma guerre est fini loool
éffectivement je programmais mon code en php, de toute façon pour dialoguer avec une base de donnée le html et le javascript ne sont pas trés utiles du fait que le html est de la mise en page, et que le javascript s'éxécute non pas sur le serveur, mais sur le client. enfin bref.
j'ai regardé le site que tu m'as passé, je comprend tout à fait qu'il faille utiliser union, mais mon gros problème était que je récupérais de 2 tables différentes, 2 valeur de même ID, et après la mise en mémoire, je ne trouvais pas comment les rappeler. Donc à l'époque la solution que j'ai utilisé, c'est qu'au lieu de les rappeler en les appelant par leur ID graçe au foreach, je les rappelais en les pointant directement par le numéro d'ordre de rangement lors du foreach.
c'est à dire au lieu de $ROW['DATE_DEBPREV'] j'utilisais par exemple $ROW['10']
mais je trouve cette méthode pas trés propre, c'est pour ça que je demandais ce renseigment.
Cordialement, et merci encore Korri
éffectivement je programmais mon code en php, de toute façon pour dialoguer avec une base de donnée le html et le javascript ne sont pas trés utiles du fait que le html est de la mise en page, et que le javascript s'éxécute non pas sur le serveur, mais sur le client. enfin bref.
j'ai regardé le site que tu m'as passé, je comprend tout à fait qu'il faille utiliser union, mais mon gros problème était que je récupérais de 2 tables différentes, 2 valeur de même ID, et après la mise en mémoire, je ne trouvais pas comment les rappeler. Donc à l'époque la solution que j'ai utilisé, c'est qu'au lieu de les rappeler en les appelant par leur ID graçe au foreach, je les rappelais en les pointant directement par le numéro d'ordre de rangement lors du foreach.
c'est à dire au lieu de $ROW['DATE_DEBPREV'] j'utilisais par exemple $ROW['10']
mais je trouve cette méthode pas trés propre, c'est pour ça que je demandais ce renseigment.
Cordialement, et merci encore Korri