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

Soyez le premier à donner votre avis sur cette source.

Vue 6 726 fois - Téléchargée 641 fois

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

Ajouter un commentaire

Commentaires

jpwowo
Messages postés
2
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2008
-
Bonjour, j'essai ce srcipt sur un serveur dédié kimsufi et j'ai une erreur 500 à l'éxécution des scripts générés
j'ai vu qu'il y a vait une différence entre php4 et 5 mais ça dépasse mes cométences pour corriger
microalexx
Messages postés
12
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2007
-
Bonjour,

La définition des propriétés dans les class est différente entre php 4 et php 5

php 4 :
var une_prop = 'utilise le mot clé var';

php 5 :
private une_prop = 'utilise le mot clé private';
public une_prop = 'utilise le mot clé public';

Avec php 5 on choisi la porté des propriétés.

Cordialement,

.µAlexx.
psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
-
Pour le pb de mysql_list_dbs(), essaye l'alternative mysql_query("SHOW DATABASES;");
cs_ampeg
Messages postés
18
Date d'inscription
jeudi 19 octobre 2000
Statut
Membre
Dernière intervention
15 août 2006
-
moi je suis sur wamp donc php5 et ça ne marche pas j'ai regardé mais je n'ai pas trouvé. y a t-il quelques choses à changer dans php.ini
arboretom
Messages postés
3
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
14 septembre 2006
-
tester uniquement avec PHP Version 4.4.1RC2-dev

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.