Tool sql class génération de code pour mysql(connection,formulaire et maj )

Description

Voici un petit script qui génère automatiquement les fichiers nécessaires pour l'administration de base de données mysql ainsi q'un fichier pour ce connecter a cette classe ->
source->http://www.phpcs.com/codes/CLASS-MYSQL-POUR-TOUS-FAIRE_12784.aspx .->CLASS MYSQL(POUR TOUS FAIRE)de k@se.
Fichiers generés:
- NAME_BASE_View_all.php ->affiche tous les résultats.
- Form_NAME_BASE.php -> formulaire pour inserer un nouveau enregistrement.
- NAME_BASE_Links.php -> sélection de l'enregistrement pour la mis a jour.
- Form_NAME_BASE"_update.php -> formulaire pour la mis a jour d'un enregistrement.
Utilisation:
-lancez le fichier -> class_sql.php
-install automatique.

Source / Exemple :


<?php
/*Auteur : arboretom*/
$filename = "class/Config.class.php";
if (file_exists($filename)) {
include($filename);
 class ClassSql extends Config{
    function ClassSql()
      {$connection = @mysql_connect($this->host, $this->user, $this->pass)
       or die("Impossible de se connecter : " . mysql_error()."<br>");
       return$connection;
     }
//->Liste toute les base du serveur
     function list_base(){
$db_list = mysql_list_dbs($this->ClassSql());
$base=$_GET["base"];
echo "<center><form name='form1' method='get' action='".$_SERVER['PHP_SELF']."'>
<select name='base' onchange='form1.submit();'>";
echo "  <option >Choix de la base</option>";
while ($row = mysql_fetch_object($db_list)) {
echo "  <option value='".$row->Database."'>".$row->Database."</option>";
}echo "</select><br>Nom de la base :<b> $base</b>
</form></center>";

$this->list_table($base);

     }
     
//->liste les table
     function list_table($baseSelect){
              $tableNames = mysql_list_tables($baseSelect, $this->ClassSql());
              mysql_select_db($baseSelect);
              $base=$_GET["base"];
              $table=$_GET["table"];
    if($baseSelect !=""){
          echo '<center><input type="button" value="Actualiser" OnClick="history.go(0)"></form></center>';
          echo "<table align='center' border='1' cellspacing='0' cellpadding='15'>";
          echo "<tr>";
          echo "<th>table</th><th>nb champ</th><th>Nb enreg</th>";
          echo"<th>Source</th>";
          echo"</tr>";
    while ($row = mysql_fetch_row($tableNames)) {
           $req="SELECT * FROM ".$row[0]."";
           $result = mysql_query($req);
           $fields = mysql_num_fields($result);
           $num_rows = mysql_num_rows($result);
     echo "<tr ><td >";
     echo" Créer la source <a href='".$_SERVER['PHP_SELF']."?base=$baseSelect&table=".$row[0]."'>".$row[0]."</a></td><td>".$fields."</td><td>$num_rows";
     echo "</td><td>";
           $nom_dossier=$row[0];
           $exist_doss=is_dir($nom_dossier);
    if(!$exist_doss){echo"pas encore Creer";}
	else{
echo "<a href='".$row[0]."/".$row[0]."_View_all.php' target='_blank'>".$row[0]."_View_all.php</a> | ";
echo "<a href='highlight.php?title=".$row[0]."/".$row[0]."_View_all.php' target='_blank'>source</a><br>";
echo "<a href='".$row[0]."/Form_".$row[0].".php' target='_blank'>Form_".$row[0].".php</a>|";
echo "<a href='highlight.php?title=".$row[0]."/Form_".$row[0].".php' target='_blank'>source</a><br>";
echo "<a href='".$row[0]."/".$row[0]."_Links.php' target='_blank'>".$row[0]."_links.php</a>|";
echo "<a href='highlight.php?title=".$row[0]."/".$row[0]."_Links.php' target='_blank'>source</a><br>";
echo "<a href='".$row[0]."/Form_".$row[0]."_update.php' target='_blank'>".$row[0]."_update.php</a>|";
echo "<a href='highlight.php?title=".$row[0]."/Form_".$row[0]."_update.php' target='_blank'>source</a><br>";
         }
echo"</td></tr>";
          }
}	
echo "</table>";
$base=$_GET["base"];
$table=$_GET["table"];
$this->list_row($base,$table);

            }

//->liste les enregistrement et creer les fichier
             function list_row($base,$table){
                      mysql_select_db($base);
       if($table !=""){
          $req="SELECT * FROM $table";
          $result = mysql_query($req);
          $fields = mysql_num_fields($result);
          $numa = mysql_num_rows ($result);
          $retourligne="\n";
          $var="$";
          $br=".\"<br>\"";
   for ($j=0; $j < $fields; $j++) {
          $name  = mysql_field_name($result, $j);
          $namefield.=$var.$name."=".$var."dbview->field('".$name."');".$retourligne;
          $echofield.="echo".$var.$name.$br.";".$retourligne;
                    }
	$brace_debut="<?php\n";
	$brace_fin="\n?>";
	$conectfile='include("../class/Config.class.php");'.$retourligne;;
	$conectfile.='include("../class/extend.sql.class.php");'.$retourligne;;
	$boucledebut="while(".$var."dbview->next_record()){".$retourligne;
	$bouclefin="}".$retourligne;
	$confbase=$var."base=\"$base\";".$retourligne;
	$conftable=$var."table=\"$table\";".$retourligne;
	$declaration=$var."dbview = new sql(".$var."base);".$retourligne;
	$query=$var."dbview->query(\"select * from ".$var."table\");".$retourligne;
	$textecount=".\" enregistrements\"";
	$count=$var."count=".$var."dbview->countfield();".$retourligne."echo".$var."count".$textecount.$br.";".$retourligne;

		$args=$brace_debut;
		$args.=$conectfile;
		$args.=$confbase;
		$args.=$conftable;
		$args.=$declaration;
		$args.=$query;
		$args.=$count;
		$args.=$boucledebut;
		$args.=$namefield;
		$args.=$echofield;
		$args.=$bouclefin;
		$args.=$brace_fin;
           mysql_select_db($base);
			$req="SELECT * FROM $table";
			$result = mysql_query($req);
			$fields = mysql_num_fields($result);
			$num_rows = mysql_num_rows($result);

     for ($i=0; $i < $fields; $i++) {
          $type  = mysql_field_type($result, $i);
          $name  = mysql_field_name($result, $i);
          $len   = mysql_field_len($result, $i);
          $flags = mysql_field_flags($result, $i);
    if($len >255 ){
       $input.=" echo \"$name<textarea rows='5' cols='40' wrap='on' name='$name'>";
       $input.="</textarea><br>\";\n";
                  }
    elseif($len <50 ){$input.="echo\"$name : <input type='text' name='$name' value=''size='$len'><br>\";\n";}
    else{$input.="echo\"$name : <input type='text' name='$name' value=''size='50'><br>\";\n";}
                  }
	$this->creer_dossier($table);
	$this->CreateFile($table."/".$table."_View_all.php" , $args);
           $formaction='$db = new sql($base);'.$retourligne.'$action=$_POST["action"];
             if($action=="insert"){echo "$action";
             $db->insert("$table VALUES(';
  for ($i=0; $i < $fields; $i++) {
       $name  = mysql_field_name($result, $i);
       $namechamp .="'$".$name."',";
      }
		$name0  = mysql_field_name($result, 0);
		$name001  = mysql_field_name($result, 1);
		$name01  ="$". mysql_field_name($result, 0);
   for ($i=0; $i < $fields; $i++) {
        $name  = mysql_field_name($result, $i);
        $namechamp_up .= "$name ='$".$name."',";
        }
			$rest_up = substr($namechamp_up, 0, -1);
			$rest = substr($namechamp, 0, -1);
			$fininsert=")\");\n   echo\"<A HREF='Javascript:history.go(-1)'>Retour</A>\"; \n exit;  }
			elseif(".'$'."action==\"update\"){ $"."db->update(\"$"."table SET $rest_up WHERE $name0='$name01'\"); \n echo\"<A HREF='Javascript:history.go(-1)'>Retour</A>\"; \n exit;
			}
			elseif(".'$'."action=='delete'){}\n";
$file_php=$light_php.$conectfile.$rest.$fininsert;
$nom_doss="Tool_sql/admin_".$table;
$filesform=$table."/Form_".$table.".php";
$debut_form="$"."form_action=\"Form_".$table.".php\";  \n echo\"<form name='$table' method='post' action='$"."form_action'>\";\n";
$fin_form="echo\"<input type='hidden' name='action' value='insert'>\n<input type='submit' value='insert'>\n</form>\";";
$fin_form_update="echo\"<input type='hidden' name='action' value='update'>\n<input type='submit' value='insert'>\n</form>\";";

	$argsform=$brace_debut;
	$argsform.=$conectfile;
	$argsform.=$confbase;
	$argsform.=$conftable;
	$argsform.=$declaration;
	$argsform.=$query;
	$argsform.=$count;
	$argsform.=$formaction.$rest.$fininsert;
	$argsform.=$debut_form.$input.$fin_form;
	$argsform.=$brace_fin;
              $this->CreateFile($table."/Form_".$table.".php" , $argsform);
	$argsLinks=$brace_debut;
	$argsLinks.=$conectfile;
	$argsLinks.=$confbase;
	$argsLinks.=$conftable;
	$argsLinks.=$declaration;
	$argsLinks.=$query;
	$argsLinks.=$count;
	$argsLinks.=$boucledebut;
	$argsLinks.=$namefield;
	$argsLinks.="echo\"<a href='Form_".$table."_update.php?row=".$var.$name0."'>".$var.$name0." ".$var.$name001."</a><br>\";".$retourligne."}".$retourligne;
	$argsLinks.=$brace_fin;
              $this->CreateFile($table."/".$table."_Links.php" , $argsLinks);
  for ($i=0; $i < $fields; $i++) {
       $type  = mysql_field_type($result, $i);
       $name  = mysql_field_name($result, $i);
       $len   = mysql_field_len($result, $i);
       $flags = mysql_field_flags($result, $i);
  if($len >255 ){
		$input_update.=" echo \"$name<textarea rows='5' cols='40' wrap='on' name='$name'>";
		$input_update.=$var.$name."</textarea><br>\";\n";
      }
elseif($len <50 ){$input_update.="echo\"$name : <input type='text' name='$name' value='".$var.$name."'size='$len'><br>\";\n";}
else{$input_update.="echo\"$name : <input type='text' name='$name' value='".$var.$name."'size='50'><br>\";\n";}
     }
$query_update=$var."dbview->query(\"select * from ".$var."table where $name0='".$var."rowupdate'\");".$retourligne;

	$argsform_update=$brace_debut;
	$argsform_update.=$conectfile;
	$argsform_update.=$confbase;
	$argsform_update.=$conftable;
	$argsform_update.=$declaration;
	$argsform_update.=$var."rowupdate=".$var."_GET[\"row\"];";
	$argsform_update.=$query_update;
	$argsform_update.=$count;
	$argsform_update.=$formaction.$rest.$fininsert;
	$argsform_update.=$boucledebut;
	$argsform_update.=$namefield;
	$argsform_update.=$debut_form.$input_update.$fin_form_update;
	$argsform_update.=$bouclefin;
             $this->CreateFile($table."/Form_".$table."_update.php" , $argsform_update);
}
                    }

        function CreateFile($fichier , $args){
                 $contenu = "";
                 $args = func_get_args();
  foreach(array_slice($args, 1, count($args)) as $a) {
  if (is_object($a) || is_resource($a)) {
  } else if (is_array($a)){
  $contenu .= implode("\n", array_values($a))."\n";}
   else {$contenu .= $a."\n";
  }
  }
  if ($contenu == "") { return FALSE;}
  $fp = fopen($fichier, "w");
  if (!$fp){ return $fp;}
  $r = fwrite($fp, $contenu);
  fclose($fp);
  return $r;
}

      function creer_dossier($nom_dossier){
$exist_doss=is_dir($nom_dossier);
if(!$exist_doss){mkdir ($nom_dossier, 0777);
echo"<br>Dossier <b><u>".$nom_dossier." </u></b>Creer avec succes !!<br>";
  }
    }
}
$class= new ClassSql();
$class->list_base();
//$class->list_table("votre_base");
//$class->list_row("votre_base","votre_table");
//$class->creer_dossier("nom_dossier");
}
else{echo "<a href='install.html'>installer Tool Sql Class</a>";}
?>

Conclusion :


-la source n'est pas très "propre" mais les fichiers generés le sont.
-Ne marche avec free.fr(Warning: MySQL_list_dbs() [function.mysql-listdbs-dbs]: Unable to save MySQL query result in....on line 13
).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.