begin process at 2012 05 31 09:22:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

select sur 2 tables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

select sur 2 tables

mercredi 22 septembre 2004 à 13:46:10 | select sur 2 tables

perig

Salut
alors voila!!!!
Dans une base sql, j'ai 2 tables identiques en structure (je tenais a séparer les données au début et je me vois mal revoir toute ma prog)
Ces 2 tables ont un champ nb_vu (pour le nombre de fois vu)
et je cherche a faire un select sur ces 2 tables pour récupérer les entrés les plus vu!!!!

Vous avez pigé?
Utiliser les 2 tables comme si elles étaient dans la meme!!!
Mais bien les tables ne sont pas liés (dans table 1 j'ai les article de type 1 et dans table 2 ceux de type 2)

Je cherche donc a faire une requete du type
SELECT * FROM Table1,Table2 ORDER BY nb_vu LIMIT 0, 5;
et ca me donerais les articles les plus vu parmis les 2 tables
mais la requette ci dessu ne tourne pas!!!!
Je sais pas comment faire !!!!Et sql n'est pas mon fort!!!

---Perig---
Pour vous servir
Et parfois en galère
Souvent même
mercredi 22 septembre 2004 à 14:36:42 | Re : select sur 2 tables

ehmarc

Réponse acceptée !
salut

je fait cour c la deuxieme fois que j'ecris le mess a cause d'un plantage.... grrrrr

3 solutions :

1- tu fait ton traitement en deux fois.... avec une fonction par exemple et tu retourne ta soluce

SELECT * FROM Table1 ORDER BY nb_vu LIMIT 0, 5;
query...
while(mysql_fetch_object($res)){
ta_fonction(tes_vars);
}
SELECT * FROM Table2 ORDER BY nb_vu LIMIT 0, 5;
query...
while(mysql_fetch_object($res)){
ta_fonction(tes_vars);
}

2- tu cree une table temporaire avec tes données et tu fait ton traitement sur cette table temporaire. ensuite tu detruit ou tu la vide comme ca a la reexecution pas de probleme (perso moi je creer o debut de ma page et je detruit une fois mon traitement terminer

3- je sais pas mais si tu trouve dit moi jai deja chercher et jai pas trouver de soluce... autre que ca (perso jai utiliser la deuxième)
et le traitement pour moi reste rapide et javai trois tables

j'espere que ca va t'aider

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller"
mercredi 22 septembre 2004 à 17:57:22 | Re : select sur 2 tables

perig

Merci lol
Mais la 2e risque d'étre trés longue car j'ai environ 12 tables(pour chaque type d'article j'ai une table.)
. Avec 20 a 30 articles dans chaques (pour le moment alors que le site n'est pas référencé )
Je vais donc chercher une méthode 3 et si je trouve je te donnerais la solution!!!

---Perig---
Pour vous servir
Et parfois en galère
Souvent même
mercredi 22 septembre 2004 à 18:28:10 | Re : select sur 2 tables

perig

Réponse acceptée !
Re!!!
je crois avoir trouvé la solution !!!
il faut utiliser UNION
ca donne :
(SELECT * FROM table1 ORDER BY nb_vu DESC LIMIT 5)UNION(SELECT * FROM table2 ORDER BY nb_vu DESC LIMIT 5)
...
UNION(SELECT * FROM tablex ORDER BY nb_vu DESC LIMIT 5)ORDER BY nb_vu DESC LIMIT 0,5;

---Perig---
Pour vous servir
Et parfois en galère
Souvent même
vendredi 24 septembre 2004 à 22:59:27 | Re : select sur 2 tables

perig

Réponse acceptée !
Finalement, c'est pas une bonne idée "UNION" car moi il me fallait connaître pour chaque résultat la table d'origine.

J'ai donc scanné chaque table et j'ai récupéré que les 5 premiers résultats que je classe dans un tableau sous la forme
$liste[$i]=(sprintf("%04d", $res['view']))."_".$res['id']."_".$table;
soit :
$liste[$i]="nb de fois vu (sur 4 chiffres)"_"id de l'enregistrement"_"table"
ensuite je classe mon tableau avec un simple
rsort($liste);
et j'affiche les 5 premiéres lignes de mon tableau ce qui me donne bien le top 5!!!
---Perig---
Pour vous servir
Et parfois en galère
Souvent même
samedi 25 septembre 2004 à 10:15:15 | Re : select sur 2 tables

perig

ps : pour récupérer l'id et le nom de la table j'ai plus qu'a casser ma chaine en fonction du séparateur "_" (qui n'est jamais dans mes nom de tables)

---Perig---
Pour vous servir
Et parfois en galère
Souvent même
samedi 25 septembre 2004 à 13:31:38 | Re : select sur 2 tables

ehmarc

salut

ma version de mysql ne prend pas les "union" j'avais deja tester mais jy ai pas repenser en écrivant ma réponse vu que ca marche pas chez moi
de plus jai le meme probleme que toi je doit connaitre ma table d'origine... jai donc mis dans ma table temporaire un autre champ indiquant la provenance...
Sinon ta solution en triant ta liste est pas mal mais pour moi ca compliquerai ma solution, jai 8 tri différents a faire sur ma table.... pour en ressortir différentes statistiques (en plus la ca marche )
fodra que je pense a "rsort" le prochain coup ca pourrait considérablement simplifier des morceaux de codes

++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller"
samedi 25 septembre 2004 à 13:44:34 | Re : select sur 2 tables

perig

Oui moi enfait j'au 3 types de tables. Avec pour chaque type environ 10 tables (vi je sais c'est pas le top mais bon!!!!)
et je n'ai que a récupérer les articles les plus vu pour chaque type et les nouveaux articles donc pas plus de 6 requettes * le nb de tables. C'est vrais que ca m'en fait 60 en tout a chaque chargement de la page index mais bon, visiblement ca pose pas de prob.
encore merci de ton aide
---Perig---
Pour vous servir
Et parfois en galère
Souvent même


Cette discussion est classée dans : type, sql, select, nb, tables


Répondre à ce message

Sujets en rapport avec ce message

Recherche multi-tables [ par JoJo738 ] Hello, J'ai un petit probleme. Je fais un moteur de recherche multi-tables et je n'arrive pas à savoir de quel table vient l'enregistrement. Et il gar un prob de requete [ par ombrey20 ] j'ai un petit prob qui peut m'aider!!!!! est ce que c'est possible,si jamais on click sur un lien il execute une requete sachant que que cette requett type select dans un formulaire precharge [ par logbird1 ] Salut,je cherche a precharger un formulaire a partir d' une requete mysql. pour les champs de type input c' est facile (">) mais pour les champs de ty php/sql [ par johnmichel57 ] bonjour, voila jai un script mais je n'arrive pas a trouver l'erreur dans ces ligne (erreur parse) if <FONT face="Courier New" color=#008000 size PHP My Sql SELECT [ par RDLG2A ] Bonjour à tous.Je voudrais interroger une base de données pour vérifier l'existence d'une information, tout en ne sachant pas si elle existe.En local, Conversion d'un type ressource (requête SQL) en type int [ par Steeve Le Provost ] Bonjour,je fait une requete SQL que je stocke dans une variable appellée '$resultat'.Cette variable contient un tarif...exemple : 100Je veux additionn ## Où est l'erreur ???? bon diou !! [ par kodiask ] voila dite moi pourkoi lorsque je met le code la, il n'y a rien ki saffiche ? (c un système de citation aléatoire)mysql_select_db('cit_tbl',$db); $que sil vou plé où est l'erreur ? [ par kodiask ] voilà g fai un système de citation au hazard et kanje met le code là il maffiche rien du tout , pourkoi ? merci ....mysql_select_db('cit_tbl',$db); $q Création de Tables via fichier .sql [ par LePhenol ] Bonjour, Je suis en train de créer un install.php pour installer un petit portail que j'ai programmé. J'en suis à la création des Tables SQL dans ma B Requete sur base de données et lien entre deux select relié [ par fredo35m ] Bonjour, j'ai un petit problème entre deux selects liés. En effet, l'utilisateur doit faire un choix dans une 1ère liste (liste prédefinie). Une fois


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales