Accedemos al servidor phpMyAdmin en 192.168.2.25/phpmyadmin con las credenciales dam1:dam1mysql para crear la base de datos del proyecto Conecta4.
Estructura de la base de datos
Se crea una base de datos individual para cada alumno. Las tablas necesarias son:
Tabla Partida:
| Campo | Tipo | Descripción |
|---|---|---|
| id | INT autoincremental | Clave primaria |
| jugador1 | VARCHAR(1) | Identificador del jugador 1 |
| jugador2 | VARCHAR(1) | Identificador del jugador 2 |
| fecha | DATETIME | Fecha y hora de la partida |
Tabla Movimientos:
| Campo | Tipo | Descripción |
|---|---|---|
| id | INT autoincremental | Clave primaria |
| turno | VARCHAR(1) | Jugador que realiza el movimiento |
| fila | INT | Fila del movimiento |
| columna | INT | Columna del movimiento |
| id_partida | INT | Clave ajena a Partida |
Para insertar registros de prueba se usa la función NOW() para los timestamps.

Conexión desde C en Windows
Para conectarse desde C en Windows hay que descargar mysql-connector-c-6.1.5-win32 e incluir los directorios correspondientes en las opciones del compilador de CodeBlocks.

Código de conexión
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
int main()
{
char *servidor = "192.168.2.25";
char *usuario = "dam1";
char *password = "dam1mysql";
char *bd = "dam1_inazio";
MYSQL *conexion = mysql_init(NULL);
MYSQL_RES *resultado;
MYSQL_ROW registro;
unsigned int num_campos;
int i;
char *consulta = "SELECT * FROM movimientos;";
if (conexion == NULL) {
fprintf(stderr, "Fallo en inicialización\n");
return 0;
}
if (mysql_real_connect(conexion, servidor, usuario, password, bd, 0, NULL, 0) == NULL) {
fprintf(stderr, "Error conexión: %s\n", mysql_error(conexion));
return 0;
}
if (mysql_query(conexion, consulta) != 0) {
fprintf(stderr, "Consulta fallida\n");
return 0;
}
if ((resultado = mysql_use_result(conexion)) == NULL) {
fprintf(stderr, "Error obtención resultado\n");
return 0;
}
num_campos = mysql_num_fields(resultado);
while ((registro = mysql_fetch_row(resultado)) != NULL) {
for (i = 0; i < num_campos; i++) {
fprintf(stdout, "%s | ", registro[i]);
}
fprintf(stdout, "\n");
}
mysql_free_result(resultado);
mysql_close(conexion);
return 0;
}
¡Salud y coding!