IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

requête sql dans 2 bases, champ bizarre, trie spécial, ouf !


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut requête sql dans 2 bases, champ bizarre, trie spécial, ouf !
    Bonjour à tous,

    J'ai un problème assez complexe (encore !)... tout du moins pour mois.

    Je développe avec mes moyens un site communautaire.

    j'ai une bdd1 avec une table 'friends' dans laquelle j'ai : id_user id_friend (cela correspond à la liste d'amis, et est sous cette forme

    id_user / id_friend
    1 / 7
    1 / 8
    1 / 9
    J'ai une autre table dans bdd1 qui est "users" sous cette forme :
    user_id / user_name
    1 / maxence
    7 / jean
    8 / fred
    9 / gregoire
    Donc maxence a comme amis : jean, fred, gregoire

    Ensuite j'ai une bdd2 (un forum qu'on m'a fait, je ne PEUX pas modifier cette base) avec dedans des listes de topics et les utilisateurs qui consultent actuellement le topic.. sous cette forme :

    topic_title / users_read
    test / jean,pascal,lisa,jean-pascal,fred
    blabla / jean,fred,gregoire
    jouons / cunégonde
    Je cherche, par une requête sql, à sortir sur la page d'un membre, quels topics sont en train de lire ses amis (par ordres de quantité d'amis lisant un topic)

    ça donnerait donc :
    Bonjour maxence !
    Vos amis lisent les topics "blabla" (jean, fred, gregoire) et "test" (jean, fred)

    Voilà, désolé pour le pavé, mais mes connaissances en php sont encore faibles, et je ne sais même pas comment on fait pour sortir un pseudo d'une table qui comporte plusieurs pseudos (séparés par virgule) puis de les compter, puis de trier... etc ;(

    Merci d'avance de votre aide !

  2. #2
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Bonjour,

    bon ta bd2 me semble un peu bizarre le fait de renseigner les users_read par une suite de prénom c'est peu .

    Donc voila comment je verrai ca,tu récupères via une requête tous les users_read ainsi que leurs topics correspondant (je verrai bien tout ca dans un tableau dynamique).

    Ensuite grâce à PHP tu sépares chaque prénom et tu les stockes dans un autre tableau toujours avec leur topic. Ensuite tu passes tout ca dans une fonction qui t'analyse ce que lise les amies d'un utilisateur.

    Pour résumer, une requete puis tu sépares ce que tu récupères pour ensuite tu effectues une analyse.
    Je n'ai pas trop le temps de te faire un exemple désolé
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Salut et merci d'avoir répondu.
    Malheureusement c'est bien d'un exemple dont j'ai besoin et pas seulement d'une stratégie...; surtout que la tienne semble compliquée car je suis persuadée qu'un cador en requête sql pourrait faire tout ça en 1 seule et unique requête (même si très longue...

    merci d'avance

  4. #4
    Membre actif Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Points : 296
    Points
    296
    Par défaut
    Si tu es sur pour la bd2 (je parle de son contenu) je te renvoie sur cette remarque:
    Citation Envoyé par CinePhil Voir le message
    Le langage SQL est censé être utilisé pour interroger (créer, mettre à jour...) une base de données relationnelle composée de tables, elles-même composées de colonnes et de lignes. Il n'est donc pas prévu de séparateur puisqu'en SQL on demande simplement d'extraire les données de telle(s) colonne(s) de telle(s) table(s).
    C'est pour ca que pour moi si tu veux travailler avec une donnée comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    topic_title / users_read
    test / jean,pascal,lisa,jean-pascal,fred
    il faudrait que tu fasse ce que j'ai dis précédemment, ou du moins cela ne pourra pas être fait en une requête SQL.

    Mais si c'est le cas je veux bien la voir

    Après par contre si dans ta base tu as ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    topic_title / users_read
    test / jean
    test /pascal
    test /lisa
    test /jean-pascal
    test /fred
    Dans ce cas je peux voir comment faire ^^
    Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

    Ps: N'oubliez pas SVP

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par maxence64 Voir le message
    Salut et merci d'avoir répondu.
    Malheureusement c'est bien d'un exemple dont j'ai besoin et pas seulement d'une stratégie...; surtout que la tienne semble compliquée car je suis persuadée qu'un cador en requête sql pourrait faire tout ça en 1 seule et unique requête (même si très longue...

    merci d'avance
    malheureusement, il n'y a pas de champ de jointure possible entre tes deux tables car mauvaise conception sur ta bdd 2 (le user_read est affreux) donc tu vas devoir faire un traitement php (vu que impossible refonte bdd) à moins qu'il y est d'autre champ dans la bdd2 de ton forum qui pourraient ns y aider !

    ++
    Stay in Bed .. Save Energy

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    snif, non il n'y a pas d'autre champs intéressants et je ne peux pas la modifier...

    si ça peut vous aider, il faut savoir (mais ça doit être tout aussi "affreux") que les users se trouvent aussi dans des fichiers !
    sous la forum

    /home/site/data/topic_3.txt
    fred
    jean
    gregoire
    /home/site/data/topic_27.txt
    josiane
    marcel

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Sinon ce n'est pas possible de migrer de forum?

    car là en gros à chaque fois que tu vas devoir avoir une info lié à des utilisateurs et aux forum cela va être la merdouille ..

    de plus ton site communautaire risque d'être très très long ... car imagine pour chaque utilisateur connecté sur ton site tu dois récupérer la liste des topics de ton forum checker si un ami de ton user est bien sur ce topic et ensuite filtré tout ça..

    c'est long, c'est moche, c'est pas maintenable..

    alors qu'une mini modif pour avoir comme le disais Retrokiller069
    id / user_id
    topic_title / users_read
    test / 6
    test /5
    test /4
    test /3
    test /1
    il vaut mieux travaillé avec les ids tant qu'à faire...

    franchement sinon ça va vite être super bancal! (cela doit déjà l'être sur le forum... vu la bdd)
    Stay in Bed .. Save Energy

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    ce n'est pas possible non....
    en passant par les fichiers, personnes n'aurait une solution ?

Discussions similaires

  1. [MySQL] Enregistrement d'une requête SQL dans une base de données MySQL
    Par glsn dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/07/2008, 14h06
  2. Requête SQL sur une base Access, where sur un champ date
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/05/2008, 17h47
  3. Récupérer les valeurs d'une requête SQL dans un champs html SELECT
    Par tamiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/11/2007, 14h27
  4. Réponses: 4
    Dernier message: 10/04/2007, 12h10
  5. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo