Foros del Web » Programando para Internet » PHP »

[APORTE] ClMaker v1.0

Estas en el tema de [APORTE] ClMaker v1.0 en el foro de PHP en Foros del Web. Buenas! Hoy vengo con otro pequeñisimo aporte pero supongo que les va a ayudar a algunos a ahorrar codigo... Al iniciar el script que creara ...
  #1 (permalink)  
Antiguo 02/10/2010, 00:44
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
[APORTE] ClMaker v1.0

Buenas! Hoy vengo con otro pequeñisimo aporte pero supongo que les va a ayudar a algunos a ahorrar codigo...
Al iniciar el script que creara el archivo de la clase, va a crear 3 funciones; en una, despues de especificar el nombre de las tablas que usaremos, solo selecciona las 4 primeras letras del nombre de cada tabla especificada. De esta forma, podemos ejecutar una query de una tabla especificando solamente sus 4 primeras letras, seguido de "atributos" especiales para la query, como por ejemplo WHERE

La segunda funcion sirve para poder hacer un WHILE, es decir, mientras hayan 'registros', repetimos el bucle una y otra vez

La tercera funcion sirve para mostrar cierta 'row' del registro actual mientras el bucle while se repite..

Les muestro el codigo y luego explico como usarlo:

index.php
Código PHP:
Ver original
  1. <?php
  2. //Confirmemos que exista crear.php
  3. if (!file_exists('crear.php')) {
  4. ?>
  5. <title>Crear.php no existe</title>
  6. <center>
  7.     <br><br>
  8.     <b>El archivo crear.php es necesario para proceder con la creacion de la
  9.     clase</b>
  10. </center>
  11. <?php
  12. die();
  13. }
  14. ?>
  15. <title>Bienvenido a ClMaker</title>
  16. <?php
  17. //Si el form no se ha enviado...
  18. if (empty($_POST)) {
  19. ?>
  20. <center>
  21.     <h2>Bienvenido a ClMaker</h2>
  22.     <b>Para proceder, llene el siguiente formulario:</b><br><br><br><br>
  23.     <form method="post" action="">
  24.         <font size="4">Nombre del archivo:</font><br>
  25.         <input type="text" name="nom_archivo" size="30">
  26.         <br><font size="2">(Donde se guardara la clase)</font><br><br>
  27.  
  28.         <font size="4">Host:</font><br>
  29.         <input type="text" name="dbhost" size="30" value="localhost">
  30.         <br><font size="2">Posiblemente no necesites cambiar esto</font><br><br>
  31.  
  32.         <font size="4">Nombre de la db: </font><br>
  33.         <input type="text" name="dbnombre" size="30">
  34.         <br><br>
  35.  
  36.         <font size="4">Usuario de la db:</font><br>
  37.         <input type="text" name="dbuser" size="30">
  38.         <br><br>
  39.  
  40.         <font size="4">Pass de la db:</font><br>
  41.         <input type="text" name="dbpass" size="30">
  42.         <br><br>
  43.  
  44.         <font size="4">Nombre de las tablas que usaras:</font><br>
  45.         <input type="text" name="tablas" size="30">
  46.         <br><font size="2">Separa cada una por coma y un espacio, ejemplo:<br>
  47.         Tabla1, tabla2, tabla3...</font><br><br>
  48.         <button type="submit">Aceptar</button>
  49.     </form>
  50. </center>
  51.  
  52. <?php
  53. }else{
  54.     $file_form = $_POST['nom_archivo'];
  55.     $dbhost = $_POST['dbhost'];
  56.     $dbnombre = $_POST['dbnombre'];
  57.     $dbuser = $_POST['dbuser'];
  58.     $dbpass = $_POST['dbpass'];
  59.     $tablas = $_POST['tablas'];
  60.  
  61.     //Checamos que no hayan campos vacios
  62.     if (empty($file_form)) {
  63.         $error[] = 'Campo "nombre del archivo" vacio';
  64.     }
  65.     if (empty($dbhost)) {
  66.         $error[] = 'Campo host vacio';
  67.     }
  68.     if (empty($dbnombre)) {
  69.         $error[] = 'Campo nombre de la db vacio';
  70.     }
  71.     if (empty($dbuser)) {
  72.         $error[] = 'Campo de usuario de la db vacio';
  73.     }
  74.     if (empty($tablas)) {
  75.         $error[] = 'Campo de tablas vacio';
  76.     }
  77.  
  78.     //Si hubo uno o mas errores, lo mostramos...
  79.     if ($error) {
  80.         echo '<center><br><br>';
  81.         foreach ($error as $error) {
  82.             echo $error;
  83.             echo '<br>';
  84.         }
  85.         exit();
  86.     }
  87.  
  88.     //Si hasta ahora no hay errores, continuamos...
  89.     //Probamos que la conexion funcione...
  90.     $conexion_temp = @mysql_connect($dbhost,$dbuser,$dbpass) or die ('<center><br><br>
  91.    Imposible conectar al host con los datos proporcionados</center>');
  92.    
  93.     //Conectamos a la db...
  94.     @mysql_select_db($dbnombre,$conexion_temp) or die ('<center><br><br>Imposible conectar
  95.    a la db con los datos proporcionados</center>');
  96.    
  97.     //Si todo fue correcto, cargamos un array con cada elemento
  98.     //(separado por comas) que se haya introducido en el campo
  99.     //de tablas
  100.     $array = explode(', ', $tablas);
  101.    
  102.     //Incluimos el archivo necesario
  103.     include('crear.php');
  104.  
  105.     //Creamos el archivo...
  106.     $abrir = fopen($file_form.'.php','w');
  107.     fwrite($abrir,$archivo);
  108.     fclose($abrir);
  109.    
  110.     //Todo bien, avisamos :)
  111. ?>
  112. <center>
  113.     <br><br><br>
  114.     <b>Creacion de la clase concluida exitosamente!!!<br>
  115.     Puede ver el resultado en su archivo "<?php echo $file_form; ?>.php"
  116.     </b>
  117. </center>
  118.  
  119. <?php
  120. }
  121. ?>

crear.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. $archivo = "<?php\r\n\r\n";
  4. $archivo.= "//Datos de conexion\r\n";
  5. $archivo.= "define('DBHOST', '$dbhost');\r\n";
  6. $archivo.= "define('DBUSER', '$dbuser');\r\n";
  7. $archivo.= "define('DBPASS', '$dbpass');\r\n";
  8. $archivo.= "define('DBTABLA', '$dbnombre');\r\n\r\n";
  9. $archivo.= "//Conectamos\r\n";
  10. $archivo.= '$conexion = mysql_connect(DBHOST,DBUSER,DBPASS);'."\r\n";
  11. $archivo.= "//Seleccionamos la db\r\n";
  12. $archivo.= 'mysql_select_db(DBTABLA,$conexion);'."\r\n\r\n//Comienza la clase\r\n";
  13. $archivo.= 'class Query {'."\r\n";
  14. $archivo.= '    public function query($var1=null, $var2=null) {'."\r\n";
  15. $archivo.= '        if ($var1=='."'".substr($array[0], 0, 4)."') {\r\n";
  16. $archivo.= '            $query = mysql_query("SELECT * FROM '.$array[0].' $var2");'."\r\n";
  17.  
  18. array_shift($array);
  19. foreach ($array as $array1) {
  20.     $archivo.= '        }elseif ($var1=='."'".substr($array1, 0, 4)."') {\r\n";
  21.     $archivo.= '            $query = mysql_query("SELECT * FROM '.$array1.' $var2");'."\r\n";
  22. }
  23.  
  24. $archivo.= "        }else{\r\n";
  25. $archivo.= "            echo '<center>Primer valor incorrecto</center>;';\r\n";
  26. $archivo.= "        }\r\n";
  27. $archivo.= '    $this->query = mysql_query($query);'."\r\n}\r\n\r\n";
  28. $archivo.= '    public function ejec() {'."\r\n";
  29. $archivo.= '        $this->row = mysql_fetch_assoc($this->query);'."\r\n";
  30. $archivo.= '        return ($this->row) ? true : false;'."\r\n    }\r\n\r\n";
  31. $archivo.= '    public function impr($var) {'."\r\n";
  32. $archivo.= '        return $this->row[$var];'."\r\n    }\r\n}";
  33. $archivo.= "\r\n\r\n?>";
  34. ?>

Primero tienen que ejecutar el index para ajustar la clase respecto a sus datos del hosting y las tablas a usar

Despues, el uso de la misma:
Primero, creamos nuevo objeto
$eje = new Query();

Despues, ejecutamos una query hacia cierta tabla, en este caso, usare la tabla 'prueba' con una sentencia WHERE
$eje->query('prue', "WHERE nombre='prueba'");

Ahora, el bucle, seguido de lo que mostrare;
while ($eje->ejec()) {
echo $eje->impr('nombre');
}

Y listo! Asi quedaria la ejecucion completa;
Código PHP:
$eje = new Query();
$eje->query('prue'"WHERE nombre='prueba'");
while (
$eje->ejec()) {
    echo 
$eje->impr('nombre'); //Quedaria como $row['nombre'], gracias a impr()
    
echo '<br>'//Un salto de linea en html

Espero se entienda y sea util
Saludos! :D
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:27.