[Contribution - MySql] - Plusieurs petites astuces.



  • Salut à tous, depuis mon aventure autour des formulaires de recherches (membre, titre, ect…) j'avais envie de faire une petite contribution.

    Vous devez savoir à peu près programmer avec PHP/SQL.
    Lisez ce tuto en premier il vous sera utile : http://www.siteduzero.com/tuto-3-5578-1-realiser-un-moteur-de-recherche-pour-son-site.html

    -- Prend tout les mots dans la bdd commençant par an (ange, ANGE, ange-gardien, acide,ect..)
    LIKE 'an%'
    
    -- //Prend tout les mots finissant par er (manger, chanter, [ un mot n'importe comment : gjgdfjgger ])
    LIKE '%er'
    
    -- Il possède 5 caractère (_ _ _ _ _)
    LIKE '_____'
    
    -- Il possède 1 caractère après pio (pio1, piop, piod,.....)
    LIKE 'pio_'
    
    ```Vous avez compris le principe je suppose. Après on peut lui donner le champ que l'on veut.
    
    

    -- On prend tout les pseudos commençant par a
    WHERE pseudo LIKE 'a%'

    -- On prend toute les ville commençant par areo
    WHERE ville LIKE 'areo%'

    
    Vous pouvez aussi utiliser les expressions régulières
    

    REGEXP 'Ici votre expression'

    
    Des petits exemples :
    

    -- Ceci prendra tout les pseudos avec des chiffres.
    WHERE pseudo REGEXP '[0-9]'

    -- Ceci prendra tout les pseudos commençant avec un chiffre et des lettres.
    WHERE pseudo REGEXP '[0-9][a-zA-Z]'

    
    Merci à tous.
    
    **Deuxième chapitre (Vous voulez avoir le nombre de news, post sur votre forum ? Tout est possible en 1 requête)**
    
    **Ma petit histoire :**
    Comme certain ses que je développe une prémoder du script SoftBB, j'essai d'économiser 2 requêtes pour compter le nombre de messages, nombre de posts, et avoir le dernier utilisateur enregistrer.
    
    Avec quelle fonction ? **SELECT**, **AS** (Oui que sa, mais après si vous voulez d'autre truc, faut avoir de l'imagination)
    
    

    -- Une requête normal que vous connaissez tous !
    SELECT nom_champ, nom1_champ, nom2_champ FROM table

    -- Compte toute les enregistrement de la table
    SELECT COUNT(*) AS nom FROM table

    -- On commence !
    SELECT
    -- Compte combien il y a de membre
    (SELECT COUNT() FROM membres) AS nbmembre,
    -- Compte combien il y a de post
    (SELECT COUNT(
    ) FROM posts) AS nbpost

    Bref, vous avez compris le principe…
    
    Après vous voulez voir le dernier membres inscrit (l'id pour cliquer sur un lien, pseudo pour afficher le pseudo)
    
    Nous allons utilisé **AS** pour renommé une table comme dans la fonction **LEFT JOIN** :
    

    SELECT a.id, b.id AS id1 FROM table1 AS a LEFT JOIN table2 AS b

    Alors, on va reprendre ce bout de code pour ajouter deux trois truc en plus pour visualisé le dernier membre inscrit :
    

    SELECT
    -- Compte combien il y a de membre
    (SELECT COUNT() FROM membres) AS nbmembre,
    -- Compte combien il y a de post
    (SELECT COUNT(
    ) FROM posts) AS nbpost

    -- Nous allons ajouter le champ id,pseudo de la table membres.
    SELECT mb.id, mb.pseudo
    -- Compte combien il y a de membre
    (SELECT COUNT() FROM membres) AS nbmembre,
    -- Compte combien il y a de post
    (SELECT COUNT(
    ) FROM posts) AS nbpost
    FROM membres AS mb

    -- Voila, bon après il manque juste à faire sa pour le dernier membre :
    SELECT mb.id, mb.pseudo
    -- Compte combien il y a de membre
    (SELECT COUNT() FROM membres) AS nbmembre,
    -- Compte combien il y a de post
    (SELECT COUNT(
    ) FROM posts) AS nbpost
    -- Nous avons rennomé la table afin d'éviter une table trop grande !
    FROM membres AS mb ORDER BY mb.id DESC LIMIT 0,1

    -- Après vous voulez rajouter d'autre champ ? ses possible
    SELECT mb.id, mb.pseudo, nm.champ
    -- Compte combien il y a de membre
    (SELECT COUNT() FROM membres) AS nbmembre,
    -- Compte combien il y a de post
    (SELECT COUNT(
    ) FROM posts) AS nbpost
    -- Nous avons renomé la table afin d'éviter une table trop grande !
    FROM membres AS mb, nom_table AS nm

    Fin du deuxième chapitre !
    
    Ce tutorial à été corriger par GoldyFruit ! (Je dit toujours l'auteur qui m'a aider ou corriger certaint truc !)



  • Chapeau
    ...

    je vais le mettre sur ma clée usb, ca va m'etre utile (je n'avais jamais entendu parlé des requêtes imbriquées)


  • Administrateur

    en post it :)

    Excellent travail !



  • Merci 8)



  • Zut, encore un truc que je vais devoir apprendre, pfffff ! Vé finir par me prendre la tête avec tout ça, mouaaaa ! :lol:

    Sorry si je déconne....c'est mon seul moyen de défense pour cacher ma nullité en informatique ! :oops:



  • Bravo pour le tutoriel :)

    Si vous voulez des tutoriels "débutant" siteduzéro.com

    et si vous etes expert les définitions sont : http://fr.php.net c'est le mieu pour les variables etc... il a tout ;) c'est le dictionnaire du php :p



  • vui mais ça c'est pour le php, pas pour MySQL :p


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.