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 :

Recherche dans une base difficile


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut Recherche dans une base difficile
    Bonjour,
    je vous décrit deja ma table.

    ID | HOST
    1 d83-179-489-68.cust.tele2.fr
    2 d99-155-996-66.cust.wanadoo.fr
    3 d99-155-888-77.cust.wanadoo.fr
    1 e89-199-89-65.cust.tele2.fr
    1 e89-198-123-65.cust.tele2.fr
    3 e89-198-123-65.cust.clubinternet.fr
    2 ..................


    chaque id fait référence a une page de mon site.
    Ce que j'aimerai faire mais je ne sasi pas du tout comment faire, c'est par exemple : selectionner pour chaque id les lignes ou le nombre d'host tele2.fr est suppèrieur a 3
    ou encore selectionner pour chaque id les lignes ou le nombre d'host wanadoo.fr est suppèrieur a 3.

    Je ne sasi pas du tout comment faire, je ne pense pas qu'il soit possible de faire des explodes dans la base de donnée.

    Est ce que quelqu'un aurai une idée?

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, tu peux préciser quel SGBD tu utilises ?

    Sinon, tu peux essayer cette requête (testée avec MySQL)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id, count(*) as c
    FROM ta_table
    WHERE host LIKE '%tele2.fr'
    GROUP BY id
    having c > 3;
    Bon développement

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Tout d'abord merci de ta réponse.

    J'utilise MySQL.

    J'avai déja pensé a ta requete mais le problème, c'est qu'en fait je ne connait pas le fournisseur a l'origine, donc je ne sais pas que c'est télé2.
    Je veux en fait sélectionner les pages ou il y a plus de 10 personnes par exemple qui l'ont visité et ayant le meme fournisseur d'acces.
    Donc ca peut etre télé2 ou bien wanadoo ou un autre.

  4. #4
    Membre éclairé Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Par défaut
    Citation Envoyé par morgan47
    Je veux en fait sélectionner les pages ou il y a plus de 10 personnes par exemple qui l'ont visité et ayant le meme fournisseur d'acces.
    Tu la ou ton "qui l'ont visité" ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    une solution longue :

    à partir de l'enregistrement
    e89-198-123-65.cust.clubinternet.fr

    tu découpes avec le délimiteur point
    tu gardes les deux derniers morceaux
    tu les concatenent avec un point
    (ici tu obtient clubinternet.fr)

    et ainsi tu obtiens le fournisseur d'accès


    en php ça se fait (split pour découper par ex) mais à mon avis ça risque d'être horrible de selectionner chaque enregistrement et sur chaque de faire l'opération du dessus


    en mysql aussi il existe des fonctions de manipulations de caractères (substring, instr, concat, ...) ça sera peut être plus compliqué qu'en php à construire
    (je ne sais pas pas trop utiliser ce genre de fonction, mais si c'est possible dans une requete, avec un count et un group by tu obtiendrais une table avec ce que tu veux )

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    Tu la ou ton "qui l'ont visité" ?
    je n'ai pas compris ta question.

    Pour Léortien

    j'avais pensé a la solution de le faire en php mais ca aurai été trés long je pense aussi.

    Pour sql je n'y connai pas grand chose mise a par les requete simple select * from xxxx where xx=xx

    Mais je vais regardé ce que tu ma dit de plus pret.

    Merci a vous

Discussions similaires

  1. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  2. [SGBD] problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/10/2005, 23h06
  3. Recherche dans une base de donnée
    Par genova dans le forum SQLite
    Réponses: 8
    Dernier message: 28/09/2005, 23h16
  4. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47
  5. recherche dans une base de donnée+boucle
    Par eric205 dans le forum Bases de données
    Réponses: 8
    Dernier message: 15/03/2005, 21h14

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