I problemi più grossi riguardano queste due righe:
Codice PHP:
$nome = mysql_query("SELECT nome_utente FROM iscritti WHERE id_utente='$id'") or die('Errore: ' .mysql_error());
...
if ($nome == $row['nome_uploader'])
Nella prima inizializzi $nome al risultato di un interrogazione alla base di dati, nell'altra controlli se la stringa conenuta in $row['nome_uploader'] è uguale a $nome, il che è sempre falso perché una stringa non potrà mai essere uguale ad un record set restituito da mysql_query.
Ci sono poi diverse altri aspetti migliorabili:
- non usare mai l'operatore di soppressione degli errori (la @): in fase di sviluppo se ci sono errori è bene che ti siano mostrati, in fase di produzione non ci devono essere errori, dunque è inutile
- non ha senso recuperare tutte le righe di una tabella (mi riferisco a SELECT * FROM uploads) solo per poi effettuare un ciclo per escluderne alcune, è molto più efficiente andare a recuperare solo le righe che interessano aggiungendo una clausola WHERE
- usa nomi pertinenti per le variabili, ad esempio mysql_query restituisce un record set o result, non un nome o una query
- le funzioni mysql_* sono deprecate, andrebbero sostituite con mysqli o PDO
Quindi:
Codice PHP:
session_start();
include_once 'db/functions.php';
$id = $_SESSION['id'];
// Redirect se il login non è stato effettuato
if ($_SESSION['login'] == false) {
header("location:login.php");
}
// Recupera il nome utente
$query = "SELECT nome_utente FROM iscritti WHERE id_utente='$id'";
$result = mysql_query($query) or die('Errore: ' . mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC) or die("Errore: Nessun utente con id $id");
$nome_utente = $row['nome_utente'];
// Recupera i file caricati dall'utente
$query = "SELECT * FROM uploads WHERE nome_uploader='$nome_utente'";
$result = mysql_query($query) or die(mysql_error());
// Mostra i file caricati dall'utente
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<tr><td>Nome File: ".$row['nome_file']."Link File:".$row['url_file']"</td></tr>\n";
}
Potrebbero esserci degli errori di sintassi, quindi ti invito a controllare.