Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Resolu] Pb avec une requette SQL sur les tables du module news
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.1
#~ Nom de l'hébergeur : local
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.8.2
#~ Installed Modules:
#~ * CMSMailer: 2.0
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.5
#~ * ModuleManager: 1.4
#~ * News: 2.10.6
#~ * nuSOAP: 1.0.2
#~ * Printing: 1.1.0
#~ * Search: 1.6.5
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.7.2
#~ * Album: 0.9.3
#~ * DownCnt: 1.0.0
#~ * FormBuilder: 0.6.4
#~ * Captcha: 0.4.2
#~ * CGExtensions: 1.19.6
#~ * FrontEndUsers: 1.12
#~ * CustomContent: 1.7.3
#~ * Statistics: 1.0.1
#~ * CGUserDirectory: 1.2.4
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * output_compression: false
#~ * max_upload_size: 10000000
#~ * default_upload_permission: 664
#~ * url_rewriting: mod_rewrite
#~ * page_extension: .html
#~ * query_var: page
#~ * use_hierarchy: true
#~ * image_manipulation_prog: GD
#~ * auto_alias_content: true
#~ * locale:
#~ * default_encoding: utf-8
#~ * admin_encoding: utf-8
#~ * set_names: true
#~ Php Information:
#~ * phpversion: 5.3.0
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * E_DEPRECATED: 0
#~ * memory_limit: 128M
#~ * max_execution_time: 60
#~ * output_buffering: 1
#~ * safe_mode: Off (Faux)
#~ * file_uploads: On (Vrai)
#~ * post_max_size: 10M
#~ * upload_max_filesize: 10M
#~ * session_save_path: c:/wamp/tmp (0777)
#~ * session_use_cookies: On (Vrai)
#~ * xml_function: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.1.36
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~


Bonjour à tous,

J'ai utilisé le tuto de Jean Le Chauve sur l'utilisation de select pour récupérer des infos dans la base de données. J'ai donc créé 2 balises utilisateur pour rechercher des infos sur les tables du module FEU et tout fonctionne bien.

Je me suis enhardi pour travailler avec les tables du module news. En fait j'utilise le module News pour poster des tâches à accomplir. Pour cela j'ai donc ajouté 2 champs texte aux news, l'un pour décrire l'action et l'autre pour la prévision de réalisation (ce n'est forcement une date). Ces tâches font partie d'une catégorie de News à laquelle j'ai ajouté des sous-catégories. Voila pour le contexte.

Donc ma balise doit me produire un planning de travail sous forme de tableau. Cela fonctionne sauf que je n'arrive pas à relire les 2champs que j'ai rajoutés et compte tenu de ce que j'ai écrit je ne vois pas pourquoi cela ne fonctionne pas. Voici le code :

Code :
"echo '<table id="planning" align="center" cellspacing="2">';
echo '<thead><tr class="toprow">';
echo '<table id="planning" align="center" cellspacing="2">';
echo '<thead><tr class="toprow">';
echo '<th>Tâche</th>';
echo "<th>Description</th>";
echo "<th>Postée le</th>";
echo "<th>Postée par</th>";
echo "<th>Action</th>";
echo "<th>Prévue le</th>";
echo "</tr></thead>";
global $gCms; //pour pouvoir travailler avec les objets, classes et méthodes du cms
$db = &$gCms->GetDb(); //connection à la bd cms, recherche de la catégorie Travail et de sa filiation
$query = "SELECT news_category_id, news_category_name FROM as1_module_news_categories WHERE parent_id = 7 ORDER BY hierarchy ";
$dbretour = &$db->Execute($query);//exécution de la requête
    while ($dbretour && !$dbretour->EOF)
    {
        $CodeCategory = $dbretour->fields['news_category_id'];
        $resultChamps1 =  $dbretour->fields['news_category_name'];//recherche des news de la category
    $query = "SELECT news_id, news_title, news_date, author_id FROM as1_module_news WHERE news_category_id = '$CodeCategory' ORDER BY news_date ";
    $dbresult = &$db->Execute($query);//exécution de la requête
        while ($dbresult && !$dbresult->EOF)
        {
                    $resultChamps2 = $dbresult->fields['news_title'];
                    $resultChamps3 = $dbresult->fields['news_date'];
                    $CodeAuteur = $dbresult->fields['author_id'];
                    $CodeNews = $dbresult->fields['news_id'];// recherche du nom de l'auteur de la news
                    $query = "SELECT username FROM as1_users WHERE user_id = '$CodeAuteur' ";
                    $dbtoto = &$db->Execute($query);//exécution de la requête
                         $resultChamps4 = $dbtoto->fields['username']; // recherche des 2 autres champs
                         $query = "SELECT fielddef_id, value FROM as1_module_news_fieldvals WHERE
news_id = '$CodeNews' SORTED BY fielddef_id ";
                       $dbresultat = &$db->Execute($query); //exécution de la requête
                       $codechamp = $dbresultat->fields['fielddef_id'];
                    while ($dbresultat && !$dbresultat->EOF)
                    {
                                                $resultChamps5;
                                                $resultChamps6;
                        if ($dbresultat->fields['fielddef_id'] == 1)
                        {
                            $resultChamps5 = $dbresultat->fields['value'];
                        }    
                        elseif ($dbresultat->fields['fielddef_id'] == 3)
                        {
                            $resultChamps6 = $dbresultat->fields['value'];
                        }
                    $dbresultat->MoveNext();// enregistrement suivant    
                    }// tous les champs sont remplis on affiche la ligne
    echo <<<REQUETE
    <tr>
<td class="leftcol">{$resultChamps1}</td>
    <td class="datadesc">{$resultChamps2}</td>
    <td class="data">{$resultChamps3}</td>
    <td class="data">{$resultChamps4}</td>
    <td class="data">{$resultChamps5}</td>
    <td class="data">{$resultChamps6}</td>
    </tr>
REQUETE;
        $dbresult->MoveNext();//enregistrement suivant
        }//Toutes les news de la categorie ont été lues
    $dbretour->MoveNext();// catégorie suivante
    }
if ($dbretour) $dbretour->Close();//Toutes les news de toutes les catégories sont lues, on ferme la connection
echo "</table>";
"
Je soupçonne une chose que je ne sais pas gérer, c'est le fait qu'il est possible que pour une News, il n'y ai pas d'entrées dans la table des champs supplémentaires. J'ai cherché dans la doc SQL mysql ect.. et je ne m'en sors pas, mes compétences en SQL sont trop limitées.

Si vous avez des idées ??? je suis preneur, merci d'avance

Alain
Sujet fermé


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)