Plug-in paroles de chansons

  • Statut : non résolu
15 sujets de 31 à 45 (sur un total de 50)
  • Auteur
    Messages
  • #576238
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions

    Ah ouais mais j’y pense, il faut que je supprime les deux tables à la main, sinon il les recrée pas …

    Edit :

    Bon ça marche 😎

    Je l’utilise un peu pour voir le fonctionnement, et après je tente de coder 😎

    #576239
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions

    Quand on entre un nouveau chant, ça plante. Je pense que c’est parce qu’il manque un champ ‘interprete’ dans le formulaire d’ajoût de chants.

    #576240
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions

    Alors :

    1. Ajouter des fonctions dans la classe (les noms sont en haut dans mes appels)

    Ok, ça, ça va 😉

    2. faire une requête de sélection selon le critère choisi par l’utilisateur :
    $wpdb->get_results(« SELECT le_plus_de_trucs_possibles FROM sm_table WHERE critère LIKE ‘%$variable_postee%' »);

    ça doit donner ça, à peu près ?

    function searchlyricsfromtitle($title)
      {
        global $wpdb;
        $title = trim(htmlentities($_POST[‘title’]));
        $wpdb->get_results(« SELECT * FROM sm_songs WHERE title =’$title’
                     « );
      }

    3. Faire un test pour savoir si on a des résultats

    Je sais pas faire, mais ça s’est facile à trouver …

    4. Afficher les résultats sous forme de liste avec des liens

    C’est ça qui m’inquiète davantage. Comment je fais ? Car le résultat peut s’afficher à quantité d’endroits différents non ? Dans la page admin, dans la sidebar, etc ?

    #576241
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions

    Bon, j’en suis là. Alors j’aimerai ton avis avant d’aller plus loin (je n’ai pas mis la structure des

      etc pour l’instant)

      function searchlyricsfromtitle($title)
        {
          global $wpdb;
          $title = trim(htmlentities($_POST[‘title’]));
          $wpdb->get_results(« SELECT * FROM sm_songs WHERE title =’$title’ ORDER BY title
                       « );
        
      	while ($ligne = mysql_fetch_object ($wpdb))
      	{
      	echo « $ligne->title « ;
      	echo « $ligne->original_title « ;
      	echo « $ligne->authors « ;
      	echo « $ligne->interprets « ;
      	echo « $ligne->lyrics « ;
      	echo « $ligne->copyright « ;
      	echo « $ligne->ccli « ;
      	echo « $ligne->date « ;
      	echo « <br>« ;
      	}
      
      }

    #576242
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    Désolé, j’ai eu des problèmes de connexion 😕 😕 😕

    En effet, mon plugin ne crée les tables QUE si elles n’existent pas déjà (pour ne pas écraser sans faire exprès), donc il faut à chaque modification majeure dans la structure des tables supprimer celles-ci manuellement (PhpMyAdmin) puis actualiser la page 😉

    Cocnernant ton code, le problème c’est qu’on veut chercher et non trouver, c’est-à dire qu’il ne faut pas prendre la ligne lorsque le titre est ce qu’on cherche mais ressemble à ce qu’on cherche 😉

    Pour ceci, il suffit d’utiliser l’opérateur LIKE :

    $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ « );

    Ensuite, pour vérifier qu’on a bien des résultats, il suffit de faire :

    $sql_res = $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ « );
    if ($sql_res)
    {
    // ok
    }
    else
    {
    // pas d’enregistrements
    }

    Sinon, pour l’ajout de nouvelle chanson, j’ai un problème :

    J’affiche des listes déroulantes pour sélectionner l’auteur (et l’interprète, c’est pareil), et l’utilisateur peut ajouter des auteurs (avec comme limite le nombre d’auteurs / interprètes existant car il ne peut sélectionner 2 fois le même auteur 😉 )

    Je cherche donc un moyen de capturer les id des membres sélectionnés (un selectedIndex par en JS) puis de formater cela de la façon suivante : « 1, 2, 5, 15 », valeur que je mettrai ensuite dans un champ caché pour la récupérer et la mettre directement dans ma table SQL 🙂

    Des idées ?

    #576243
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    Pas si vite, je viens d’arriver moi 😋

    #576244
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions
    MS-DOS_1991 wrote:
    Désolé, j’ai eu des problèmes de connexion 😕 😕 😕

    En effet, mon plugin ne crée les tables QUE si elles n’existent pas déjà (pour ne pas écraser sans faire exprès), donc il faut à chaque modification majeure dans la structure des tables supprimer celles-ci manuellement (PhpMyAdmin) puis actualiser la page 😉

    Cocnernant ton code, le problème c’est qu’on veut chercher et non trouver, c’est-à dire qu’il ne faut pas prendre la ligne lorsque le titre est ce qu’on cherche mais ressemble à ce qu’on cherche 😉

    Pour ceci, il suffit d’utiliser l’opérateur LIKE :

    $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ « );

    Ensuite, pour vérifier qu’on a bien des résultats, il suffit de faire :

    $sql_res = $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ « );
    if ($sql_res)
    {
    // ok
    }
    else
    {
    // pas d’enregistrements
    }

    Sinon, pour l’ajout de nouvelle chanson, j’ai un problème :

    J’affiche des listes déroulantes pour sélectionner l’auteur (et l’interprète, c’est pareil), et l’utilisateur peut ajouter des auteurs (avec comme limite le nombre d’auteurs / interprètes existant car il ne peut sélectionner 2 fois le même auteur 😉 )

    Je cherche donc un moyen de capturer les id des membres sélectionnés (un selectedIndex par en JS) puis de formater cela de la façon suivante : « 1, 2, 5, 15 », valeur que je mettrai ensuite dans un champ caché pour la récupérer et la mettre directement dans ma table SQL 🙂

    Des idées ?

    Super, j’apprends plein de trucs 😋

    Sinon, tu t’imagines bien que je ne peux pas t’aider pour ton problème 😉

    #576245
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions

    Alors voilà :

    function searchlyricsfromtitle($title)
      {
        global $wpdb;
        $title = trim(htmlentities($_POST[‘title’]));
        $sql_res = $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ ORDER BY title « );
      if ($sql_res)
        {
    	while ($ligne = mysql_fetch_object ($wpdb))
    	{
    	echo « <a href="lienverslesite"> » //J’ai un problème, comment je connais le lien ? Pour l’instant ça ne crée pas de catégorie ni rien ???
    	echo « $ligne->title « ;
    	echo « </a>
    	echo « $ligne->original_title « ;
    	echo « $ligne->authors « ;
    	echo « $ligne->interprets « ;
    	echo « $ligne->lyrics « ;
    	echo « $ligne->copyright « ;
    	echo « $ligne->ccli « ;
    	echo « $ligne->date « ;
    	echo « <br />« ;
    	}
        }
        else
        {
        echo « Aucune chanson ne correspond à votre recherche. »;
        }
    }

    #576248
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    Lol je vais faire le tour de mes forums favoris 😋

    Alors… ^^

    Pas besoin de faire un mysql_fetch_object, WordPress t’as déjà fait tout le sale boulot 😉
    Fais juste un foreach ($sql_results AS $song)

    function searchLyricsFromTitle ($title)
    {
      global $wpdb;
      $title = trim(htmlentities($_POST[‘title’]));
      $sql_res = $wpdb->get_results(« SELECT * FROM sm_songs WHERE title LIKE ‘%$title%’ ORDER BY title ASC »);
      if ($sql_res)
      {
    ?>
      <ul>
    get_results(« SELECT   id, surname, first_name
                                               FROM     sm_authors
                                               WHERE    id IN ($song->authors)
                                               ORDER BY surname ASC
                                              « );
            $authors =  »;
            foreach ($sql_authors AS $author)
              $authors .= ‘<a>id.' »>’.$author->first_name.’ ‘.$author->name.’</a>‘.’, ‘;
    ?>
      <li>
        <a href="_URL_&show_lyrics=id; ?> »><strong>title; ?></strong></a> (<em>original_title; ?></em>)<br />
        Ecrite par $authors et interprétée par <br />
        <textarea>lyrics; ?></textarea>
        <p style="font-size: x-small">
          ©copyright;<br />
          CCLI : ccli; ?><br />
          Soumises le date; ?>
        </p>
        }
    ?>
      </ul>
    <?php
      }
      else
        echo '<p>Aucune chanson ne correspond à votre recherche.</p>‘;
    }

    Bon c’est pas parfait loin de là, mais je l’améliorerai ^^

    #576249
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    L’avantage de la liste c’est que ça passe partout : un peu de style et hop tu la met où tu veux 😉

    Par contre, pour l’URL, je ne vois pas trop comment faire, à moins de placer un autre fichier php à la racine du site (en dernier recours 😕 )

    #576250
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions
    MS-DOS_1991 wrote:
    L’avantage de la liste c’est que ça passe partout : un peu de style et hop tu la met où tu veux 😉

    Par contre, pour l’URL, je ne vois pas trop comment faire, à moins de placer un autre fichier php à la racine du site (en dernier recours 😕 )

    Et on ne peut pas créer une rubrique ‘Songs’ dans WordPress ? A chaque chanson que l’on insère dans la base de données correspondrait un article. Et ensuite, on rajoute un truc dans index, un test qui dit que si on est dans la cat ‘Songs’, on affiche les champs des tables songmanager ?

    L’article ne servirait pas à grand chose, si ce n’est à faire le lien entre songmanager et WordPress.

    #576251
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions
    MS-DOS_1991 wrote:
    Lol je vais faire le tour de mes forums favoris 😋
    Bon c’est pas parfait loin de là, mais je l’améliorerai ^^

    Je peux faire toutes les autres requêtes sur cette base ?

    #576252
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions
    steph2dijon wrote:
    Je peux faire toutes les autres requêtes sur cette base ?

    Aucun problème, postes-les ici quand tu auras fini et je « corrigerai » 😎 😎 :D

    #576246
    steph2dijon
    Membre
    Chevalier WordPress
    132 contributions
    MS-DOS_1991 wrote:
    steph2dijon wrote:
    Je peux faire toutes les autres requêtes sur cette base ?

    Aucun problème, postes-les ici quand tu auras fini et je « corrigerai » 😎 😎 :D

    Très bien. Certainement un peu plus tard dans la soirée, j’ai quelques obligations d’ici-là. :(

    #576247
    Qwindoo
    Modérateur
    Maître WordPress
    2866 contributions

    Je pars pour 21h00 et reviendrai vers 2h00 donc ce sera plutôt pour demain 😉

15 sujets de 31 à 45 (sur un total de 50)
  • Vous devez être connecté pour répondre à ce sujet.