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

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de syntaxe sur une classe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de syntaxe sur une classe

n°989687
boojhot
Posté le 22-02-2005 à 12:28:55  profilanswer
 

Bonjour, je souhaiterais créer une classe "composant" qui contiendrait le numero du composant ainsi qu'un tableau de pointeurs (références) qui pointeraient vers d'autres élément de type "composant"  
 
Le probleme c'est que j'ai pas la moindre idée de la rédaction en php...
 

Code :
  1. class composant
  2.     {
  3.  
  4.     var $numero_du_composant;
  5.     composant & $sous_composant[];
  6.  
  7.     }


 
Donc la syntaxe c'est absoluement n'importe quoi, mais ca reflete le fond de ma pensée...
 
++ et merci d'avance :bounce:

mood
Publicité
Posté le 22-02-2005 à 12:28:55  profilanswer
 

n°989690
soju
One shot !
Posté le 22-02-2005 à 12:41:07  profilanswer
 

[quote=989687,0,1,232335]Le probleme c'est que j'ai pas la moindre idée de la rédaction en php...[/quote]
un petit tour ici s'impose ;)

n°989724
boojhot
Posté le 22-02-2005 à 13:15:11  profilanswer
 

j'en ai deja fait le tour ... mais l'obstacle pour moi c'est le melange avec des références... c'est beaucoup moins clair qu'en C++ ...

n°989841
boojhot
Posté le 22-02-2005 à 14:40:57  profilanswer
 

et bein j'ai regarder 50 tutoriaux, mais aucun ne parle de système où on utiliserait un pointeur sur une classe comme composant de la classe..
 
Donc la ... on peut le dire, je suis a la rue...  :whistle:

n°989843
skeye
Posté le 22-02-2005 à 14:42:57  profilanswer
 

En php les variables ne sont pas typées...donc

Code :
  1. var $sous_composant;


et c'est tout


---------------
Can't buy what I want because it's free -
n°989845
soju
One shot !
Posté le 22-02-2005 à 14:45:42  profilanswer
 

[quote=989841,0,4,232335]on utiliserait un pointeur sur une classe comme composant de la classe[/quote]
ca ne se gere pas dans la déclaration mais dans le constructeur ou autre fonction à laquelle tu passeras en parametre une reference

n°989919
boojhot
Posté le 22-02-2005 à 15:37:37  profilanswer
 

oukiii  
 
Juste une tite question, un constructeur récursif c'est possible?
 
c'est a dire que dans ton constructeur, ce même constructeur est rappelé pour créer une sous classe.
 
En fait dans l'esprit, si ca pouvait marcher ca me ferait une classe enorme avec plein de classe intégrées dedans

n°989942
soju
One shot !
Posté le 22-02-2005 à 15:45:26  profilanswer
 

[quote=989919,0,7,232335]pour créer une sous classe.[/quote]
je n'ai pas vu d'héritage dans ton code, donc sous-classe n'est pas le mot approprié

n°989962
boojhot
Posté le 22-02-2005 à 15:52:09  profilanswer
 

oui c'est vrai c'est pas une sous classe mais la meme classe présente au niveau inférieur...
 
mais la question reste entiere est ce ke cela peut marcher un constructeur avec une recurrence dans ce style :
 

Code :
  1. <?php
  2. class composant
  3.     {
  4.     var $numero;
  5.     var $sous_composant;
  6.    
  7.     var $quantite;
  8.    
  9.     function composant ($num)
  10.            {
  11.            $this->numero=$num;
  12.       
  13.             
  14.            /*Recuperation des numéro des sous composants*/
  15.           
  16.            $mysql_connexion = mysql_connect("localhost", "zorg9", "foxzob" );
  17.       $sql = "
  18.                    SELECT DISTINCT art.num, nomen.quantite
  19.             FROM art, nomen
  20.               WHERE nomen.composant=art.num
  21.               AND nomen.compose='$num'
  22.               ";
  23.       $result = mysql_db_query("zorg9_db", $sql, $mysql_connexion);
  24.       $j=0; 
  25.       while ($row = mysql_fetch_array($result, MYSQL_NUM))
  26.                      {
  27.             composant($row[0]);
  28.             }
  29.      
  30.          }
  31. }
  32. $sys= new composant('B89959017');
  33. ?>


 
Le probleme c'est que pour l'insatnt y me dit que la fonction n'existe pas...


Message édité par boojhot le 22-02-2005 à 15:53:16
n°989971
soju
One shot !
Posté le 22-02-2005 à 15:55:21  profilanswer
 

verifie la ligne 32  ;)

mood
Publicité
Posté le 22-02-2005 à 15:55:21  profilanswer
 

n°989974
skeye
Posté le 22-02-2005 à 15:55:32  profilanswer
 

De toute manière tu vas te faire bouler quand tu vas essayer d'utiliser le lien mysql à la création de ton premier sous-composant, non?:o
Enfin au mieux tu te fais bouler, au pire il dit rien mais tu te retrouve à skipper des tas de composants...:o


---------------
Can't buy what I want because it's free -
n°989983
soju
One shot !
Posté le 22-02-2005 à 15:58:02  profilanswer
 

[quote=989974,0,11,46149]De toute manière tu vas te faire bouler quand tu vas essayer d'utiliser le lien mysql à la création de ton premier sous-composant, non?[/quote]
bien vu, pas "bouler" mais ça risque de creer une nouvelle connex a chaque appel donc il ferait mieux de mettre la connex ailleur

n°989990
skeye
Posté le 22-02-2005 à 16:00:42  profilanswer
 

[quote=989983,0,12,195330]bien vu, pas "bouler" mais ça risque de creer une nouvelle connex a chaque appel donc il ferait mieux de mettre la connex ailleur[/quote]
Non, pas une nouvelle, la même, et c'est pour ça qu'il risque de paumer plein de composants en route :
http://www.nexen.net/docs/php/anno [...] onnect.php

Citation :


 Si un second appel à mysql_connect  est fait avec les mêmes arguments, PHP ne va pas ouvrir une nouvelle connexion, mais va retourner l'identifiant de la connexion déjà ouverte.


 
 
[edit]
 
Quoi que, je sais pas exactement ce qui peut bien se passer quand on fait ça, tiens...[:urd]


Message édité par skeye le 22-02-2005 à 16:02:46

---------------
Can't buy what I want because it's free -
n°989994
boojhot
Posté le 22-02-2005 à 16:01:22  profilanswer
 

hum... bein la blague, c'est que je sait ke le probleme vient de cette ligne mais je voit pas d'ou vient l'erreur...  
si ce n'est du fait que le constructeur n'est pas totalement défini, mais c'est normalement le principe de base d'une fonction récursive nan?

n°990003
boojhot
Posté le 22-02-2005 à 16:04:07  profilanswer
 

ha oauis c'est clair pour le coup de la connection... mais bon c'est juste déplacé une ligne...  (ca vient du c/c d'un programme que j'ai deja essayé de faire tourner avant ... qui marchait pas nan plus lol)

n°990010
soju
One shot !
Posté le 22-02-2005 à 16:06:21  profilanswer
 

[quote=989994,0,14,232335]hum... bein la blague, c'est que je sait ke le probleme vient de cette ligne mais je voit pas d'ou vient l'erreur... [/quote]comment appelle-t-on un constructeur ? tu as la reponse dans ton code ligne 38 ;)

n°990013
skeye
Posté le 22-02-2005 à 16:07:17  profilanswer
 

Tu vas te retrouver avec autant de requêtes en cours de traitement en même temps que tu as de niveaux à ton arborescence de composants, là...c'est surtout ça qui m'inquiète...:o


---------------
Can't buy what I want because it's free -
n°990020
boojhot
Posté le 22-02-2005 à 16:08:34  profilanswer
 

haaaaaaaaaaaaa pinaiseeeee  :love:  :pt1cable:  
 
c'est assez spécial la syntaxe php quand même...
 
bein je vais me tenter ca tout de suite  
 
merci  :jap:

n°990022
soju
One shot !
Posté le 22-02-2005 à 16:09:22  profilanswer
 

[quote=990013,0,17,46149]Tu vas te retrouver avec autant de requêtes en cours de traitement en même temps que tu as de niveaux à ton arborescence de composants, là...c'est surtout ça qui m'inquiète...:o[/quote]
+1

n°990048
boojhot
Posté le 22-02-2005 à 16:20:45  profilanswer
 

bon bein ca a l'air  de tourner... le reste plus k'a trouver un moyen d'exploiter correctement cette super classe  :bounce:  
 
Merci encor  ;)

n°990053
skeye
Posté le 22-02-2005 à 16:22:48  profilanswer
 

Vérifie bien que tu ne perds rien quand tu as plusieurs sous-composants ayant chacun plusieurs sous-composants, quand même...;)
Ca fait partie des choses que je n'ai jamais pris le temps de tester, en fait...[:joce]


---------------
Can't buy what I want because it's free -
n°990066
soju
One shot !
Posté le 22-02-2005 à 16:29:42  profilanswer
 

et aussi le fait que si un sous-composant fait partie de plusieurs composants il sera créé autant de fois...

n°990069
skeye
Posté le 22-02-2005 à 16:31:02  profilanswer
 

[quote=990066,0,22,195330]et aussi le fait que si un sous-composant fait partie de plusieurs composants il sera créé autant de fois...[/quote]
Très juste! J'y avais pas pensé, à celui-là...


---------------
Can't buy what I want because it's free -
n°990849
boojhot
Posté le 23-02-2005 à 10:20:50  profilanswer
 

Re bonjour tout le monde...
 
 
J'ai encore un ptit souci... j'arrive pas à rentrer dans mes sous-objet...
 
 
voila mon tit script  
 

Code :
  1. <?php
  2. class composant
  3.     {
  4.     var $numero;
  5.     var $sous_composant;
  6.    
  7.     var $quantite;
  8.    
  9.     function composant ($num)
  10.            {
  11.            $this->numero=$num;
  12.       
  13.             
  14.            /*Recuperation des numéro des sous composants*/
  15.           
  16.            $mysql_connexion = mysql_connect("localhost", "zorg9", "foxzob" );
  17.       $sql = "
  18.                    SELECT DISTINCT art.num, nomen.quantite
  19.             FROM art, nomen
  20.               WHERE nomen.composant=art.num
  21.               AND nomen.compose='$num'
  22.               ";
  23.       $result = mysql_db_query("zorg9_db", $sql, $mysql_connexion);
  24.        
  25.       while ($row = mysql_fetch_array($result, MYSQL_NUM))
  26.                      {
  27.                      $num2=$row[0];
  28.             $this->sous_composant[] = new composant($num2);
  29.    
  30.             }
  31.      
  32.          }
  33. }
  34. $sys= new composant('B89959017');
  35. for ($i=0 ;$i<5 ; $i++)
  36.        {
  37.        $p=2;
  38.       
  39.        $test[$i]=$sys->sous_composant[$p]->sous_composant[$i]->numero;
  40.   }
  41. print_r($test);
  42. ?>


 
 
Ce que je ne comprend pas c'est que j'arrive bien a récuperer le numero  
 
lorsque je cherche sur le premier niveau de cete maniere :
 

Code :
  1. for ($i=0 ;$i<5 ; $i++)
  2.        {
  3.              
  4.        $test[$i]=$sys->sous_composant[$i]->numero;
  5.   }
  6. print_r($test);


 
Mais lorsque je rajoute un niveau (cf cidessous) plus rien ne fonctionne...
 
 

Code :
  1. for ($i=0 ;$i<5 ; $i++)
  2.        {
  3.        $p=2;
  4.       
  5.        $test[$i]=$sys->sous_composant[$p]->sous_composant[$i]->numero;
  6.   }
  7. print_r($test);


 
 
Donc voila, je refais appel à votre maitrise  ;)  
 
++
 

n°990853
skeye
Posté le 23-02-2005 à 10:22:18  profilanswer
 

et si tu fais un print_r($sys->sous_composant[$p]) tu as bien quelquechose?


Message édité par skeye le 23-02-2005 à 10:22:31

---------------
Can't buy what I want because it's free -
n°990856
boojhot
Posté le 23-02-2005 à 10:28:44  profilanswer
 

hum c'est possible qu'il y ait un prbleme ...  
voila ce ke j'obtient...

Code :
  1. composant Object ( [numero] => 41725017 [sous_composant] => [quantite] => )


 
a priori, mon second niveau de sous composants  n'est pas rempli ...
 
Bon bein faut que je creuse ca alors...

n°990858
skeye
Posté le 23-02-2005 à 10:29:58  profilanswer
 

En effet ça risque pas de marcher, là...;)


---------------
Can't buy what I want because it's free -
n°990880
boojhot
Posté le 23-02-2005 à 10:43:28  profilanswer
 

en fait je suis un énorme boulet... il ne retournait pas de solution puisque dans le cas du composant de test, c'est a partir du 13 eme sous composant qu'il y a un sous sous composant... moralité, la je recherchais un truc qui n'existait pas...
 
/me mode un neurone ... :o  
 
bon je continue mes essais alors...

mood
Publicité
Posté le   profilanswer
 


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

  Problème de syntaxe sur une classe

 

Sujets relatifs
probleme dans requete SQLProblème de formatage de date sous MySQL
probleme avec l'ide borland!Problème doublon
probleme de calqueProblème de réception de message
problème requete Sql avec variableProbleme de récuperation de fichier sur un FTP
[C Ansi] Thread POSIX problème de synchronisationpetit problème pour requete sql un poil complexe
Plus de sujets relatifs à : Problème de syntaxe sur une classe


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