Notice: Undefined index: position in /home/piregwan/public_html/forum2/reponses2.php on line 50
Piregwan 2000



  07 02 2002 � 16:46


Bjr � tous,

Bon voil�, j'ai deux tables . Une avec toutes les donn�es sur des auteurs (nom, pr�nom, etc... et ID) et une autre table avec toutes les donn�es sur des fichiers post�es par des auteurs ( NomFichier, type, taille, etc..., ET Id de l'auteur).

j'aimerais pouvoir en une seul requ�te r�colter toutes les informations concernant un auteur et toutes les donn�es sur les fichiers post�s par celui-ci.

Je pense qu'il doit y avoir moyen de faire cela avec un "Inner Join" mais je sais plus comment ET SURTOUT, je ne sais plus comment diff�rencier les informations re�ues pour la table auteur et par la table fichier.

Pff , je sais pas si j'ai �t� clair mais bon.
Si qlq un sais m'expliquer comment faire ca en ASP , ce serait le top, sinon, le php, c'est d�j� nickel ...J dirais m�me nickel chrome...

A plus, R-Matou

R-Matou (anacoluthe hyperbolique lvl 1 - )
48 ans (Namur)
r-matou@bah.be
http://www.bah.be

Gnouf est pr�sent sur internet (et particuli�rement Pie)





  07 02 2002 � 17:27


en sql microsoft :
SELECT auteurs.nom,auteurs.prenom,fichiers.nomfichier FROM auteurs INNER JOIN fichiers ON auteurs.id = fichiers.auteurid

en sql normalis� :
SELECT auteurs.nom,auteurs.prenom,fichiers.nomfichier FROM auteurs,fichiers WHERE auteurs.id = fichiers.auteurid

arghhh j'ai oublier le regroupement par l'identifiant de l'auteur.
tu ajoute � la fin des requetes un "GROUP BY auteurs.id" et tu aura un regroupement des fichiers suivants l'identifiant de l'auteur.
c'est �a que tu appelle diff�rencier ??

essaye �a et dis moi si �a merdouille ou si j'ai bien compris ta question.


a+

niko (admin. exil� fanatique - )
45 ans (Reims)
niko@piregwan.com
http://summerefresh.piregwan.com

cet espace est � vendre ! mise � prix � 335�





  07 02 2002 � 18:42


Par contre je me trompe peut �tre mais il me semble que la clause affect�e par le GROUP BY, ici auteurs.id doit �tre incluse dans le SELECT.

Non ?

@+

angel2k (exil� fanatique - )
42 ans (Amiens)
angel2k@piregwan.com | 110643996

cet espace est � vendre ! mise � prix � 518�





  07 02 2002 � 18:53


Non ce que j'appelle diff�rencier , c'est que en fait, j'aimerais mettre en ent�te toute les informations sur l'auteur et puis tous les fichiers qui sont en rapport avec celui ci . Par exemple comme ca :


Mathieu Bazelaire Web-designer Belgique Namur
****************************************
Travaux1 - taille - commentaire: "bonjour"
-------------------------------------------------
Travaux2 - taille - commentaire: "deuxi�me fichier"
-------------------------------------------------
Travaux3 - taille - commentaire: "test en labo"
-------------------------------------------------
Travaux4 - taille - commentaire: "encore un fichier nul"
-------------------------------------------------
Travaux5 - taille - commentaire: "bon voil� c'est fini pour l'exemple"
-------------------------------------------------

Tu comprends mieux ?
merci d�j� pour la requ�te ca a l'air d'�tre bon...

R-matou



R-Matou (anacoluthe hyperbolique lvl 1 - )
48 ans (Namur)
r-matou@bah.be
http://www.bah.be

Gnouf est pr�sent sur internet (et particuli�rement Pie)





  07 02 2002 � 21:45


Salut,

Apparement u veux une solution compl�te non ?

Tu sembles avoir les tables et ce que tu veux c'est le script pour les lire et les mettre en "forme"

Table Auteurs (id, nom, prenom, pseudo, job, pays, ville, commentaire...)
Table Realisations (id, idauteur, titre, type, taille, texte...)

On suppose que tu passe l'id de l'auteur en param�tres, ex : http://www.bah.be/test/show_real.php3?id=12

<?
include("scripts/connexion.php3"); // Connexion � la base MySQL

$req1 = mysql_query("SELECT * FROM auteurs WHERE id= '$id' "); // Premi�re requ�te pour les infos de l'auteur

$nom = mysql_result($req1,0, 'nom');
$prenom = mysql_result($req1,0, 'prenom');
$job = mysql_result($req1,0, 'job');
$pays = mysql_result($req1,0, 'pays');
$ville = mysql_result($req1,0, 'ville');

echo "$prenom $nom $job $pays $ville <br> ";
$tmp = $prenom." ".$nom." ".$job." ".$pays." ".$ville;
$long = strlen($tmp);
for($i=0;$i <$lon;$i++)
{
    echo "*"; // Pour ajuster le nombre d'�toiles aux infos au dessus
}
echo " <br> ";

$req2 = mysql_query("SELECT * FROM realisation WHERE idauteur= '$id' ");
$res = mysql_numrows($req2);

for($i=0;$i <$res;$i++)
{
    $titre = mysql_result($req2,$i, 'titre');
    $taille = mysql_result($req2,$i, 'taille');
    $texte = mysql_result($req2,$i, 'texte');

    $affiche = "$titre - $taille - commentaire : $texte <br> ";
    echo $affiche;
    for($j=0;$j <100;$j++)
    {
        echo "-";
    }
    echo " <br> ";
}
?>

Voila, c'est pas de l'ASP mais j'esp�re r�pondre � tes attentes... Si il y a des bugs (fortement probable ^^) c'est surtout du au fait que je l'ai fait un peu � l'arrache
La mise en forme est celle de ton poste (� peu pr�s ...) � toi de faire mumuse avec le HTML

Bon courage.

@+

En plus je risque de me faire engueuler par les admins pour avoir fait la brute en collant tout le script l� ^^ Mea Culpa

angel2k (exil� fanatique - )
42 ans (Amiens)
angel2k@piregwan.com | 110643996

cet espace est � vendre ! mise � prix � 518�





  08 02 2002 � 08:26


Merci Angel2k, c'est gentil d'avoir voulu m'aider mais le r�el probl�me n'est pas l�...Tout ca , je sais le faire sans prob.

Le probl�me vient du faite que avec ta m�thode (la plus courante et celle que j'utilise actuellement ) , pour chaque auteur qui va �tre visualis� , le serveur va recevoir 2 requ�tes "in ze tronch"....

Hors pour �viter cela , il ya moyen (il me semble) de n'envoyer qu'une requ�te SQL (de nouveau il me semble)....

Je sais que ca parait d�bile quand on parle de une ou deux requ�tes mais si on applique ca � un site qui a 100 personnes online, on peux parler de 100 ou 200 requ�tes... et l� , la diff�rence se fait ressentir sur la rapidit� du site.

Et donc, on fait une seul requ�te (avec innerjoin je suppose) mais comment fait on pour diff�rencier les donn�es de l'auteur (une seul ligne puisque un seul auteur) et les donn�es des fichiers (plusieurs lignes puisque plusieurs fichiers)

( rhooo j'en fais de ces tartines...)

Allez , c'est pas gr���ve , si personne ne sait, je resterai dans l'amateurisme en prog mais sinon...

R-Matou

R-Matou (anacoluthe hyperbolique lvl 1 - )
48 ans (Namur)
r-matou@bah.be
http://www.bah.be

Gnouf est pr�sent sur internet (et particuli�rement Pie)





  08 02 2002 � 08:54


Qu'est ce qu'il nous fait le Matou, __nik_o t'as donne la reponse !

SELECT auteurs.nom,auteurs.prenom,fichiers.nomfichier FROM auteurs INNER JOIN fichiers ON auteurs.id = fichiers.auteurid

Ce n'est pas ce que tu voulais ?

++gom

gom3z (l'ami des belges fanatique lvl 1 - )
49 ans (Nottingham)
gom3z@piregwan.com | 22259570

Chasseurs de Galinettes Cendr�es de p�re en fils!





  09 02 2002 � 16:16


salut

vous avez la solution

tu veux faire ca :

Mathieu Bazelaire Web-designer Belgique Namur
****************************************
Travaux1 - taille - commentaire: "bonjour"
-------------------------------------------------
Travaux2 - taille - commentaire: "deuxi�me fichier"
-------------------------------------------------
Travaux3 - taille - commentaire: "test en labo"
-------------------------------------------------
Travaux4 - taille - commentaire: "encore un fichier nul"
-------------------------------------------------
Travaux5 - taille - commentaire: "bon voil� c'est fini pour l'exemple"
-------------------------------------------------


et niko propose :

SELECT auteurs.nom,auteurs.prenom,fichiers.nomfichier FROM auteurs,fichiers WHERE auteurs.id = fichiers.auteurid

tout est l�. trie le r�sultat de ta s�lection par auteur (group by voir niko) et ensuite dans ta boucle d'affichage, intialise une variable temporaire pour le nom de l'auteur. en pseudo code ca donne :

si (auteur.nom == nom_auteur_temp )
{
    // AUTEUR IDENTIQUE -> PAS D'AFFICHAGE DU NOM
}
else
{
    // AUTEUR DIFFERENT -> AFFICHAGE DU NOM
    print (auteur.nom)
    print (*******************************)
}
print (fichiers.nomfichier)
print (-----------------------)
nom_auteur_temp = auteur.nom


ca fait une requete. un join classique.

a+

piregwan (agent mad fanatique lvl 1 - )
49 ans (chamb�ry, 73)
krakoukas@piregwan-genesis.com | 91327470
http://www.piregwan-genesis.com

" s'il vous plait mademoiselle, j'aurais voulu prendre une le�on particuli�re avec anne laurencin " JCD





  09 02 2002 � 16:19


t'as vu l'indentation Ben ? ;)

piregwan (agent mad fanatique lvl 1 - )
49 ans (chamb�ry, 73)
krakoukas@piregwan-genesis.com | 91327470
http://www.piregwan-genesis.com

" s'il vous plait mademoiselle, j'aurais voulu prendre une le�on particuli�re avec anne laurencin " JCD





  09 02 2002 � 16:21


jointures & jointures externes par l'exemple

imaginons qu'on ait un forum avec 2 tables : les sujets et les r�ponses. on veut un moteur de recherche sur le forum, qui recherche a la fois dans les sujets et dans les reponses. on aura une requete simple dans ce style :

select distinct s.*
from sujets s, reponses r
where s.cle=r.cle_sujet // jointure
and ( s.commentaire like '%$recherche%' or r.commentaire like '%$recherche%' ) // la s�quence recherch�e


tout va bien, on obtient la liste de tous les sujets qui contiennent l'occurence recherch�e ou dont l'une au moins des reponses contient ladite occurence. mais il y a juste un probleme. si le sujet n'a pas de reponse, la condition s.cle=r.cle_sujet n'est pas v�rifi�e et l'enregistrement ne sera pas s�lectionn� lors de l'ex�cution de la requete.

c'est dommage, on y etait presque ;) c'est une jointure classique.

l� intervient la jointure externe :

select distinct s.*
from sujets left join reponses on sujets.cle=reponses.cle_sujet
where s.cle=r.cle_sujet
and ( s.commentaire like '%$recherche%' or r.commentaire like '%$recherche%' )


l� vous obtenez tous les sujets contenant l'occurence ou dont une des r�ponses contient l'occurence, meme les sujets sans reponse . la table de gauche (sujets) est dite DIRECTRICE et celle de droite (reponses) OPTIONNELLE .


piregwan (agent mad fanatique lvl 1 - )
49 ans (chamb�ry, 73)
krakoukas@piregwan-genesis.com | 91327470
http://www.piregwan-genesis.com

" s'il vous plait mademoiselle, j'aurais voulu prendre une le�on particuli�re avec anne laurencin " JCD





  11 02 2002 � 18:36


oi, merci , je ne visualisait pas bien comment le r�sultat sortait ...
Maintenant, je me suis rappel� . c'est top top .. merci.

Merci aussi pour ton petit cours, je crois qu'il me sera pratique.

Et d�sol� de ne pas avoir pig� plus t�t pour les auteres ;) ;) ;)

R-Matou

R-Matou (anacoluthe hyperbolique lvl 1 - )
48 ans (Namur)
r-matou@bah.be
http://www.bah.be

Gnouf est pr�sent sur internet (et particuli�rement Pie)


Pour r�pondre � ce sujet (et notifier automatiquement son auteur), cliquez sur le bouton REPONDRE A CE SUJET. Si vous voulez en plus avertir de votre r�ponse une personne qui a particip� � ce sujet, cliquez sur le bouton en face de son intervention. Enfin si vous voulez inviter quelqu'un � r�agir, utilisez les appeaux ci-dessous. Seuls les membres logu�s peuvent utiliser les appeaux et seuls les membres actifs peuvent �tre appeaut�s ^^. Bonne notification !

Vous n'�tes pas membre ou vous n'�tes pas logu�(e) ou les appeaux sont d�sactiv�s dans votre profil. Vous ne pouvez pas utiliser les appeaux.