zana74 | anapajari a écrit :
Houston? we have a problem here ...
Es tu sur de bien savoir/comprendre de quoi tu parles?
A vu de nez je dirais que l'ID dont tu parles est celui d'une table de ta base de donnée ( table ayant un champs id en auto_incremenet) et que tu souhaites le récupérer pour l'inserer dans un table ayant une clé étrangère vers l'id précédent... Ce qui n'a STRICTEMENT RIEN A VOIR avec des objets et de l'héritage.
Maintenant peut-être que je lis mal entre les lignes
Mais sinon montre donc où-tu en es dans ton code, il nous sera plus facile de comprendre ce que tu veux faire!
|
oui dans la table mère qui est publication j'ai ID auto increment.
et dans la table livre j'ai ID_publication.
voila mon code de classe livre Code :
- <?
- class Livre extends Publication{
- var $editeur;
- var $isbn;
- var $type_livre;
- var $num_publi;
- function Livre(){
- $this->editeur;
- $this->isbn;
- $this->type_livre;
- $this->Publication();
- }
- function creer_livre($num_publi,$editeur,$isbn,$type_livre)
- {
-
- $query = "insert into livre (num_publication,isbn,type_livre,editeur)
- VALUES ('$num_publi','$isbn','$type_livre','$editeur');";
- $result=mysql_query($query)or die(mysql_error());
- if ($result)
- {
- $this->num_publi = mysql_insert_id();
- }
- else
- {
- $this->num_publi= -1;
- }
- }
- }
|
le code de la classe mère publication:
Code :
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- </head>
- <?php
- include("connexion.php" );
- class Publication{
- var $num_publi;
- var $titre_publication;
- var $date_publi;
- var $langage;
- var $resume;
-
- // le constructeur permet d'initialiser
- // les variables membres
- /*function Publication($num_publi){
-
- $this->num_publi=$num_publi;}
- */
- function Publication(){
- $this->num_publi=-1;
- $this->titre_publication;
- $this->date_publi;
- $this->langage;
- $this->resume;
- }
- /*******************************************************************/
- /* cette fonction permet de fixer toute les informations liées à la publication */
- function setDetail_pub(){
- $requete="select * from publication where num_publi=$this->num_publi";
- if(mysql_select_db("bibliographie" )){
- if($result = mysql_query($requete)) {
- if ($ligne = mysql_fetch_array($result))
- {
- $this->num_publi=$ligne[0];
- $this->titre_publication=$ligne[1];
- $this->date_publi=$ligne[2];
- $this->langage=$ligne[3];
- $this->resume=$ligne[4];
- }
- }
- else echo "Erreur. echec de recherche en base concernant les publications.";
- }else die("Echec de connexion à la base." );
- }
- /*******************************************************************/
- /* cette fonction permet d'afficher un tableau contenant toutes les informations du chercheur */
- function afficherDetail_pub()
- {
- $this->setDetail_pub();
- echo" <table>
- <tr>
- <td><font color='#000099' size='4'>Titre :</font></td>
- <td><font color='#000099' size='3'>$this->titre_publication</td>
- </tr>
- <tr>
- <td> <font color='#000099' size='4'>Date :</td>
- <td><font color='#000099' size='3'>$this->date_publi</td>
- </tr>
- <tr>
- <td> <font color='#000099' size='4'>Language:</td>
- <td><font color='#000099' size='3'>$this->langage</td>
- </tr>
- <tr>
- <td> <font color='#000099' size='4'>Résumé :
- </tr>
- </table>
- <table>
- <tr>
-
- <TEXTAREA name='resume' rows='10' cols='80' readonly style='position:relative; left:75'>$this->resume</TEXTAREA> </td>
- </tr>
- </table>";
- }
- /*******************************************************************/
- /* cette fonction permet de creer un nouvelle publication*/
- function creer_publication($titre_publication,$date_publi,$langage,$resume)
- {
- $query = "insert into publication (num_publication,titre_publication,date_publication,langage,resume)
- VALUES ('','$titre_publication','$date_publi','$langage','$resume');";
- $result=mysql_query($query)or die(mysql_error());
- if ($result)
- {
- $this->num_publi = mysql_insert_id();
- }
- else
- {
- $this->num_publi= -1;
- }
- }
- /*******************************************************************/
- /* cette fonction permet de modifier une publication*/
- function mod_publication($num_publi,$titre_publication,$date_publi,$langage,$resume)
- {
- $query="update publication set titre_publication='$titre_publication', date_publication='$date_publi',langage='$langage',resume='$resume' where num_publication='$num_publi';";
- echo"$query";
-
- $result=mysql_query($query) or die (mysql_error());
- echo" le resultat est bien $result";
- if($result)
- {
- $this->num_publi = $this->num_publi;
- }
- else
- {
- $this->num_publi = -1;
- }
- }
- /*******************************************************************/
- /* cette fonction permet de supprimer un chercheur*/
- function supp_publication($num_publi)
- {
- $query= "delete from publication where num_publi = '$num_publi';";
- $result= (mysql_query($query))or die (mysql_error());
-
- if ($result)
- {
- $this->num_publi = $num_publi;
- }
- else
- {
- $this->num_publi = -1;
- }
- }
- }
- ?>
- <body>
- </body>
- </html>
|
en ce qui concerne les publications je saisie , je modifie , je supprime sans problème.
dans la classe publication j'ai les attributs communs d' article et livre par contre je ne sais pas comment faire pour saisir la suite d'une publication exemple si la publication est un livre il faut saisir isbn, l'editeur, et type de livre.
si la publication est un article je doit saisir le nom de revue ou il est publié, numero de page.
voila j'éspère que je suis claire. |