Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/11/2007, à 21:09

batis

Aide pour une requete...

Bonsoir a tous,
J'ai deux tableaux (parmis d'autres):

CREATE TABLE `bibli`.`bib_authors` (
`id` int(3) NOT NULL auto_increment,
`name` varchar(30) NOT NULL default '',
`surname` varchar(30) default NULL,
`ident` varchar(30) default NULL,
`homepage` varchar(255) default NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`),
KEY `surname` (`surname`),
KEY `ident` (`ident`),
KEY `indexed` (`indexed`),
KEY `valid` (`valid`)
) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=latin1

CREATE TABLE `bibli`.`bib_bibs` (
`ID` int(4) NOT NULL auto_increment,
`Name` varchar(255) NOT NULL default '',
`Description` text,
`nr_pubs` int(4) NOT NULL default '0',
`id_user_c` int(4) NOT NULL default '0',
`date_c` datetime default NULL,
`computer_c` varchar(150) default NULL,
`id_user_lm` int(4) NOT NULL default '0',
`date_lm` datetime default NULL,
`computer_lm` varchar(150) default NULL,
`access` enum('ALL','GROUP','ME') NOT NULL default 'ME',
PRIMARY KEY (`ID`),
KEY `name` (`Name`),
KEY `access` (`access`),
KEY `id_user_c` (`id_user_c`),
KEY `id_user_lm` (`id_user_lm`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Et ma requete et la suivante:

select distinct concat(bib_authors.name , ' ', bib_authors.surname) as nom, bib_publications.title from 
bib_authors right join bib_pub_to_auth on bib_authors.id = id_author right join bib_publications on
 bib_publications.id = id_pub where bib_publications.year = '2005'

J'obtiens ce résultat:

--------------------------------------------------
- name -- title
--------------------------------------------------
- John P. -- Selecting preferred...
- Smith C. -- Selecting preferred...
- Donald T. -- Eliciting preference...
- Garry S. -- Eliciting preference...
- James N. -- Eliciting preference...
--------------------------------------------------

Et moi ce que je veux obtenir c'est plutot:

--------------------------------------------------------------------------------------------------
- name -- title
--------------------------------------------------------------------------------------------------
- John P. Et Smith C. -- Selecting preferred...
- Donald T., Garry S. Et James N. -- Eliciting preference...
--------------------------------------------------------------------------------------------------

J'aimerai avoir ça comme reponse de ma requete sql...
Les tableau sont de Type MyIsam (Je travaille sur une BD que je dois lui rajoutter d'autres fonctionnalités)
Je crois qu'il va falloir utiliser les fonctions ou autre...
Merci d'avance pour votre aide

Hors ligne

#2 Le 11/11/2007, à 01:11

CladX

Re : Aide pour une requete...

en 2 requetes :

$req1 = mysql_query=("SELECT *  FROM bib_bibs GROUP BY `title` ORDER BY `title` DESC");
la a l'aide de ton while tu sors la liste des "title" que je vais appel $rep1[title]


Puis applique la deuxieme requete :
$req2 = mysql_query=("SELECT *  FROM bib_authors WHERE `ident`='$rep1[title]' ");
Puis ton while sera :

{$rep2[name],} - $rep1[title]

pour faire plus propre tu passes par un mysl nb rows pour compter le nbr de gars, et ajoute une virgule a chaque fois !


a remplacer par les colonnes correspondantes

Bonne chance


Ma bombe : ubuntu 10.04 - Core2 2.13go - 4go ram - SSD X25-M 80go - p5kplam- 2 nvidia - quadruple screens ;-)
Portable : ubuntu 10.10 Butterfly 4go ram - 320hdd  - dalle capacitive - tactile et bientôt multi touch ;-)
Windows ? Pas chez moi depuis près de 6ans et ça ne me manque pas !
Producteur de Santimancho -> http://www.necliquepasici.com/

Hors ligne