Salve ragazzi. Il problema è il seguente. Ho tre tabelle, che memorizzano dati di clienti, eventi e ordini. Vi mostro la struttura. La prima, utenti:
CREATE TABLE `utenti` (
`utente_id` int(3) NOT NULL auto_increment,
`username` varchar(30) NOT NULL default '',
`password` varchar(34) NOT NULL,
`confermapassword` varchar(34) NOT NULL,
`nome` varchar(30) NOT NULL default '',
`cognome` varchar(30) NOT NULL default '',
`giorno` int(2) NOT NULL default '',
`mese` int(2) NOT NULL default '',
`anno` int(4) NOT NULL default '',
`cap` int(10) NOT NULL default '',
`provincia` varchar(30) NOT NULL default '',
`indirizzo` varchar(30) NOT NULL default '',
`civico` int(5) NOT NULL default '',
`mail` char(255) NOT NULL default '',
`data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`ip` char(15) NOT NULL default '',
PRIMARY KEY (`utente_id`),
UNIQUE KEY `id` (`utente_id`),
KEY `id_2` (`utente_id`)
)
La seconda, eventi:
CREATE TABLE `eventi` (
`event_id` int(5) unsigned NOT NULL auto_increment,
`evento` text NOT NULL,
`luogo` text NOT NULL,
`dataevento` varchar(50) NOT NULL default '',
`ora` varchar(50) NOT NULL default '',
`descrizione` text NOT NULL,
`disponibilita` int(3),
`prezzo` decimal (5,2),
`autore` varchar(50) NOT NULL default '',
`data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`nome` varchar(50) NOT NULL default '',
`size` varchar(25) NOT NULL default '',
`type` varchar(25) NOT NULL default '',
`immagine` longblob NOT NULL,
`pub` int(1) NOT NULL default '0',
PRIMARY KEY (`event_id`)
)
La terza, ordini:
CREATE TABLE `ordini` (
`ordine_id` int(5) NOT NULL auto_increment,
`utente_id` int(5) NOT NULL,
`event_id` int(5) NOT NULL,
`numero` int(5),
`totale` decimal (5,2),
`data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`ordine_id`)
)
Come vedete nell'ultima ho i campi che mettono in relazione le tre tabelle. In questo modo vorrei ottenere, in una pagina, tutti i dati relativi agli acquisti effettuati da un determinato utente. Ad esempio, l'utente 1 che eventi ha acquistato, quanti biglietti per singolo evento, il costo totale. La query sarebbe questa, ma da un problema.
Il problema è semplice, l'esecuzione di questa query mi da solo un risultato, il primo acquisto effettuato da un determinato utente. Dal primo in poi nulla. Esce fuori solo il primo, gli altri eventualmente fatti è come se non esistano all'interno del database. Come mai? Io vorrei che uscisse fuori la lista di tutti gli ordini effettuati, con nome e cognome dell'utente, la sua via, numero civico, eventi acquistati, numero biglietti per singolo evento, totale costo dei biglietti acquistati per ogni singolo evento.Codice PHP:
<?php
include("config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
if(empty($_GET["id"])){
echo"Non hai selezionato nulla";
}
else{
$dati = mysql_query("SELECT utenti.*, eventi.*, ordini.*
FROM utenti
INNER JOIN ordini ON ordini.utente_id = utenti.utente_id
INNER JOIN eventi ON eventi.event_id = ordini.event_id
WHERE utenti.utente_id ='".$_GET['id']."'") or die( mysql_error() . "
" . $sql);
$array = mysql_fetch_array($dati);
echo "<h3>Evento acquistato</h3> $array[evento]
";
echo "<h3>Biglietti acquistati</h3> $array[numero]
";
echo "<h3>Costo totale:</h3> $array[totale]
";
echo "Acquistato il ".substr($array ['dataora'],0,10)." alle ". substr($array ['dataora'],11,5);
mysql_close();
}
?>
Perchè non salta fuori, dove sto sbagliando?