-
Problema con If e MySQL
Salve a tutti, per il mio sito stavo sperimentando dei Ranks (Admin e Utente), tutto va bene, finchè voglio far visualizzare il rank nella pagina profilo. Questo e' il problema: nel database ho assegnato a "1" il rank Admin e a "0" il rank Utente. Quando vado a visualizzare il profilo di un utente admin faccio così per trasformare l'1 in Admin:
Codice PHP:
$sql = "SELECT id, user, pass, mail, interessi, msn, web, avatar, rank FROM utenti WHERE user = '$username' ";
$query = mysql_query ($sql, $db) or die (mysql_error());
$rank=$row[rank];
if($rank==0) { $rank1 = 'Utente'; }
if($rank==1) { $rank1 = 'Admin'; }
dove $rank saraà la variabile che conterrà 1 o 0 e $rank1 quella che conterrà Admin o Utente e lo mostrerà nella pagina.
Il problema è che comunque sia il rank dell'utente la variabile mostra 0, mai 1. Un aiutino per piacere?
E poi se avete tempo di rispondere, sapete come posso formattare il testo automaticamente di modo che ogni volta non debba cambiare caratteri come "è" in "egrave"?
-
Codice PHP:
$row=mysql_fetch_assoc($query);
$rank=$row['rank'];
if($rank=='0') { $rank1 = 'Utente'; }
else if($rank=='1') { $rank1 = 'Admin'; }
per l'altra domanda, usa htmlentities()
Ciao!
-
scusa, ma non riesco a capire come inserire il tutto nel codice, ti mostro la parte interessata:
Codice PHP:
if(isset($_GET["invia"]))
{
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$sql = "SELECT id, user, pass, mail, interessi, msn, web, avatar, rank FROM utenti WHERE user = '$username' ";
$query = mysql_query ($sql, $db) or die (mysql_error());
$rank=$row[rank];
if($rank==0) { $rank1 = 'Utente'; }
if($rank==1) { $rank1 = 'Admin'; }
while($row = mysql_fetch_array($query))
{
echo "<center> <br><br><b>Profilo dell'utente ".$row[user]."!</b> <br><br><br><br> <p><img src=".$row[avatar]." width=175 height=200> </p><br><br><table>
<tr><td><b> e-Mail</b>:</td><td> ".$row[mail]."<br></td></tr>
<tr><td><b>Messenger:</b></td><td> ".$row[msn]." <br></td></tr>
<tr><td><b>Sito Web:</b></td><td> ".$row[web]."<br></td></tr>
<tr><td><b>Interessi: </b></td><td>".$row[interessi]."</td></tr>
<tr><td><b>Rank:</b></td><td> ".$rank1."</td></tr></table> </center>";
}
}
else
{
echo "<center><br><br>Inserisci un nome Account valido.</center>";
}
?>
scusa ancora per il disturbo e grazie della risposta.
-
Ho semplicemente modificato una parte di ciò che hai scritto, quindi ti basta sostituire quello che c'è attualmente con quello che ti ho postato.
Ciao!
-
ho fatto e quando vado a cercare l'utente nella pagina dei profili mi porta uno spazio vuoto, comunque vorrei che notassi che il
Codice PHP:
$row=mysql_fetch_assoc($query);
lo trovi più sotto dentro il while ma in "array" perciò chiedevo come dovessi adattare il tutto
-
Non puoi usare un array prima che questo sia creato e popolato!
Cancella le mie modifiche e sposta questo subito dopo l'apertura del while:
$rank=$row['rank'];
if($rank=='0') { $rank1 = 'Utente'; }
else if($rank=='1') { $rank1 = 'Admin'; }
Ciao!
-
appunto, perciò avevo provato anche questo, ed il risultato non cambia...
-
Intanto metti tra apici tutte le chiavi dell'array $row (come ho fatto per 'rank')
Poi posta il codice modificato.
Ciao!
-
A te:
Codice PHP:
if(isset($_GET["invia"]))
{
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$sql = "SELECT id, user, pass, mail, interessi, msn, web, avatar, rank FROM utenti WHERE user = '$username' ";
while($row = mysql_fetch_array($query))
{
$rank=$row['rank'];
if($rank=='0') { $rank1 = 'Utente'; }
else if($rank=='1') { $rank1 = 'Admin'; }
echo "<center> <br><br><b>Profilo dell'utente ".$row['user']."!</b> <br><br><br><br> <p><img src=".$row['avatar']." width=175 height=200> </p><br><br><table>
<tr><td><b> e-Mail</b>:</td><td> ".$row['mail']."<br></td></tr>
<tr><td><b>Messenger:</b></td><td> ".$row['msn']." <br></td></tr>
<tr><td><b>Sito Web:</b></td><td> ".$row['web']."<br></td></tr>
<tr><td><b>Interessi: </b></td><td>".$row['interessi']."</td></tr>
<tr><td><b>Rank:</b></td><td> ".$rank1."</td></tr></table> </center>";
}
}
-
Hai cancellato anche l'esecuzione della query:
$query = mysql_query ($sql, $db) or die (mysql_error());
Ciao!
-
grazie mille tutto risolto! Ancora grazie!:wink: