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
<?php //Confirmemos que exista crear.php ?> <title>Crear.php no existe</title> <center> <br><br> <b>El archivo crear.php es necesario para proceder con la creacion de la clase</b> </center> <?php } ?> <title>Bienvenido a ClMaker</title> <?php //Si el form no se ha enviado... ?> <center> <h2>Bienvenido a ClMaker</h2> <b>Para proceder, llene el siguiente formulario:</b><br><br><br><br> <form method="post" action=""> <font size="4">Nombre del archivo:</font><br> <input type="text" name="nom_archivo" size="30"> <br><font size="2">(Donde se guardara la clase)</font><br><br> <font size="4">Host:</font><br> <input type="text" name="dbhost" size="30" value="localhost"> <br><font size="2">Posiblemente no necesites cambiar esto</font><br><br> <font size="4">Nombre de la db: </font><br> <input type="text" name="dbnombre" size="30"> <br><br> <font size="4">Usuario de la db:</font><br> <input type="text" name="dbuser" size="30"> <br><br> <font size="4">Pass de la db:</font><br> <input type="text" name="dbpass" size="30"> <br><br> <font size="4">Nombre de las tablas que usaras:</font><br> <input type="text" name="tablas" size="30"> <br><font size="2">Separa cada una por coma y un espacio, ejemplo:<br> Tabla1, tabla2, tabla3...</font><br><br> <button type="submit">Aceptar</button> </form> </center> <?php }else{ $file_form = $_POST['nom_archivo']; $dbhost = $_POST['dbhost']; $dbnombre = $_POST['dbnombre']; $dbuser = $_POST['dbuser']; $dbpass = $_POST['dbpass']; $tablas = $_POST['tablas']; //Checamos que no hayan campos vacios $error[] = 'Campo "nombre del archivo" vacio'; } $error[] = 'Campo host vacio'; } $error[] = 'Campo nombre de la db vacio'; } $error[] = 'Campo de usuario de la db vacio'; } $error[] = 'Campo de tablas vacio'; } //Si hubo uno o mas errores, lo mostramos... if ($error) { echo '<center><br><br>'; foreach ($error as $error) { echo $error; echo '<br>'; } } //Si hasta ahora no hay errores, continuamos... //Probamos que la conexion funcione... Imposible conectar al host con los datos proporcionados</center>'); //Conectamos a la db... a la db con los datos proporcionados</center>'); //Si todo fue correcto, cargamos un array con cada elemento //(separado por comas) que se haya introducido en el campo //de tablas //Incluimos el archivo necesario include('crear.php'); //Creamos el archivo... //Todo bien, avisamos :) ?> <center> <br><br><br> <b>Creacion de la clase concluida exitosamente!!!<br> Puede ver el resultado en su archivo "<?php echo $file_form; ?>.php" </b> </center> <?php } ?>
crear.php
Código PHP:
Ver original
<?php $archivo = "<?php\r\n\r\n"; $archivo.= "//Datos de conexion\r\n"; $archivo.= "define('DBHOST', '$dbhost');\r\n"; $archivo.= "define('DBUSER', '$dbuser');\r\n"; $archivo.= "define('DBPASS', '$dbpass');\r\n"; $archivo.= "define('DBTABLA', '$dbnombre');\r\n\r\n"; $archivo.= "//Conectamos\r\n"; $archivo.= '$conexion = mysql_connect(DBHOST,DBUSER,DBPASS);'."\r\n"; $archivo.= "//Seleccionamos la db\r\n"; $archivo.= 'mysql_select_db(DBTABLA,$conexion);'."\r\n\r\n//Comienza la clase\r\n"; $archivo.= 'class Query {'."\r\n"; $archivo.= ' public function query($var1=null, $var2=null) {'."\r\n"; $archivo.= ' $query = mysql_query("SELECT * FROM '.$array[0].' $var2");'."\r\n"; foreach ($array as $array1) { $archivo.= ' $query = mysql_query("SELECT * FROM '.$array1.' $var2");'."\r\n"; } $archivo.= " }else{\r\n"; $archivo.= " echo '<center>Primer valor incorrecto</center>;';\r\n"; $archivo.= " }\r\n"; $archivo.= ' $this->query = mysql_query($query);'."\r\n}\r\n\r\n"; $archivo.= ' public function ejec() {'."\r\n"; $archivo.= ' $this->row = mysql_fetch_assoc($this->query);'."\r\n"; $archivo.= ' return ($this->row) ? true : false;'."\r\n }\r\n\r\n"; $archivo.= ' public function impr($var) {'."\r\n"; $archivo.= ' return $this->row[$var];'."\r\n }\r\n}"; $archivo.= "\r\n\r\n?>"; ?>
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
}
Saludos! :D