rendered paste body<html> <head> <title>GetPhpClassFromDb</title> </head> <body ondblclick="alert('GetPhpClassFromDb \r\n Développé par Guillemot Bruno \r\n Version:1.11 \r\n Dernière release : 11/07/2007')"> <style> BODY { background-image: url('fond/fond.png'); width:100%; overflow:hide; } #bann { background-image: url('fond/ban.gif'); background-repeat:no-repeat; position : relative; left:17%; } #mediumbox { position : relative; left :13%; top:10%; width:70%; height:65%; background-image: url('fond/fondmed.png'); border: 3px inset black; display : block; padding : 10px; overflow:auto; arrows-face-color : #e2b232; font: 16px; font-weight :bold; } td { background-image: url('fond/fond.png'); } </style> <script> function conform(expression) { var car = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; if (expression.length==0)return(true); for (var n=0; n < expression.length; n++) { if(car.indexOf(expression.charAt(n))==-1)return(true); } } function checkchamp() { check = 'true'; if (document.getElementById("h").value.length==0) { alert('vous devez remplir le champ indiquant le serveur'); check='false'; } if(conform(document.getElementById("h").value)) { alert('le champ indiquant le serveur contient des caractères interdits'); check='false'; } if ((document.getElementById("u").value.length==0)&&(check!='false')) { alert('vous devez remplir le champ indiquant l\'utilisateur'); check='false'; } if(check!='false') { document.getElementById("selctdb").submit(); } } </script> <div id="bann" ><br/><br/><br/><br/> </div> <div id="mediumbox" > <?php if(isset($_POST['bdd'])) { include('fonction.php'); extract($_POST,EXTR_OVERWRITE); if(empty($pass)) { $pass=""; } $connect = mysql_connect($host,$user,$pass) or die('problême lors de la connection mysql vérifier les identifiants utilisateurs et base de données'); mysql_select_db($bdd,$connect)or die('la base de donnée n\'éxiste pas') ; $reqtalbeexec=mysql_query("show tables",$connect); $nbtables = mysql_num_rows($reqtalbeexec); for($i=0;$i<$nbtables;$i++) { $nomtable[$i]= mysql_result($reqtalbeexec,$i,"tables_in_".$bdd); $describexec=mysql_query("Show fields from ".$nomtable[$i],$connect); $nbchamps[$i]=mysql_num_rows($describexec); $a = $nbchamps[$i]; for($j=0;$j<$a;$j++) { $field[$i][$j] = mysql_result($describexec,$j,"Field"); $fieldtype[$i][$j] = mysql_result($describexec,$j,"Type"); $fieldkey[$i][$j] = mysql_result($describexec,$j,"key"); $fieldextra[$i][$j] = mysql_result($describexec,$j,"Extra"); } } if(!is_dir("Nouvelle_classe/")){mkdir ("Nouvelle_classe/");} //on crée les dossier qui vont recevoir les codes généré mkdir ("Nouvelle_classe/".$bdd."/")or die("le dossier conteneur éxiste déja, vérifiez que vous n'avez pas déja créer les classes"); mkdir ("Nouvelle_classe/".$bdd."/classes/")or die("le dossier de classe éxiste déja, vérifiez que vous n'avez pas déja créer les classes"); mkdir ("Nouvelle_classe/".$bdd."/Vecteurs/")or die("le dossier de Vecteurs éxiste déja, vérifiez que vous n'avez pas déja créer les classes"); mkdir ("Nouvelle_classe/".$bdd."/formulaires/")or die("le dossier de Formulaires éxiste déja, vérifiez que vous n'avez pas déja créer les classes"); for($i=0;$i<$nbtables;$i++) { //création des classes $cptcle=0; echo "<table><tr><td CELLSPACING='.$nbchamps[$i].' style='border:2px black outset;'><B>$nomtable[$i]</B></td></tr>\r\n"; if(!empty($pref)) { $nomtable[$i]=suprimeprefixe($nomtable[$i],$pref); } $fichclass=fopen("Nouvelle_classe/".$bdd."/classes/".$nomtable[$i]."_class.php","w"); $fichvect=fopen("Nouvelle_classe/".$bdd."/Vecteurs/".$nomtable[$i]."_vect.php","w"); $contenufich = "<?php \r\nclass $nomtable[$i] \r\n{\r\n "; echo"<tr>"; for($j=0;$j<$nbchamps[$i];$j++) { echo "<td style='border:2px black outset;"; if (!empty($fieldkey[$i][$j])) { echo "background-image: url(\"fond/fondmed.png\");"; } echo "'><tt>".$field[$i][$j]."</tt></td>"; $contenufich .="\t var $".$field[$i][$j].";"; if ((!empty($fieldkey[$i][$j]))&&($fieldkey[$i][$j]!="MUL")) { $contenufich .= "\t/* Clé primaire */\r\n"; $cle[$cptcle]=$field[$i][$j]; $typecle[$cptcle]=$fieldtype[$i][$j]; $extrakey[$cptcle]=$fieldextra[$i][$j]; $cptcle++; } else { $contenufich .= "\r\n"; } echo"\r\n"; } echo"</tr>\r\n<tr>"; for($j=0;$j<$nbchamps[$i];$j++) { echo "<td style='border:2px black outset;'><tt>".$fieldtype[$i][$j]."</tt></td>"; } echo"</tr>\r\n"; //pour le constructeur $contenufich .="\r\n\t function __construct("; for($j=0;$j<$nbchamps[$i];$j++) { if($j<$nbchamps[$i]-1) { $contenufich .= "$".$field[$i][$j].","; } else { $contenufich .= "$".$field[$i][$j]; } } $contenufich .=") \r\n\t {\r\n"; for($j=0;$j<$nbchamps[$i];$j++) { $contenufich .="\t\t \$this->".$field[$i][$j]." = (".cherchetype(suprimelongeur($fieldtype[$i][$j])).") $".$field[$i][$j].";\r\n"; } $contenufich .="\t}\r\n"; $contenufich .="\t //on écrit les accesseur\r\n"; for($j=0;$j<$nbchamps[$i];$j++) { $contenufich .="\r\n\t function get".$field[$i][$j]."() \r\n\t {\r\n"; $contenufich .="\t\t return(\$this->".$field[$i][$j].") ;\r\n"; $contenufich .="\t}\r\n"; } $contenufich .="\t //on écrit les mutateurs\r\n "; for($j=0;$j<$nbchamps[$i];$j++) { $contenufich .="\r\n\t function set".$field[$i][$j]."(\$new".$field[$i][$j].") \r\n\t {\r\n"; $contenufich .="\t\t include('cnx.inc');\r\n \t\t \$this->".$field[$i][$j]." = \$new".$field[$i][$j].";\r\n"; if(formatdonnees($fieldtype[$i][$j])) { $contenufich .= "\t\t \$req='update ".$nomtable[$i]." set ".$field[$i][$j]."= \"'.\$new".$field[$i][$j].".'\" where"; } else { $contenufich .= "\t\t \$req='update ".$nomtable[$i]." set ".$field[$i][$j]."= '.\$new".$field[$i][$j].".' where"; } $cptpk=0; for($k=0;$k<$nbchamps[$i];$k++) { if ((!empty($fieldkey[$i][$k]))&&($fieldkey[$i][$k]!="MUL")) { $temppk[$cptpk] = $field[$i][$k]; $temptypepk[$cptpk] = $fieldtype[$i][$k]; $cptpk++; } } for($k=0;$k<$cptpk;$k++) { if($k!=0) { if(formatdonnees($temptypepk[$k])) { $contenufich .= " and $temppk[$k] = \"'.\$this->get$temppk[$k]().'\""; } else { $contenufich .= " and $temppk[$k] = '.\$this->get$temppk[$k]().'"; } } else { if(formatdonnees($temptypepk[$k])) { $contenufich .= " $temppk[$k] = \"'.\$this->get$temppk[$k]().'\""; } else { $contenufich .= " $temppk[$k] = '.\$this->get$temppk[$k]().'"; } } } $contenufich .="';\r\n\t\t mysql_query(\$req);\r\n"; $contenufich .="\t}\r\n"; } echo "\r\n</table>\r\n<Br/>"; $contenufich .="\r\n\t function affichtout() \r\n\t {\r\n"; for($j=0;$j<$nbchamps[$i];$j++) { $contenufich .="\t\t echo \$this->get".$field[$i][$j]."();\r\n"; } $contenufich .="\t}\r\n "; $contenufich .="}\r\n ?>"; $contenufichvecteurs = "<?php \r\n \t//Vecteurs de classes $nomtable[$i] \r\n\r\n "; $contenufichvecteurs .= "\t include('../$bdd/$nomtable[$i].php');\r\n"; $contenufichvecteurs .= "\t \$nb$nomtable[$i]=0;\r\n"; $contenufichvecteurs .= "\t \$$nomtable[$i] = array();\r\n"; $contenufichvecteurs .= "\t //fonction : création du vecteurs"; $contenufichvecteurs .= "\r\n\t function createvect$nomtable[$i]()\r\n"; $contenufichvecteurs .= "\t { \r\n"; $contenufichvecteurs .= "\t\t global \$$nomtable[$i],\$nb$nomtable[$i]; \r\n"; $contenufichvecteurs .= "\t\t include('cnx.inc'); \r\n"; $contenufichvecteurs .= "\t\t \$req=\"SELECT * FROM $nomtable[$i] \"; \r\n"; $contenufichvecteurs .= "\t\t \$reqexec=mysql_query(\$req); \r\n"; $contenufichvecteurs .= "\t\t \$nb$nomtable[$i]=mysql_num_rows(\$reqexec); \r\n"; $contenufichvecteurs .= "\t\t for(\$i=0;\$i<\$nb$nomtable[$i],\$i++) \r\n"; $contenufichvecteurs .= "\t\t { \r\n"; $contenufichvecteurs .= "\t\t\t \$$nomtable[$i]temp = new $nomtable[$i]; \r\n"; $contenufichvecteurs .= "\t\t\t \$$nomtable[$i]temp->_construct("; for($j=0;$j<$nbchamps[$i];$j++) { if($j<$nbchamps[$i]-1) { $contenufichvecteurs .= "mysql_result(\$reqexec,\$i,'".$field[$i][$j]."'),"; } else { $contenufichvecteurs .= "mysql_result(\$reqexec,\$i,'".$field[$i][$j]."'));\r\n"; } } $contenufichvecteurs .= "\t\t\t\$$nomtable[$i][\$i]=\$$nomtable[$i]temp;\r\n"; $contenufichvecteurs .= "\t\t } \r\n"; $contenufichvecteurs .= "\t } \r\n"; $contenufichvecteurs .= "\t //fonction : suppression enregistrement du vecteurs"; $contenufichvecteurs .= "\r\n\tfunction supprenreg$nomtable[$i]("; for($j=0;$j<$cptcle;$j++) { if($j<$cptcle-1) { $contenufichvecteurs .= "\$$cle[$j],"; } else { $contenufichvecteurs .= "\$$cle[$j])\r\n"; } } $contenufichvecteurs .= "\t { \r\n"; $contenufichvecteurs .= "\t\t include('cnx.inc'); \r\n"; $contenufichvecteurs .="\t\t \$req='Delete FROM prospect where "; for($j=0;$j<$cptcle;$j++) { if($j<$cptcle-1) { if(formatdonnees($typecle[$j])) { $contenufichvecteurs .= "$cle[$j]=\"'.$$cle[$j].' \","; } else { $contenufichvecteurs .= "$cle[$j]='.\$$cle[$j].',"; } } else { if(formatdonnees($typecle[$j])) { $contenufichvecteurs .= "$cle[$j]=\"'.$$cle[$j].'\"';"; } else { $contenufichvecteurs .= "$cle[$j]='.\$$cle[$j];"; } } } $contenufichvecteurs .= "\r\n\t\t \$reqexec=mysql_query(\$req); \r\n"; $contenufichvecteurs .= "\t\t createvect$nomtable[$i]()"; $contenufichvecteurs .= "\r\n\t } \r\n"; $contenufichvecteurs .= "\r\n\tfunction addenreg$nomtable[$i]("; for($j=0;$j<$nbchamps[$i];$j++) { if($j<$nbchamps[$i]-1) { if($fieldextra!='auto_increment') { $contenufichvecteurs .= "\$".$field[$i][$j].","; } } else { if($fieldextra!='auto_increment') { $contenufichvecteurs .= "\$".$field[$i][$j].")\r\n"; } } } $contenufichvecteurs .= "\t{\r\n\t\t include('cnx.inc'); \r\n"; $contenufichvecteurs .= "\t\t\$req=\"Insert into prospect Values ("; for($j=0;$j<$nbchamps[$i];$j++) { if($j<$nbchamps[$i]-1) { if($fieldextra!='auto_increment') { if(!formatdonnees($fieldtype[$i][$j])) { $contenufichvecteurs .= "\$".$field[$i][$j].","; } else { $contenufichvecteurs .= "'\$".$field[$i][$j]."',"; } } else { $contenufichvecteurs .= "'',"; } } else { if($fieldextra!='auto_increment') { if(!formatdonnees($fieldtype[$i][$j])) { $contenufichvecteurs .= "\$".$field[$i][$j].""; } else { $contenufichvecteurs .= "'\$".$field[$i][$j]."'"; } } else { $contenufichvecteurs .= "''"; } } } $contenufichvecteurs .= ")\";"; $contenufichvecteurs .= "\r\n\t\t \$reqexec=mysql_query(\$req); \r\n"; $contenufichvecteurs .= "\t\t createvect$nomtable[$i]()"; $contenufichvecteurs .= "\r\n\t } \r\n"; $contenufichvecteurs .= "?>"; fwrite($fichclass,$contenufich) or die('impossible de créer le fichier '.$fichclass); fwrite($fichvect,$contenufichvecteurs) or die('impossible de créer le fichier '.$fichvect); } echo "<script>alert('le code a été généré correctement \\r\\n dossier : Nouvelle_classe/".$bdd."/')</script>"; } else { ?> <form METHOD='POST' name='selctdb' id='selctdb' action="index.php"> <br/> Serveur : <input type="text" name='host' id="h"><Br /><Br /> Utilisateur : <input type="text" name='user' id="u"><Br /><Br /> Password : <input type="password" name='pass' id="p"><Br /><Br /> Base de données :<input type="text" name='bdd' id="b"><Br /><Br /> préfixe de table : <input type="text" name='pref' id="pr"><Br /><Br /> <input value="CREER LES CLASSES" type="button" name='sub' style='border:1px outset;background-image: url("fond/fond.png");color:black;font-weight:bold;border:1px black outset;' onClick="checkchamp()"><Br /> </form> <? } ?> </div> </body></html>