Newsgroup: it.comp.www.php
Titolo: quale funzione usare?

Ho 2 tabelle....
// tabella1
ID_tabella1
ID_tabella2
utente
password_utente
// tabella2
ID_tabella2
ID_tabella1
ora_connessione
data_connessione
voglio sapere tutte le volte che si e' connesso l'utente con ID_tabella1=1
Ecco cosa ho fatto...... ma non riesco ad andare avanti... chi mi aiuta???
<?php
$connessione = @mysql_connect("localhost", "user", "password")
        or die("ERRORE!");
$nome_DB = "mydb";
$nome_tabella1 = "tabella1";
$db = @mysql_select_db($nome_DB, $connessione)
        or die("Errore.");
$sql = "SELECT * FROM $nome_tabella
        WHERE ID_tabella1 = $utente1 "; // valore di $utente1 = 1
$risultato = @mysql_query($sql, $connessione)
        or die("Errore..");
$num = mysql_numrows($risultato);
if ($num != 0) {
$dati1 = mysql_fetch_array($risultato);
} else {
header("Location: 
http://www.mioweb/errore.html
");
        exit;
}
// vado a leggere quale ID cercare nella tabella 2 e lo memorizzo in
$utente2
$utente2 = $dati1["ID_tabella2"]
// ripeto la connessione, ma questa volta apro la tabella2
$connessione = @mysql_connect("localhost", "user", "password")
        or die("ERRORE!");
$nome_DB = "mydb";
$nome_tabella2 = "tabella2";
$db = @mysql_select_db($nome_DB, $connessione)
        or die("Errore.");
$sql = "SELECT * FROM $nome_tabella
        WHERE ID_tabella2 = $utente2 ";
$risultato = @mysql_query($sql, $connessione)
        or die("Errore..");
$num = mysql_numrows($risultato);
if ($num != 0) {
$dati2 = mysql_fetch_array($risultato);
} else {
header("Location: 
http://www.mioweb/errore.html
");
        exit;
}
// adesso posso leggere tutti i dati della tabella 2
echo $dati["ora_connessione"];
echo $dati[data_connessione];
// ma ho letto solo la prima connessione...
e se l'utente con ID_tabella1 = 1, si e' connesso 10 volte, come faccio a
trovare le altre 9???
grazie... per i suggerimenti.. credo di essere stato chiaro...
Simon

C'è un po' di confusione. Sulla tabella1 hai gli utenti, sulla tabella2 hai
le connessioni e l'id dell'utente che si è connesso.
NON ti serve un campo correlato nella tabella 1 che rimandi alla tabella 2!
Anzi esso è privo di senso, proprio perché un utente si connette PIU' volte,
non una volta sola! Cioè hai:
1 utente --> n connessioni
la relazione è 1 a molti tra tabella1 e tabella2: a 1 utente corrispondono
MOLTE connessioni, e non viceversa!
Invece nella struttura da te proposta si ha:
1 utente --> molte connessioni = ok
1 connessione --> molti utenti = ?!
Quindi
1. togli il campo ID_tabella2 dalla tabella1. Non serve.
2. Se sai già che l'utente che vuoi cercare ha l'id 1 fai UNA SOLA semplice
query su tabella2:
select * from tabella2 where id_utente = 1

 ha scritto nel messaggio
news:9mflqp$gmv$1...@newsfeed.cineca.it...


 ha scritto nel messaggio
news:9mflqp$gmv$1...@newsfeed.cineca.it...


// tabella1
ID_tabella1 (primary key)
utente
password_utente
// tabella2
ID_tabella2 (primary key)
ID_tabella1
ora_connessione
data_connessione
<?php
$connessione = @mysql_connect("localhost", "user", "password")
        or die("ERRORE!");
$nome_DB = "mydb";
$db = @mysql_select_db($nome_DB, $connessione)
        or die("Errore.");
$sql = "SELECT * FROM tabella2
        WHERE ID_tabella1 = $utente1 "; // valore di $utente1 = 1
$risultato = @mysql_query($sql, $connessione)
        or die("Errore..");
$num = mysql_numrows($risultato);
if ($num != 0) {
   echo = "<p>L'utente si &egrave; connesso $num volte!<br>";
   while($dati = mysql_fetch_array($risultato)){
      echo "$dati[ora_connessione]; echo $dati[data_connessione]<br>";
   }
}
else {
header("Location: 
http://www.mioweb/errore.html
");
        exit;
}
?>
Attento a come ho modificato la struttura delle tabelle.
mysql_fetch_array trasforma in un array i vari campi di UN record della
tabella. Per scorrerli tutti devi usare while con questo senso: finché
esiste un record da trasformare in array...:
while($dati=mysql_fetch_array($risultato)){
echo "stampa i vari campi del record";
}
Un'altra cosa. Nell'esempio che hai fatto, fai due volte la connessione
dichiarando due volte i vari parametri. Ma una volta impostata la variabile
$connessione, la puoi usare finché vuoi per tutto lo script, senza bisogno
di ridichiararla. Volta per volta passi la query SQL che ti serve
richiamando $connessione.
Matteo

 ha scritto nel messaggio
news:9mfnf4$hf1$1...@newsfeed.cineca.it...


 ha scritto nel messaggio
news:9mfnf4$hf1$1...@newsfeed.cineca.it...


la seconda volta non mi da piu' nulla......
La seconda volta di cosa? Cosa vuoi ottenere esattamente?