Gestione amicizie

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
Ciao a tutti, ho un sito con la possibilità di registrare utenti e gli utenti possono diventare amici di altri utenti facendo una richiesta di amicizia.
Ho una pagina php che mi stampa tutti gli utenti registrati al sito in una tabella, per ogni utente viene visualizzato un bottone in base al fatto che due utenti siano già amici (bottone Rimuovi amicizia), non siano ancora amici (bottone Richiedi amicizia) o siano in attesa (bottone In attesa).
Il mio problema è che non riesco a gestire quale bottone viene cliccato. Cioè potrei aver cliccato il bottone Richiedi amicizia relativo all'utente Mario oppure relativo all'utente Chiara. In base a questo invio la richiesta all'utente giusto.

La tabella delle amicizie è fatta in questo modo:

id | richiedente | accettante | stato

dove:
- id è un auto incremet ed è chiave
- richiedente è l'username dell'utente che ha richiesto l'amicizia
- accettante è l'username dell'utente che ha ricevuto la richiesta
- stato può essere:
* 0 - richiesta in attesa di accettazione/rifiuto
* 1 - richiesta accettata (quindi gli utenti sono amici)
* -1 - richiesta rifiutata (in seguito rimuovo il record)​

Ho scritto questo codice ma non va.. Ci sono degli errori:
- Mi da questa Notice: Undefined index: sesso
- non visualizza il bottone corretto ma sempre Richiedi amicizia
- quando clicco su un bottone Richiedi amicizia non stampa il <p>Richiedi amicizia a ".$user_target."</p>, non fa nulla

PHP:
<?php
  $utente = $_SESSION['username'];
  
  $query = "SELECT * FROM amicizie WHERE richiedente = '$utente' OR accettante = '$utente'";
  $result = mysql_query($query) or die(mysql_error());  
  $amicizie = array();
  while($row = mysql_fetch_assoc($result)) {
     if($row['richiedente'] == $utente) {
        $key = $row['accettante'];
     }
     else {
        $key = $row['richiedente'];
     } 
     $amicizie[$key] = $row['stato'];
  }  
                                
  $query1 = "SELECT id, user, nome, cognome FROM users WHERE user<>'" .$utente. "'";
  $result1 = mysql_query($query1);
  
  while($row1 = mysql_fetch_array($result1)) {
       echo "<tr>
                 <td>$row1[id]</td>  
                 <td>$row1[nome]</td>
                 <td>$row1[cognome]</td> 
                 <td>$row1[user]</td>";
      echo "<form action=\"\" method=\"POST\">";
      echo "<input type=\"hidden\" name=\"".$row1['user']."\" value=\"" .$row1['id']. "\">";
      if(!isset($amicizie[$row1['user']])) {
         echo "<td><input type=\"submit\" name=\"richiedi\" value=\"Richiedi amicizia\"></td>";
      }
      else {
         if($amicizie[$row1['user']] == 1) {   
            echo "<td><input type=\"submit\" name=\"rimuovi\" value=\"Rimuovi amicizia\"></td>";
         }
         else {             
            echo "<td><input type=\"submit\" name=\"attesa-submit\" value=\"In attesa\"></td>";
         }
      }
      echo '</form></tr>';                                     
  }

  $name = $row1['user'];
  if(isset($_POST[$name])) {
     $user_target = $_POST[$name]; 
     if(isset($_POST['richiedi-submit'])){
        //richiedo l'amicizia
        echo "<p>Richiedi amicizia a ".$user_target."</p>";
     }
     if(isset($_POST['rimuovi-submit'])){
        //rimuovo l'amicizia
        echo "<p>Rimuovi amicizia a ".$user_target."</p>";
     }
     if(isset($_POST['attesa-submit'])){
         //in atttesa di conferma/rifiuto
         echo "<p>In attesa di amicizia a </p>";
     }                                 
  } 
?>

Aiuto :( Grazie e buone feste a tutti!
 

Discussioni simili