Richieste d'amicizia [php/sql]
Inviato: mar 28 giu 2011, 2:24
Sto lavorando ad un progetto ma sono incappato in alcuni problemini.
Ho bisogno di gestire le richieste d'amicizia da parte degli utenti del sito che sto creando.
Ho la tabella "amici" così composta:
Se è amico stampa "Togli amicizia", se non è amico stampa "Aggiungi Amicizia", se la richiesta è in sospeso stampa "Richiesta in sospeso"
Questa è la parte di codice di aggiunta amicizia:
Cioè inserisce in amico1 l'id conservato nella sessione (data nel login) e in amico2 l'id dell'utente a cui effettuare la richiesta
Questo è il codice per accettare o rifiutare l'amicizia
e questa è la query per controllare se l'utente è amico mio
Ma in quest'ultima c'è un problema.
Cioè non funziona come dovrebbe, come mai ?
Nel senso che se vado a visitare la pagina di un utente NON AMICO mi spunta la scritta "Amicizia in sospeso", come se la funzione ritornasse 0, come mai ?
Sapete aiutarmi ?
Ho bisogno di gestire le richieste d'amicizia da parte degli utenti del sito che sto creando.
Ho la tabella "amici" così composta:
Ho creato la pagina profilo in modo che segnasse al suo interno se l'utente che sta visualizzando la pagina web è amico.amico1 //id dell'utente
amico2 //id dell'utente
accettato //0 per "sospesa", 1 per "accettata"
Se è amico stampa "Togli amicizia", se non è amico stampa "Aggiungi Amicizia", se la richiesta è in sospeso stampa "Richiesta in sospeso"
Questa è la parte di codice di aggiunta amicizia:
Codice: Seleziona tutto
if(is_numeric($id) && $richiesta == "add")
{
$aggiungi="INSERT INTO amici (amico1,amico2,accettato) VALUES ('{$_SESSION['id']}','{$id}',0)";
$ris=mysql_query($aggiungi) or die(mysql_error());
?>
<html>
<head>
<script type="text/javascript">
alert("Richiesta d'amicizia inviata!\nIn attesa di accettazione")
</script>
</head>
</html>
<?php
header("refresh: 1; url=profilo.php?id=".$id);
}
Questo è il codice per accettare o rifiutare l'amicizia
Codice: Seleziona tutto
if(is_numeric($id) && $richiesta == "domanda")
{
if(isset($_POST['accetta'])){
mysql_query("UPDATE amici SET accettato=1 WHERE amico1='{$_SESSION['id']}' AND amico2='{$id}' AND accettato=0") or die(mysql_error());
?>
<html>
<head>
<script type="text/javascript">
alert("Richiesta d'amicizia accettata!")
</script>
</head>
<body>
<p align="center"><a href="javascript:window.close()" >Chiudi</a></p>
</body>
</html>
<?php
}
else
{
mysql_query("DELETE FROM amici WHERE amico1='{$_SESSION['id']}' AND amico2='{$id}' and accettato=0") or die(mysql_error());
?>
<html>
<head>
<script type="text/javascript">
alert("Richiesta d'amicizia rifiutata!")
</script>
</head>
<body>
<a href="javascript:window.close()" >Chiudi</a>
</body>
</html>
<?php
}
Codice: Seleziona tutto
function controlla_amicizia($id)
{
controlla_id($id);
$query="SELECT accettato FROM amici WHERE amico1='{$id}' AND amico2='{$_SESSION['id']}'";
$ris=mysql_query($query) or die(mysql_error());
$riga=mysql_fetch_row($ris);
if($riga[0] == 0)
return 0;
elseif($riga[0] == 1)
return 1;
else
return -1;
}
Cioè non funziona come dovrebbe, come mai ?
Nel senso che se vado a visitare la pagina di un utente NON AMICO mi spunta la scritta "Amicizia in sospeso", come se la funzione ritornasse 0, come mai ?
Sapete aiutarmi ?