ho una piccola idea, ma non so quanto sia più vantaggiosa di quella che c'è già..
ascolta: la tabella disponibilità la fai con tre colonne: una ID (che diventa la chiave, in quanto NON indica più l'ID del giocatore che ha dato disponibilità), una con il timestamp del momento in cui vuoi giocare e un'ultima così strutturata:
ID del giocatore, seguito da una lettera (A per "gioco", B per "non gioco", C per "offline") e da un separatore..
esempio:
Codice:
ID ORA DISPONIBILITA
-------------------------------------------
1 17 / 08 / 2008 @ 15:00 2A|1C
2 24 / 09 / 2008 @ 19:00 1A|2A
questo significa che il 17 agosto alle 3 pm il giocatore 2 (ciccio) è disponibile a giocare, mentre il giocatore 1 (paolino) non si connetterà.
stesso discorso per il secondo appuntamento, ma questa volta sia paolino che ciccio sono disponibili a giocare..
ora, con il php ti basta fare una cosetta semplice - semplice:
Codice PHP:
<?php
# ti connetti al db, scegli la tabella.. insomma, fai quelle cose lì..
$id = $_GET['id']; // recuperi l'id dell'incontro.. per ora fai finta che sia 1..
$query = mysql_query("SELECT * FROM disponibilita WHERE id = $id LIMIT 1");
# estrai tutti i tuoi dati con comodo, ma soprattutto mi interessa questo:
$dati = mysql_result($query, "disponibilita");
# ora fai questo:
$disponibilita_utenti = explode("|", $dati);
# se ora fai il print_r() di questa variabile vedrai uscire qualcosa del tipo:
# Array (
# 0 => "2A";
# 1 => "1C";
# );
# Ora ti basta separare l'id dell'utente e la lettera che indica la disponibilità (facile, perchè sai che i caratteri dell'id sono tutti tranne l'ultimo!) e il gioco è fatto!
?>
spero che vada bene: ho scritto un po' in fretta..