sábado, 23 de junio de 2012

continue;

Bueno... ueno... eno... *y repeticiones similares por el eco*. Esto esta abandonado desde hace mucho, pero bueno... he tenido motivos por los que no actualizar xD estudios, prácticas, ahora trabajo, el proyecto, vivir... lo normal.

Y bueno, realmente voy a retomarlo por un motivo principal: la cantidad de personas que quieren que les enseñe HTML+PHP+Javascript+SQL. So... a pesar de que preferiría continuar únicamente con actualizaciones de C# y Rom Hacking, como tenía planeado, hace meses que no he podido dedicarle el tiempo necesario (y cuando lo hice, fue intentar sacar la fuente de P3...), y como últimamente no paro con programación y diseño web... pues... ¡pues hala! xDD a retomarlo por donde lo dejé.

Recomiendo que se instale las nuevas versiones de Apache 2.2, de PHP 5, y de MySQL 5. Más que nada, el tutorial tiene su tiempo... y siempre viene bien tenerlo actualizado xD. Los pasos son los mismos, exactamente. ¡Oh!, y más adelante usaremos más módulos de PHP, pero ya los instalaremos conforme los necesitemos ^·^.

En fin, nada más que mencionarlo y... A ver si para este finde puedo empezar a enseñar un poco de HTML, lo básico que vamos a necesitar. Sería HTML 5 pero como aún no tiene soporte con todos los navegadores... intentaremos ir a lo "compatible". Al menos con eso, porque con CSS tal vez enseñe CSS3, que es mas vistoso y... eso xDD

*Ejem*. Nada más por ahora, en breves volveré a actualizar esto~ ^·^

Y ni que decir tiene, que todo lo que ponga por aquí, cualquier duda podéis preguntarme, que sabéis como contactar conmigo de sobra xDD (aunque si es una duda más bien gorda, algo que pueda haber sido fallo mio o cualquier cosa de esas, también se puede poner por aquí, por si alguien más debería verlo)

¡Hasta luego~! :3
sábado, 9 de julio de 2011

Cambio de rumbo~

Aunque no es un "adiós" completo y definitivo a enseñar PHP y MySQL en el blog (y más cosas que iba a enseñar y tal), pero ya que últimamente es a lo único que dedico horas, y los ratos libres que tengo... Pues nada.

En los próximos días, empezaré a mostrar lo que voy haciendo en C#, o más bien cosas de Rom Hacking en general... ya tengo casi completa la estructura de los archivos del Persona 3 Portable, con un equipo a la espera para la traducción...

Y sin embargo aún nos falta la fuente, que es lo más... jodido. Pero vaya, en cuanto tenga el programita para extraer los textos, que vayan haciendo, que yo mientras, haré lo que esté en mi mano con la fuente y demases.

Ya se ha convertido este en el proyecto más... serio xD en el que he estado, aunque tampoco he estado en ninguno con más gente. Pero como por fin tengo a más gente con la que trabajar... es simplemente perfecto :3.

Por lo demás... poco que decir. Tal vez un día comunique la creación de una pagina para las traducciones de mas juegos de Shin Megami Tensei... tal vez. Es una idea que se me ocurrió, y comente a un amigo que va llevando la traducción del Shin Megami Tensei : Strange Journey, y al cual ayudo siempre que puedo, solo que es una idea a pulir, y si no conseguimos mínimo la fuente del P3P, el P3 FES y P4, se quedarían en el aire... xD entre otros tal vez.

En fin :3 puntualmente seguiré con cosas como hasta ahora, pero los próximos posts aseguro que no serán de PHP ni SQL ni mucho menos HTML xDD.


Ta luego~
sábado, 11 de junio de 2011

MySQL Console & Formas de usar SQL con PHP~

Bueno, aprovechando que he estado... esclavizado prácticamente sin parar de hacer consultas, voy a ampliar esto, ahora que no tengo exámenes a los que estudiar ni similares (Tengo proyectos de RomHacking pero eso es otra cosa xD lo llevo a la vez, y ya pondré cosillas al respecto, llevo apuntando un "diario" algún tiempo ^^).

Lo mejor, será acostumbrarse a usar MySQL, nuestra base de datos, desde consola de comandos... muchos programas dan problemas a veces (como a mí me dio el MySQL Control Center... que no me dejaba insertar una base de datos que por consola sí me dejo...), y lo mejor es ahorrarnos problemas.

Para entrar en esta consola, Inicio -> Ejecutar... (si es windows7, basta con ponerlo en el cuadro de búsqueda) -> Escribimos "cmd" sin las comillas, y pulsamos Enter. Está bien, ¿Recuerdas la instalación de MySQL?, pues, tienes que introducir:
cd C:\ruta-completa-a-la-carpeta-de-mysql\bin
(en mi caso, cd "C:\Program Files\MySQL\MySQL Server 5.1\bin". Poned comillas si hay espacios de por medio.)
Ahí debemos escribir lo siguiente:
mysql -u Usuario -pContraseña
Usuario, suele ser root. Contraseña, la que hayas puesto al instalar... y no, no es un error, tiene que estar PEGADA al -p, como en... -p12345.

Y hala, ya estás dentro. Tocaría explicar bastaaantes comandos de SQL, que luego usaremos sobre todo en PHP. Pero vamos, con que recuerdas como entrar, por ahora basta, ciérralo.


Eso sí, mi filosofía es: SQL simple, PHP para complicarlo. Esto es, yo busco la simpleza en las consultas SQL, aunque enseñaré de todo tipo, hasta lo mas chungo que he tenido el placer de encontrar... aunque yo, en lo personal, prefiero que se encargue de "post-procesar" las consultas el PHP.

EJEMPLO:

Tenemos una tabla tal que así:


Id_ProductoNombre_ProductoPrecio
1Algo100
2Otra cosa225
.........

Otra, que indica los clientes que hay:

Id_ClienteNombre
1Alguien
2Otro alguien
......

Y, bueno, tenemos otra más, que indica las compras (Relaciona ambas tablas anteriores... luego lo explico en profundidad):

Id_CompraId_ClienteId_ProductoCantidad
1225
22110
............

Pues... supongamos por un momento, que queremos una lista de qué clientes (Nombres) han comprado algo, QUÉ han comprado (Nombres también), y cuanto han gastado (en TOTAL...).

Bueno... hay 2 formas de asumir esto. Una consulta a varias tablas con SQL, o consultar a una, luego, dentro de ese resultado a otra, y así hasta tener todo relacionado, con PHP.

Suena más simple hacerlo con SQL, ¿Verdad?. Bueno, la consulta sería esta:
SELECT C.Nombre, P.Nombre_Producto, (P.Precio*C2.Cantidad) AS TOTAL FROM Clientes AS C, Productos AS P, Compras_Individuales AS C2 WHERE C2.Id_Cliente=C.Id_Cliente AND C2.Id_Producto=P.Id_Producto;

Marea un poco... pero esto no es nada xD. Si hubiéramos hecho la BD de forma que en una sola compra haya varios productos asignados, habría una tabla más de por medio, y no solo esta consulta no funcionaría, sino que además habría que añadir funciones de grupo u operaciones de conjuntos incluso... (aunque esto último no estoy seguro xD pero vamos, pasanding, que ni lo he explicado aún).

Y bueno, no negaré que tiene sus ventajas currarse bastante la consulta. Esto, en PHP lo podemos mostrar así:
    $query=mysql_query("SELECT C.Nombre, P.Nombre_Producto, (P.Precio*C2.Cantidad) AS TOTAL FROM Clientes AS C, Productos AS P, Compras_Individuales AS C2 WHERE C2.Id_Cliente=C.Id_Cliente AND C2.Id_Producto=P.Id_Producto;") or die(mysql_error());
    while($data=mysql_fetch_array($query)){
        echo "<tr>";
            echo "<td>".$data['Nombre']."</td>";
            echo "<td>".$data['Nombre_Producto']."</td>";
            echo "<td>".$data['TOTAL']."</td>";
        echo "</tr>";
    }
    mysql_free_result($query);

Y punto... (Perdón por tochazos sin explicar, es para que se vean dos puntos de vista distintos... cuando explique más, ya podrás decidir cual de "los dos métodos" prefieres. Según estés más cómodo con PHP o con SQL).

Pero claro... ¿Como sería lo mismo, pero simplificando consultas(Tirando más de PHP)?... Bueno... Es algo "menos eficiente", dado que tiene que hacer más consultas, pero si en esas consultas especificamos los campos, y... bueno, seguíis mis directrices, tampoco se nota. Son consultas simplísimas, tampoco afectan apenas al rendimiento. Aquí veréis:

    $query=mysql_query("SELECT Id_Cliente, Nombre FROM Clientes"));
    while($data=mysql_fetch_array($query)){
     //Aquí tendremos todos los datos, cliente por cliente, así que
     // podemos usar eso para las siguientes consultas.
     $query2=mysql_query("SELECT Id_Producto, Nombre_Producto, Precio FROM Productos");
     while($data2=mysql_fetch_array($query2)){
      //Y aquí tendremos los productos, además del cliente actual de esa iteración.
      // Ya explicaré PHP, no es el momento xD
      $idCli=$data['Id_Cliente'];
      $idProd=$data2['Id_Producto'];
      $query3=mysql_query("SELECT Cantidad FROM Compras_Individuales WHERE Id_Cliente=$idCli AND Id_Producto=$idProd");
      while($data3=mysql_fetch_array($query3)){
       echo "<tr>";
        echo "<td>".$data['Nombre']."</td>";
        echo "<td>".$data2['Nombre_Producto']."</td>";
        $total=$data2['Precio']*$data3['Cantidad'];
        echo "<td>$total</td>";
       echo "</tr>";
      }
      mysql_free_result($query3);
     }
     mysql_free_result($query2);
    }
    mysql_free_result($query);

Parece un tochazo increible ¿verdad...?. Observad como se repiten muchas partes. Es casi todo igual, y solo se complica al manejar las variables en la última consulta. Nada más. Y porque quería ponerlo algo más claro. Os explico como va este.

Veréis, la idea es coger los datos que necesitemos para usar luego... por ejemplo. Hacemos una consulta a Clientes, y cogemos la Id y el Nombre, porque nos piden el Nombre, y la Id la necesitaremos para relacionarlos. Se guardan en variables. Hacemos la siguiente, usando esas variables para el WHERE, si es necesario (en el tocho de antes solo fue necesario en la tercera), y así constantemente. OJO: Cuantas más tablas... menos eficiente es esto. Además, yo uso un poco de cada mundo.

Es decir, aunque prefiera resolver los problemas en PHP, normalmente hago consultas complejas con SQL, para ahorrarme código... Sin embargo, hay cosas que no se me ocurren como hacerlas en SQL sin complicar en exceso la consulta, o simplemente es una consulta muy compleja en sí. Y ahí entra un poco más de PHP.

Aunque la verdad, para empezar, si no quieres complicarte la vida, con PHP, se puede casi... copypastear (con mucho cuidado, muchísimo, eso sí), cosa que "agiliza" las cosas. Aunque es una mala manía a evitar. Para algo están las funciones xD.

En fín, este post ha sido más largo de lo que tenía pensado, así que en el próximo explico como crear una base de datos, como, por ejemplo, la que he usado de ejemplo aquí. Y tambien unas consultas sencillas... algo de sintaxis de SQL.

Un saludo~
lunes, 2 de mayo de 2011

Break;

Ehm... si, me he tomado las vacaciones de semana santa, y un poco más hasta el salón de jerez. Peero ya vuelvo a retomar el ritmo ò_o y a la noche postearé de nuevo, y con una novedad, que algunos ya saben xD.

Pues ea, hasta luego!~
jueves, 14 de abril de 2011

Instalacion Apache + PHP + MySQL ~

Bueno, tal como dije, aquí está el tutorial para instalar y dejar funcionando este pack tan común. Antes de nada decir, que yo he hecho capturas instalando en una máquina virtual con Windows 7, pero los pasos son comunes a todo Windows.

Antes de nada, toca descargar lo necesario.

Apache: http://apache.rediris.es//httpd/binaries/win32/httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
PHP: http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.msi
MySQL:
     - 32bits: http://dev.mysql.com/downloads/mirror.php?id=402098
     - 64bits: http://dev.mysql.com/downloads/mirror.php?id=402100

Y una vez bajado esto, comenzaremos con la instalación de Apache! :3

A ver, para apache, instalación típica, siguiente, acepto condiciones del contrato, siguiente, Y:


Si tenemos un dominio nuestro, propio, hay que ponerlo ahí, pero para pruebas... con localhost basta y sobra, la verdad xD.
Luego sale una ventana, elegid typical, luego elegid la ruta (y recordadla, dejad la que está por defecto si lo preferís).

Siguiente y esperar a que acabe. Apache Done! :3

Ahora, pasamos a instalar PHP. Dejamos que lo instale donde le salga de los mismos, pero (cuidado con el siguiente siguiente siguiente) luego seleccionamos apache 2.2.x module, de una lista que nos muestra.

Nos pedirá que introduzcamos la ruta de la carpeta de configuración de apache. En el caso anterior, lo instalé en la carpeta por defecto, así que queda así la cosa:


En la siguiente pantalla, activamos SOLO las extensiones que veamos necesarias (MySQL por ahora, en nuestro caso), para evitar incompatibilidades, de esta forma:


Y finalizamos la instalación.

Probamos la instalación tanto de apache como de php, añadiendo un archivo index.php en la carpeta htdocs (donde estarán los archivos públicos, los que se verán en el servidor, al entrar desde el navegador de internet... vamos, lo que es la web en sí) de la ruta de instalación de apache (C:\Program Files\Apache Software Foundation\Apache2.2\htdocs por defecto) y reiniciamos el servicio de apache (desde el icono de la barra de sistema, a la izquierda del reloj).

NOTA: Si falla al iniciar, tenemos que modificar el httpd.conf de la carpeta conf de apache,y cambiar las últimas lineas, que ponen:
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir ""
LoadModule php5_module "php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

por:

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\Program Files\PHP\"
LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

Donde C:\Program Files\PHP\ es la ruta donde hayáis instalado PHP.

Esto no ocurre siempre (espero, simplemente yo he tenido mala suerte xD o tal vez sea cosa de ese instalador, que tiene ese fallo puntual), puede ser otro error, si es así comenta y diré la solución a ese error (si errores habré visto... de todo, vamos).

Además, ya que modificamos el httpd.conf (y si no, modifícalo igualmente ^·^U), buscamos:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

y añadimos index.php tras el html, quedando...

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

Esto sirve para que, al cargar un directorio de htdocs, abra automáticamente el archivo con el nombre indicado, index.html por defecto, index.php ahora también. Pero el nombre puede ser cualquiera, todo es como prefieras.

Ahora bien, tenemos que probar si todo va bien aunque apache se haya reiniciado con éxito.

Añadimos el siguiente texto al index.php de la carpeta htdocs:

<?php
 phpinfo();
?>

Tras esto, basta con ir a nuestro navegador favorito, y en la barra de url, escribir "localhost", lo que nos llevará a nuestro index.php, con información de la instalación de php que acabamos de hacer. Good ^·^. ¿Problemas? comentad.

Ya solo nos queda instalar MySQL, que en un sistema limpio no suele dar problemas, así que... Esperemos que no os los dé.

Empezamos, siguiente, acepto contrato bla bla bla, y seleccionamos instalación Custom.
En location (os hablo por experiencia), os recomiendo poner una ruta sin espacios. Como en:


Seguimos y esperamos que se instale. Instalar es fácil, pero hay que tener especial cuidado al configurarlo...

Al acabar esta marcada una opción para lanzar el asistente de configuración. DEJADLO puesto.

Y acabad, claro xD.

En esta configuración, elegid una configuración detallada. Os diré las opciones a elegir, pero si queréis cambiar algo... bajo vuestra propia responsabilidad queda, sobre todo los marcados con un asterisco:

  - Developer Machine (por defecto).
  - Multifunctional Database (por defecto).
*- Por defecto, o si queréis almacenar los datos de mysql en otro lado adelante. At YOUR OWN risk. No lo recomiendo.
  - Decision Support (por defecto).
*- En el siguiente paso, veremos el puerto que usaremos. Es recomendable, si accederemos de forma externa al PC donde estamos instalando MySQL, abrir ese puerto, y añadir por tanto la excepción al firewall. El resto, por defecto.
  - Best Support for Multilingualism. Así almacenará datos en utf8, pudiendo almacenar carácteres de idiomas específicos y tal.
  - Por defecto, y asegúrate que estan activos el "Install As Windows Service" y el "Launch the MySQL server automatically".
*- Bien, password de root. Establece una compleja, alfanumérica a ser posible. Es necesario seguridad en este punto. Y NO actives la cuenta anónima, ni el acceso root externo, a menos que lo veas estrictamente necesario, o sepas lo que haces(at your own risk...).

Y con esto ya habremos acabado. Si se ejecuta sin fallos, perfecto :3 ya está todo.

Y en el próximo post, mencionaré un uso simple del MySQL CC, para manejar las BDs, mencionaré algunos aspectos de configuración de Apache y PHP, por si os resultan necesarias, y tras eso podremos dedicarnos a programar (Al fin... xD).

Haaasta otra~  :3
martes, 12 de abril de 2011

Inicios~

Bueno, como ya harta un poco hacer posts de presentación, este será algo distinto. En este blog, enseñaré (y por tanto quedará aquí como referencia) programación, y diversas cosas que vea oportunas (For example, arreglar cosas como el problema de cuelgue de los videos del FF4 Complete en la PSP, que a veces a la gente le cuesta encontrarlo o saber seguir adecuadamente los pasos). La idea viene de la necesidad de tener un equipo ayudandome en muchos de mis proyectos xD ergo, como por A o por B, no saben ciertos aspectos, o no encuentran, etc, etc... Aquí estará todo.

Obviamente, no es solo para ellos, pero claro, mas enfocado a eso xD. Por tanto, tras este post empezaré con la instalación y configuración de un servidor apache, y luego añadirle PHP y MySQL, que será lo primero que empezaré a enseñar aquí. HTML, no creo verlo necesario... pero si acaso, algún post caerá, para tener una pequeña referencia por si los despistados. Tal vez ponga algunas páginas de referencia para CSS o algo, pero no tengo planeado enseñarlo en profundidad, al menos por ahora. Javascript, tal vez lo toque mas adelante también, no es mala idea, pero no es necesario de momento.

Eso respecto a web, luego, mas adelante, empezaré con C#, para usarlo en Microsoft Visual Studio 2010, que es lo que actualmente estoy usando con mayor frecuencia, ergo lo usaré para mis proyectos. Además, también abordaré el engine Unity, para algunos proyectos de desarrollo de videojuegos :3.

Sin embargo, esto no significa que nadie pueda pedirme algo en especial, que no tengo problema en enseñar a hacer otras cosas, como actualizar CFs o cosas así. Tan solo poner un comentario, y ya responderé algo al respecto ^·^.

Bueno, nada más que decir, en cuanto tenga listo el tutorial para instalar Apache + PHP + MySQL lo pondré. Y si alguno pregunta "¿Por qué no usar XAMPP?"... Fácil, lo prefiero asi xD hay que saber hacer las cosas, no que te lo den todo hecho, es mejor a la larga. Sobre todo cuando empieza a fallar el XAMPP.

En fin, hasta otra~

Seguidores

Etiquetas

About Me

Mi foto
Myaku Farron
Ver todo mi perfil
Hecho por Myaku. Con la tecnología de Blogger.