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 :

Méthode Requête mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2014
    Messages : 14
    Par défaut Méthode Requête mysql
    Bonjour à tous,

    Pour mon site web j'ai mis dans une table mysql des liens. Champ de la table : id, fichier, chemin, désignation, page.
    ex :
    1, toto.pdf, rep1/sousrep1, toto, page1.html
    2, titi.pdf, rep1/sousrep2, titi, page2.html
    3, toto.pdf, rep1/sousrep1, toto, page2.html
    4, tata.pdf, rep1/sousrep3, tata, page3.html
    Dans chaque page je vais chercher mes liens sans problème.

    La base venant de plus en plus conséquente et multi-utilisateur, je cherche à faire une page de contrôle.
    - Ma page me sort les liens qui sont dans ma table mais dont les fichiers ne sont pas sur le serveur (lien brisé)
    - J'affiche les liens qui sont en double ou plus comme la lig 1 et 3 dans mon ex.
    - Je ne sais pas trop comment m'y prendre pour afficher les fichiers orphelins (fichier sur le serveur qui n'ont pas de lien dans la table)

    J'ai une idée mais mon nombre de requête va être nombreux. Avez-vous une méthode ? un exemple de code...

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Par défaut
    Bonsoir

    1 - Comment faites-vous pour savoir qu'un lien est "mort" ?...

    2 -
    - J'affiche les liens qui sont en double ou plus comme la lig 1 et 3 dans mon ex.
    Non !... L'enregistement 1 indique page1.html et l'enregistrement 3 indique page2.html ???...

    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2014
    Messages : 14
    Par défaut
    Pour les liens morts, je fais une requête qui me sort le chemin complet de chaque enregistrement et je vérifie que le fichier existe sur le serveur.

    Pour les doublons une requête qui compte le nombre de fois que le champ fichier est identique et en affichant que ceux supérieur à 1

    Pour l'instant pour mon problème je suis partie à calculer le nombre de fichier sur le serveur et faire la différence avec ceux dans la table. Mais comme la table comporte des double "normal" je suis bien obligé de les soustraire pour avoir un nombre de fichier sur le serveur qui ne sont pas liés.

    Pardon : doublon = chemin+fichier identique en occultant les liens.
    En les affichants dans ma page de contrôle, ça me permet de voir si la liaison dans des pages différentes est normal ou pas.

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Ce que je vais dire ne répond pas tout à fait votre question mais propose une nouvelle façon de voir les choses.

    Je suppose qu'il ne s'agit que de fichier à télécharger (en tout cas, cette façon de voir les choses correspond à votre exemple).
    Je suppose donc qu'il est très possible de passer par un fichier uniquement qui gère le téléchargement de ces fichiers (qui permettrait d'ailleurs d'ajouter un compteur de téléchargement ). Donnons-lui le doux nom de "download.php"

    Dans ce fichier, faites une vérification pour savoir si le fichier existe toujours bien sur le serveur, si ce n'est pas le cas, vous aurez soit pris le soin d'ajouter une variable dans l'URL pour savoir d'où provient la personne qui a cliqué, soit vous pouvez utiliser la variable globale $_SERVER['HTTP_REFERER'] qui vous donnera l'URL complète de la page d'où provient la personne.

    Dès lors, vous avez le fichier qui fait défaut ainsi que la page où le lien est défectueux.

    => plus besoin de CRON, votre base de données de deadlinks se construit automatiquement par les personnes qui souhaitent télécharger ce fichier.

    On pourrait également imaginer afficher un message avec un formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="post" action="download.php">
                <p>Nous allons bientôt remettre ce fichier en ligne.</p>
                <label for="email">Vous souhaitez en être averti ? Entrez votre adresse email ci-dessous</label>
                <input type="email" name="email" id="email" value="" />
                <button type="submit">Valider</button>
            </form>

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2014
    Messages : 14
    Par défaut
    Bonjour,

    Merci darkstar123456 pour cette autre vision sur la partie que j'ai déjà codé. Je fais ma page de contrôle pour que l'utilisateur n'ait pas à avoir ce genre de désagrément. Quand vous êtes déjà dans de la recherche d'information tomber sur un lien mort est fortement désagréable.
    La partie que je recherche le plus s'est de n'avoir pas le lien affiché alors qu'un fichier existe et que l'un de mes éditeurs ne m'ai rien rentrée dans la base. Les fichiers qui sont proposé demande pas mal de temps à faire. Il serait dommage qu'ils reste coincés sur un serveur sans que personne ne puisse les voir pour une petite erreur humaine.

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    OK, alors pourquoi ne pas contrôler à la soumission du formulaire que l'utilisateur n'as pas oublié de donner le fichier ?

    De plus, il me parait peu optimisé d'avoir des doublons dans les fichiers : à la fois pour la base de données, et peut-être même que c'est le cas sur le disque !
    Je vous conseillerais d'avoir une table qui contient les chemins des fichiers et une autre qui lie l'ID d'un fichier à une page. Là, on pourrait avoir ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    files_to_page
    ====================
    pagename         | file_id
    ----------------------------
    mapage1.html    | 1
    mapage2.html    | 1
    mapage3.html    | 1
    mapage1.html    | 2
    mapage1.html    | 3
    Grâce à l'exemple ci-dessus, au lieu de vérifier 5 fichiers, vous n'en vérifiez que 3 !

Discussions similaires

  1. Requète MySQL >> Postgresql
    Par genova dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/08/2005, 09h05
  2. Requête MYSQL LIKE particulière
    Par TheDarkLewis dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/12/2004, 15h50
  3. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  4. surcharge de requête MySQL
    Par simoryl dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/06/2004, 10h43
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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