Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2430 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comment recuperer un identifiant de la classe mère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment recuperer un identifiant de la classe mère

n°1425705
zana74
Posté le 15-08-2006 à 21:33:34  profilanswer
 


 
 
bonsoir à tous!
je travaille sous php4 .
je souhaiterai savoir comment récuperer l' ID de la classe mere qui est auto_increment, pour l'inserer dans la classe fille cas d'héritage?
 
merci d'avance!

mood
Publicité
Posté le 15-08-2006 à 21:33:34  profilanswer
 

n°1425833
zana74
Posté le 16-08-2006 à 09:48:08  profilanswer
 

bonjour à tous !
je crois que personne parmi vous n'utilise l'héritage en php,
 
toutes explication sur l'héritage en php 4 m'interesse car la doc sur internet m'a pas beaucoup aidé.
 
merci !

n°1425841
jbourdello​n
Posté le 16-08-2006 à 09:59:46  profilanswer
 

Bonjour,
 
Je crois que tu confonds, lorsque l'on parle d'héritage, c'est uniquement sur les classes et non sur les instances. Donc un Identifiant pour une INSTANCE de ta classe mère sera unique puisqu'il est auto incrémenté, et donc une INSTANCE de la clase fille pourra également récuperer un identifiant mais pas le même. Ou alors on ne parle plus d'héritage au sens "programmation"  
Je sais pas si j'ai été clair

n°1425845
anapajari
s/travail/glanding on hfr/gs;
Posté le 16-08-2006 à 10:07:24  profilanswer
 

zana74 a écrit :

je souhaiterai savoir comment récuperer l' ID de la classe mere qui est auto_increment, pour l'inserer dans la classe fille cas d'héritage?


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 [:spamafote]
 
Mais sinon montre donc où-tu en es dans ton code, il nous sera plus facile de comprendre ce que tu veux faire!

n°1425853
zana74
Posté le 16-08-2006 à 10:24:17  profilanswer
 

jbourdellon a écrit :

Bonjour,
 
Je crois que tu confonds, lorsque l'on parle d'héritage, c'est uniquement sur les classes et non sur les instances. Donc un Identifiant pour une INSTANCE de ta classe mère sera unique puisqu'il est auto incrémenté, et donc une INSTANCE de la clase fille pourra également récuperer un identifiant mais pas le même. Ou alors on ne parle plus d'héritage au sens "programmation"  
Je sais pas si j'ai été clair


 
merci de ta réponse!
 
je souhaiterai avoir plus d'info sur l'héritage car je crois en conception  je l'ai compris mais pas en en programmation.
 
ci dessous mon code.

n°1425855
jbourdello​n
Posté le 16-08-2006 à 10:28:04  profilanswer
 

Citation :

ci dessous mon code.

...

n°1425858
zana74
Posté le 16-08-2006 à 10:34:50  profilanswer
 

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 [:spamafote]
 
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 :
  1. <?
  2. class Livre extends Publication{
  3. var $editeur;
  4. var $isbn;
  5. var $type_livre;
  6. var $num_publi;
  7. function Livre(){
  8. $this->editeur;
  9. $this->isbn;
  10. $this->type_livre;
  11. $this->Publication();
  12. }
  13. function creer_livre($num_publi,$editeur,$isbn,$type_livre)
  14. {
  15.    
  16. $query = "insert into livre (num_publication,isbn,type_livre,editeur)
  17. VALUES ('$num_publi','$isbn','$type_livre','$editeur');";
  18. $result=mysql_query($query)or die(mysql_error());
  19.     if ($result)
  20.       {
  21.       $this->num_publi = mysql_insert_id();
  22.       }
  23.     else
  24.       {
  25.       $this->num_publi= -1;
  26.       }
  27. }
  28. }

 
 
le code de la classe mère publication:

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. </head>
  5. <?php
  6. include("connexion.php" );
  7. class  Publication{
  8. var $num_publi;
  9. var $titre_publication;
  10. var $date_publi;
  11.     var $langage;
  12. var $resume;
  13.  
  14.      // le constructeur permet d'initialiser
  15. // les variables membres
  16. /*function Publication($num_publi){
  17.    
  18.   $this->num_publi=$num_publi;}
  19. */
  20. function Publication(){
  21.   $this->num_publi=-1;
  22.   $this->titre_publication;
  23.   $this->date_publi;
  24.   $this->langage;
  25.   $this->resume;
  26.   }
  27. /*******************************************************************/
  28. /* cette fonction permet de fixer toute les informations liées  à la publication */
  29. function setDetail_pub(){
  30. $requete="select * from publication where num_publi=$this->num_publi";
  31.    if(mysql_select_db("bibliographie" )){
  32.       if($result = mysql_query($requete)) {       
  33.        if ($ligne = mysql_fetch_array($result))
  34.    {
  35.   $this->num_publi=$ligne[0];
  36.      $this->titre_publication=$ligne[1];
  37.   $this->date_publi=$ligne[2];
  38.   $this->langage=$ligne[3];
  39.    $this->resume=$ligne[4];
  40.     }
  41.       }
  42.   else echo "Erreur. echec de recherche en base concernant les publications.";
  43.    }else die("Echec de connexion à la base." );
  44. }
  45. /*******************************************************************/
  46. /* cette fonction permet d'afficher un tableau contenant toutes les informations du chercheur  */
  47. function afficherDetail_pub()
  48.  {
  49.    $this->setDetail_pub();
  50.         echo" <table>
  51.                  <tr>     
  52.                    <td><font color='#000099' size='4'>Titre  :</font></td>
  53.                    <td><font color='#000099' size='3'>$this->titre_publication</td>
  54.                  </tr>
  55.     <tr>     
  56.                    <td> <font color='#000099' size='4'>Date :</td>
  57.                    <td><font color='#000099' size='3'>$this->date_publi</td>
  58.                  </tr>
  59.     <tr>     
  60.                    <td> <font color='#000099' size='4'>Language:</td>
  61.                    <td><font color='#000099' size='3'>$this->langage</td>
  62.                  </tr>
  63.      <tr>
  64.     <td> <font color='#000099' size='4'>Résumé  :
  65.      </tr>
  66.     </table>
  67.     <table>
  68.     <tr>
  69.                  
  70.       <TEXTAREA name='resume' rows='10' cols='80' readonly style='position:relative; left:75'>$this->resume</TEXTAREA> </td>
  71.                  </tr>
  72.                  </table>";
  73. }
  74. /*******************************************************************/
  75. /* cette fonction permet de creer un nouvelle publication*/
  76. function creer_publication($titre_publication,$date_publi,$langage,$resume)
  77. {
  78.     $query = "insert into publication (num_publication,titre_publication,date_publication,langage,resume)
  79. VALUES ('','$titre_publication','$date_publi','$langage','$resume');";
  80. $result=mysql_query($query)or die(mysql_error());
  81.     if ($result)
  82.       {
  83.       $this->num_publi = mysql_insert_id();
  84.       }
  85.     else
  86.       {
  87.       $this->num_publi= -1;
  88.       }
  89. }
  90. /*******************************************************************/
  91. /* cette fonction permet de modifier une publication*/
  92. function mod_publication($num_publi,$titre_publication,$date_publi,$langage,$resume)
  93.     {
  94. $query="update publication set titre_publication='$titre_publication', date_publication='$date_publi',langage='$langage',resume='$resume' where num_publication='$num_publi';";
  95.    echo"$query";
  96.  
  97. $result=mysql_query($query) or die (mysql_error());
  98.  echo" le resultat est bien  $result";
  99.     if($result)
  100.       {
  101.       $this->num_publi = $this->num_publi;
  102.       }
  103.     else
  104.       {
  105.       $this->num_publi = -1;
  106.       }
  107.     }
  108. /*******************************************************************/
  109. /* cette fonction permet de supprimer  un chercheur*/
  110. function supp_publication($num_publi)
  111.     {
  112.     $query= "delete from publication where num_publi = '$num_publi';";
  113.    $result= (mysql_query($query))or die (mysql_error());
  114.  
  115.     if ($result)
  116.       {
  117.       $this->num_publi = $num_publi;
  118.       }
  119.     else
  120.       {
  121.       $this->num_publi = -1;
  122.       }
  123.     }
  124. }
  125. ?>
  126. <body>
  127. </body>
  128. </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.  

n°1425863
anapajari
s/travail/glanding on hfr/gs;
Posté le 16-08-2006 à 10:40:24  profilanswer
 

dans ta methode creer_livre, il faut que tu appeles la methode creer_publication de la classe mère pour créer un enregistrement dans publication et avoir ton attribut num_publi correc.

n°1425864
zana74
Posté le 16-08-2006 à 10:43:40  profilanswer
 

au fait mon problème c'est que je ne sais pas comment proceder en général car en cemoment j'ai crée une page qui permet de saisir les attributs communs dans la table publication puis à la fin de saisie je propose des liens qui permet de saisir la suite d'une publication selon sa nature si c'est un livre on clic sur le lien livre qui nous donne la page de saisie qui contient isbn, editeur,type de livre puis stockés dans la table livre.
 
je ne sais pas si c'est une bonne façon de proceder avec l'héritage .
j'attends vos avis et conseils  
merci!  

n°1425865
zana74
Posté le 16-08-2006 à 10:46:47  profilanswer
 

anapajari a écrit :

dans ta methode creer_livre, il faut que tu appeles la methode creer_publication de la classe mère pour créer un enregistrement dans publication et avoir ton attribut num_publi correc.


 mais comment appeler cette methode?
dans la classe livre il faut que j'appelle la methode creer livre dans ce cas il faut instancier livre dans sa classe ou instancier publication dans la classe livre,
j'avoue que je n'ai pas compris !


Message édité par zana74 le 16-08-2006 à 11:16:43
mood
Publicité
Posté le 16-08-2006 à 10:46:47  profilanswer
 

n°1425887
zana74
Posté le 16-08-2006 à 11:23:48  profilanswer
 

je m'adresse à vous tous, si vous avez un script d'héritage  en php n'ésitez pas à me le poster pour me baser dessus.
 
je vous remercie d'avance!  

n°1425892
anapajari
s/travail/glanding on hfr/gs;
Posté le 16-08-2006 à 11:32:17  profilanswer
 

$this (ton objet) courant pour appeler la méthode
 
Sinon je pense qu'un script ne te servirait a rien, vu que je doute de ta compréhension de "l'objet" en général. AMHA tu devrais revoir la théorie,
Commence par wikipedia ( http://fr.wikipedia.org/wiki/Progr [...] %A9e_objet ) et tu dois avoir des liens qui vont bien en bas

n°1425903
zana74
Posté le 16-08-2006 à 11:39:45  profilanswer
 

merci de ta réponse !
 
je l'ai fait déja dans le constructeur de la classe livre  

Code :
  1. function Livre(){
  2. $this->editeur;   
  3. $this->isbn;   
  4. $this->type_livre; 
  5. $this->Publication();    }


Message cité 1 fois
Message édité par zana74 le 16-08-2006 à 11:41:15
n°1426583
mIRROR
Chevreuillobolchévik
Posté le 17-08-2006 à 13:19:00  profilanswer
 

zana74 a écrit :

merci de ta réponse !


 
tu devrais lire sa reponse en entier je pense vraiment que certains trucs t echappent
je comprends l idee de ton script mais je crois que tu comprends mal la notion d objet
la tes objets sont completement figés
dis moi comment tu pourras reutiliser tes classes dans un site de voitures  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comment recuperer un identifiant de la classe mère

 

Sujets relatifs
Génération dynamique des attributs d'une classeSelect multiple recuperer toutes les valeurs
[PYTHON] Trouver le path d'une classe / d'un moduleRécupérer l'Index d'une ligne de DataGrid
Récupérer la clef rpimaireRecuperer la valeur dans une liste déroulante
Recuperer le nombre d'enregistrement modifier avec un UPDATEMS Visual Studio 2005 : contenu de classe inaccessible durant le debug
[Batch DOS] Recupérer le fichier le plus récent.[Résolu]Récupérer le nom d'un fichier à uploader
Plus de sujets relatifs à : comment recuperer un identifiant de la classe mère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR