Forums Développement Multimédia

Aller au contenu

Quelques soucis concernant la récupération de données

CODE PHP MySQL

1 réponse à ce sujet

#1 caema

    Ceinture Orange

  • Members
  • PipPipPip
  • 34 messages

Posté 04 January 2013 - 14:58 PM

Bonjour à toutes et tous, et bonne année à vous!


Je me tourne vers vous aujourd'hui car malgré de nombreuses recherches, je ne trouve pas solution à mon problème.
Je suis en effet en train de réaliser un site d'administration pour un job personnel.

Voici la base de données que j'utilise:
Fichier joint  db.JPG   27.32 Ko   16 téléchargement(s)

Et voici ce que je souhaite réaliser:
Fichier joint  captureAdmin.JPG   97.23 Ko   18 téléchargement(s)

Comme vous pouvez le voir, j'ai réalisé un formulaire, qui contient une liste déroulante (pour l'item "rubrique liée").
J'ai ensuite réalisé un tableau qui reprend les articles contenus dans ma base de données.

Ma question est double:

1) Comment faire pour que la colonne rubrique liée, dans mon tableau, soit rempli non pas du chiffre de la rubrique, mais bien de l'intitulé de la rubrique, comme il apparait dans la liste déroulante?

2) Quand je clique sur modifier, mon formulaire est censé se remplir automatiquement avec les données de l'article que je souhaite modifier. Sauf que cela ne fonctionne pas, les champs se "remplissent" avec <br /><font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'><tr><th align='left' bgcolor='#f57900' colspan=,

et j'ai une erreur de type " Notice: Trying to get property of non-object in C:\wamp\www\MAILLON\ADMIN\index2.php on line 170 Call Stack #TimeMemoryFunctionLocation 10.0010737568{main}( )..\index2.php:0 "/>"

(le numéro de la ligne changeant en fonction du champs)

J'espère avoir été suffisamment claire dans mes explications.

Voici l'entièreté de mon code:


<?php
        require_once("connexion.php");
        include("fonctions.php");
 
        // LES VARIABLES:
                $laTable = "articles";
 
        // LES FONCTIONS:
         
                function ajouter(){
                        global $laTable;
                        $titre = addslashes($_POST["titreArticle"]);
                        $texte = addslashes($_POST["texteArticle"]);
                        $fichier = $_FILES["mediaArticle"]["name"];
                        $rubrique = addslashes($_POST["rubriqueLiee"]);
                        $sql = "INSERT INTO $laTable (titre,texte,date,media,rubrique)
                                        VALUES ('$titre','$texte',NOW(),'$fichier','$rubrique');"
;
                        mysql_query($sql);
                }
         
                function supprimer() {
                        global $laTable, $tiroir;
                        $id = $_GET["del"];
                 
                                montrer($id);
                         
                        $lefichier = $tiroir ['media'];
                 
                        if($lefichier !="" && file_exists("uploads/$lefichier")){
                                unlink("uploads/$lefichier");
                        }
                        $sql = "DELETE FROM $laTable
                                        WHERE id = $id;"
;
                        mysql_query($sql);
                }
         
                function montrer($id){
                        global $laTable,$tiroir;
                        $sql = "SELECT *
                                        FROM $laTable
                                        WHERE id = $id ;"
;
                 
                        $resultat = mysql_query($sql);
                        $tiroir = mysql_fetch_object($resultat);
                }
         
                function modifier(){
                        global $laTable;
                        $titre = addslashes($_POST["titreArticle"]);
                        $texte = addslashes($_POST["texteArticle"]);
                        $rubrique = addslashes($_POST["rubriqueLiee"]);
                        $fichier = $_FILES["mediaArticle"]["name"];
                        $id = $_POST["id"];
                        if ($_FILES["mediaArticle"]["name"]!="") {
                                        $fichier = $_FILES["mediaArticle"]["name"];
                                        $sql = "UPDATE $laTable
                                                        SET titre = '$titre',
                                                                texte =' $texte',
                                                                date = NOW(),
                                                                media = '$media',
                                                                rubriqueLiee = '$rubrique'
                                                        WHERE id = $id;"
;
                        }
                        else {
                                $sql = "UPDATE $laTable
                                                SET titre = '$titre',
                                                        texte ='$texte',
                                                        date =NOW(),
                                                        rubrique = '$rubrique'
                                                WHERE id = $id;"
;
                        }
                        mysql_query($sql);
                }
         
                // TESTS ET ROUTAGE ----------------------------------------------
         
// INSERT si il existe un POST id et qu'il est nul
                 if (isset($_POST["id"]) && $_POST["id"]==0) {
                         ajouter();
                         uploadArticle();
                 }
               
// DELETE si il existe un GET del
                 if (isset($_GET["del"])) {
                        supprimer();
                 }
               
// SHOW  si il existe un GET show
                 if (isset($_GET["show"])) {
                        $id = $_GET["show"];
                        montrer($id);
                 }             
// UPDATE si il existe un POST id et qu'il est différent de 0
                 if (isset($_POST["id"]) && $_POST["id"]>0) {
                         modifier();
                         uploadArticle();
                  }
// ---------------------------------------------------------------
// Je formule ma requête et je stocke la recherche dans une armoire $resultat
               
                                $sql = "SELECT *
                                 FROM articles,rubriques
                                                WHERE articles.rubrique = rubriques.id;"
;
                         
                                $resultat = mysql_query($sql);
                         
?>

<!DOCTYPE html>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                <title>ASBL Le Maillon - Site d'administration.</title>
                <link rel="stylesheet" href="styles.css"/>
         
                <script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
                <script type="text/javascript">  <!-- POUR LE WYSIWYG tinyMCE -->
                !--
                tinyMCE.init({
                mode : "textareas",
                theme: "advanced",
                language: "fr",
                theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,bullist,numlist",
                theme_advanced_buttons2: "undo,redo,|,link",
                theme_advanced_buttons3: "fontsizeselect,fontselect,formatselect",
                theme_advanced_toolbar_location: "top",
                theme_advanced_statusbar_location: "bottom",
                content_css: "../templates/TinyMCE.css",
                });
                //-->
                </script>
         
                <script>
                        function confirmation(){
                                message = "Etes vous sur de vouloir supprimer cet article et son contenu ?"
                                reponse = confirm(message);
                                if (reponse==true){
                                        return true;
                                }
                                else {
                                        return false;
                                }
                        }
                </script>
        </head>
        <body>
                <div id="main">
                        <header>
                                <?php include("header.php"); ?>
                        </header>
                 
                        <nav>
                                <?php include("menu.php"); ?>
                        </nav>
                 
                        <section>
                                <article>
                                        <h2>Gestion des <?php echo $laTable; ?>:</h2>
                                 
                                        <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id="form_articles" enctype="multipart/form-data">
                                                <fieldset>
                                                        <p><label for="titreArticle">Titre:</label><input type="text" name="titreArticle" id="titreArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->titre;} ?>"/></p>
                                                        <p><label for="texteArticle">Texte:</label>
                                                                <TEXTAREA name="texteArticle" id="texteArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->texte;} ?>"></TEXTAREA>
                                                        </p>
                                                        <p><label for="dateArticle">Date:</label><input type="date" name="dateArticle" id="dateArticle" value="<?php if(isset($_GET["show"])) {echo $tiroir->date;} ?>"/></p>
                                                        <p><label for="mediaArticle">Médias:</label><input type="file" name="mediaArticle" id="mediaArticle" /></p>
                                                        <p><label for="rubriqueLiee">Rubrique liée:</label>
                                                                <select name="rubriqueLiee" id="rubriqueLiee">
                                                                        <option value="accueil">Accueil</option>
                                                                        <option value="actu">Actualités</option>
                                                                        <option value="qui">Qui sommes-nous?</option>
                                                                        <option value="tarif">Tarifs</option>
                                                                        <option value="territoire">Territoire couvert</option>
                                                                        <option value="contact">Contact</option>
                                                                </select>
                                                        </p>
                                                        <input type="hidden" name="id" value="<?php if(isset($_GET["show"])) {echo $tiroir->id;} else {echo "0";} ?>" />
                                                        <input type="submit" name="submit" value="AJOUTER" class="bouton"/>
                                                </fieldset>
                                        </form>
                                 
                                        <table>
                                                <caption>Tableau récapitulatif du contenu des articles</caption>
                                                <thead> <!-- En-tête du tableau -->
                                                        <tr>
                                                                <th>Titre</th>
                                                                <th>Texte</th>
                                                                <th>Date de publication</th>
                                                                <th>Média</th>
                                                                <th>Rubrique liées</th>
                                                                <th>Action</th>
                                                        </tr>
                                                </thead>
                                                <tbody> <!-- Corps du tableau -->
                                                 
                                                        <?php // début de région à répéter
                                                        while ($tiroir = mysql_fetch_object($resultat)) { ?>
                                                                <tr>
                                                                        <td><?php echo $tiroir->titre; ?></td>
                                                                        <td><?php echo $tiroir->texte; ?></td>
                                                                        <td><?php echo $tiroir->date; ?></td>
                                                                        <td><?php echo $tiroir->media; ?></td>
                                                                        <td><?php echo $tiroir->rubrique; ?></td>
                                                                        <td><a href="<?php echo $_SERVER["PHP_SELF"];?>?show=<?php echo $tiroir->id; ?>">Modifier</a> -
                                                                                <a href="<?php echo $_SERVER["PHP_SELF"];?>?del=<?php echo $tiroir->id; ?>" onclick="return confirmation();">Supprimer</a>
                                                                        </td>
                                                                </tr>
                                                        <?php } // fin de région à répéter ?>
                                                         
                                                </tbody>
                                        </table>
                                </article>
                        </section>
                 
                        <footer>
                                <?php include("footer.php"); ?>
                        </footer>
                </div>
        </body>
</html>


Pensez vous pouvoir m'apporter votre aide pour ce double problème?

D'avance merci à vous!

#2 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 15 January 2013 - 17:59 PM

tu peux faire cette fonction :


function getTitreRubrique($rubrique)
{
  $sql = "SELECT titre FROM rubrique WHERE id='".$rubrique."'";
  $r = mysql_query($sql)or die("erreur de requete : ".mysql_error()." dans ".__FILE__);
  if(mysql_num_rows($r)>0)
  {
        $rub = mysql_fetch_object($r);
        return $rub->titre;
  }
  else
        return "Rubrique inexistante";
}
 

fsf

et remplacer
<td><?php echo $tiroir->rubrique; ?></td>
par
<td><?php echo getTitreRubrique($tiroir->rubrique); ?></td>

Je n'ai pas testé le code, 'a peut etre des fautes de frappes...



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP