Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
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 21/09/2011, 12h00   #1
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Par défaut Pb Trie sur 2 tables differentes

Bonjour,

Voila, je me retrouve avec 2 tables

TABLE A
ID|champ 1|champ 2|champ 3|date|


TABLE B
ID|champ 1|champ 2|date|

Je veux faire un trie sur ces 2 tables en même temps pour recupérer le plus récent ID en fonction de la date.
Le souci c'est que les tables sont différentes et je ne peux pas faire d'UNION.

Auriez vous une solution?

Merci d'avance

Stéphane
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h22   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Quand tu écris TRI, tu penses probablement classement.
Date comme nom de colonne n'est pas un choix judicieux car c'est un mot réservé de SQL.
Pour faire l'UNION entre les deux tables tu peux le faire en ne nommant que les colonnes correspondantes dans les deux SELECT.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h54   #3
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Merci pour la réponse

Les nom utilisé ne sont que des exemples, mes champs ne se nomme pas comme ça. En gros, je voudrais réunir les date avec toutes les informations des 2 tables, les trier par date et recupérer le produit le plus récent.

Le but:
J'ai un site qui présente la dernière nouveauté sauf que les données peuvent êtres différent en fonction de ce produit.
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 13h56   #4
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Et peut-on voir le résultat d'un SHOW CREATE TABLE sur chacune des tables ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h06   #5
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Premiere table

Citation:
CREATE TABLE `tab008_fichiers` (
`Fichier_id` smallint(6) NOT NULL AUTO_INCREMENT,
`Fichier_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Fichier_nom` varchar(50) CHARACTER SET latin1 NOT NULL,
`Fichier_taille` tinyint(4) NOT NULL,
`Fichier_type` varchar(15) CHARACTER SET latin1 NOT NULL,
`Fichier_desc` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`Fichier_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Deuxieme table

Citation:
CREATE TABLE `tab006_models3d` (
`Model_id` mediumint(9) NOT NULL AUTO_INCREMENT,
`Model_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Utilisateur_id` smallint(6) NOT NULL,
`Model_titre` varchar(100) CHARACTER SET latin1 NOT NULL,
`Model_logiciel` varchar(50) CHARACTER SET latin1 NOT NULL,
`Model_desc` varchar(255) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`Model_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h43   #6
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Essayons comme cela
Code mysql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT * FROM(SELECT `Fichier_id` AS id,
       `Fichier_date` AS jour,
       `Fichier_nom` AS nom,
       "utilisateur" AS u_id,
       `Fichier_taille`,
        "titre" AS titre
       `Fichier_type` AS type,
       "logiciel" AS logiciel,
       `Fichier_desc` AS dscript
FROM `tab008_fichiers`
UNION ALL
SELECT `Model_id`,
       `Model_date`,
       "nom",
       `Utilisateur_id`,
       "taille",
       `Model_titre`,
       "type"
       `Model_logiciel`,
       `Model_desc`
FROM `tab006_models3d`) AS t
ORDER BY t.jour DESC LIMIT 1
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 14h51   #7
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Oula, a se que je vois, j'ai encore pas mal a apprendre dans le langage SQL. Si je comprend bien tu attribut des noms aux informations collectées de chaque table pour les indexer dans un tableau. Après j'ai du mal à déchiffrer mais c'est certainement dus a mon manque d’expérience. J’essaie la requête et je te tiens au courant.
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 15h14   #8
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
La requete marche sur phpmyadmin. je recupere bien la données voulu. Pour faire la difference entre un fichier et un modele je metterais un champs vide.
Par contre quand je l'execute sur php avec mysql_fetch_array, ca ne marche pas... Je comprend pas trop pourquoi..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
$requete_test = "SELECT * FROM(
SELECT `Fichier_id` AS id,
 `Fichier_date` AS jour,
`Fichier_nom` AS nom,
'utilisateur' AS u_id,
`Fichier_taille`,
'titre' AS titre,
`Fichier_type` AS type,
'logiciel' AS logiciel,
`Fichier_desc` AS dscript 
FROM `tab008_fichiers`UNION ALL SELECT `Model_id`,
`Model_date`,
'nom',
`Utilisateur_id`,
'taille',
`Model_titre`,
'type',
Model_logiciel`,
`Model_desc` FROM `tab006_models3d`) AS t ORDER BY t.jour DESC LIMIT 1";
 
$resultat_test = mysql_query($requete_test);
$stest=mysql_fetch_array($resultat_test);
echo $stest['nom'];
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 17h20   #9
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Il paraitrait que php ne gère pas les requêtes imbriqué. Peut-on faire autrement pour que la requête passe avec la fonction php?
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 19h28   #10
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Ce n'est pas un problème PHP, c'est un problème lié à la version de MySQL.
Mais comme tu dis que la requête tourne sous phpMyAdmin (qui est une application écrite en PHP), je ne comprends pas grand chose à ton post.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h34   #11
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
désolé pour le retard,

Lorsque j’exécute la requête avec la fonction php "mysql_fetch_array()" sur une page php, ca me met un message d'erreur. hors sur phpmyadmin ca fonctionne bien. personnellement je comprend pas.

Pour faire un test j'ai fait un echo de la requete dans ma page php. la requête s'affiche bien mais le message d'erreur apparait lors de mysql_fetch-array. Pour être sur de la requête, J'ai copier le résultat qui s’affiche sur ma page puis je les copier dans le champs SQL phpmyadmin et çà fonctionne.

Peut être que c'est une autre fonction php utilisé par phpmyadmin qui exécute la tache.

Pourtant sur les autres requêtes de mon site ca fonctionne très bien..
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 22h46   #12
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
je te conseille d'ajouter or die(mysql_error()) derrière $resultat_test = mysql_query($requete_test) afin de voir si l'erreur provient de la soumission de la requête à MySQL par PHP.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 23h10   #13
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
ok merci pour ta réponse et ta patience,

Se qui est déjà bien c'est que la requête SQL marche bien et ca répond tout a fais à se que je demandé. maintenant, il manque plus qu'a trouver cette petite erreur.

je testerai demain pour vérifier. J'utilise comme simulateur local easyphp avec la dernière version de phpmyadmin. Je ne pense pas que ça vienne du serveur.

Merci encore
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 09h02   #14
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Salut,

voici le message que ca me donne

Citation:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\WEBMASTER\PixmodelsV4_2011\FTP server\www\index.php on line 33
Erreur de syntaxe pr�s de 'Model_desc` FROM `tab006_models3d`) AS t ORDER BY t.jour DESC LIMIT 1' � la ligne 2
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 09h15   #15
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Ah finalement j'ai trouver l'erreur. C'était une erreur dans les espaces et les sauts de ligne de la requête dans le code de la page. Bizarre qu'en ayant fait un copier/coller dans phpmyadmin ca marche. Bref, des fois on cherche compliqué alors que l'erreur est si simple .
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 09h19   #16
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Donc tu peux marquer le post comme résolu ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 10h21   #17
Invité de passage
 
Homme Stephane LIEUMONT
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : Homme Stephane LIEUMONT
Localisation : France

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Désolé,

Merci encore pour ton aide

A+
steph1920 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h01.


 
 
 
 
Partenaires

Hébergement Web