• User

    Problema visualizzazione lista amici

    In una pagina che dovrebbe stamparmi la lista degli utenti amici dell'utente collegato ho scritto questo codice php:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <?php session_start(); 
    $IDutente = $_SESSION['IDutente'];?>
    <HTML>
    <HEAD>
    <TITLE>Your Friends</TITLE><link href="style.css" rel="stylesheet" type="text/css">
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    </HEAD>
    <BODY>
    <div align="center">
      <TABLE class="maintable" CELLPADDING="0" CELLSPACING="0">
        <TR> 
          <TD COLSPAN=3> <IMG SRC="images/index_01.gif" WIDTH=727 HEIGHT=240 ALT=""></TD>
        </TR>
        <TR> 
          <TD ROWSPAN=2 class="navbg" valign="top"><div id="nav">
              <p><span class="h2">Menu</span> <a href="index.php">Home</a> <a href="rules.php">Rules</a> 
                <a href="gallery.php">Gallery</a> <a href="upload.php">Upload</a> <a href="search.php">Search</a>
                <span class="endbox"></span> </p>
    						
             
    					
    <?php 
    if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
       echo <<<print
    	 
    	 <p><span class="h2">Logout</span> <a href="profile.php">Your Profile</a> <a href="logout.php">Logout</a><span class="endbox"></span> </p>
             <p><span class="h2">Friendship</span> <a href="users.php">Search user</a> <a href="friend.php">My friends</a> <a href="request.php">Friends request</a> <span class="endbox"></span> </p>
    print;
    }
    else {
       echo <<<print
    	 
    	 <p><span class="h2">Sign in</span> <a href="create.html">Create account</a> <a href="login.htm">Login</a><span class="endbox"></span>
    print;
    }
    echo <<<print
    
     </p>
            </div></TD>
          <TD ROWSPAN=2 class="contentbg" valign="top"><div id="content">
              
    print;
    
     ?>
              <h1>Friend page:</h1>
    <h2 align="center">Your friends:</h2>
    <?php 
    include ("connessione.inc");
    $sql="SELECT nickname FROM utenti WHERE IDutente = ALL (SELECT Receiver AS amico FROM amicizie WHERE (Sender = '$IDutente') AND (Friend = '1') UNION SELECT Sender AS amico FROM amicizie WHERE (Receiver = '$IDutente') AND (Friend = '1'))";
    $res = mysql_query($sql, $conn) or die("Error!".mysql_error());
    while ($records = mysql_fetch_assoc($res)){
       echo <<<MESS
    <a href=\"?page="profile.php?id=$records[nickname]\" title=\"Go to his profile\" id=\"previus\">$records[nickname]</a>
    <form action="friend.php" id="delete" method="POST" align="right">
    <input type="submit" name="button" value="Delete" class="button"/> 
    </form>
    MESS;
    }
    //codice del bottone Delete
    if (isset($_POST['button'])){
    $button=$_POST['button'];
       if ($button == "Delete"){
           $sql2="DELETE FROM amicizie WHERE (Receiver = '$IDutente' and Sender = '$records[nickname]') or (Sender = '$records[nickname]' and Receiver = '$IDutente')";
    	     $res2=mysql_query($sql2, $conn) or die("Error!".mysql_error()); 
    	 echo "You and $records[nickname] aren't longer friend.";
    	 }
    }
    ?>	
     </p>
    
    				</p>
    
              </br>
    					</br>
    					</br>
    					</br>
              <h1>©SketchMania</h1>
    			<TD valign="top" class="spacer"></TD>
        </TR><TR> 
          <TD height="2" class="spacer2"></TD>
        </TR><TR> 
          <TD COLSPAN=3 class="creditsbg">
    				<p>| Contact us <a href="yahoo.com/" target="_blank">[email protected]</a> | </p></TD>
        </TR>
      </TABLE>
    </div>
    </BODY>
    </HTML>
    

    Ovviamente l'errore è nella richiesta sql, che riscrivo qua:

    SELECT nickname FROM utenti WHERE IDutente = ALL (SELECT Receiver AS amico FROM amicizie WHERE (Sender = '$IDutente') AND (Friend = '1') UNION SELECT Sender AS amico FROM amicizie WHERE (Receiver = '$IDutente') AND (Friend = '1'))
    

    Il mio database è questo:
    mediafire.com/?j0b4sujt2twja3t
    Sono stata ingannata dal fatto che ieri funzionava, ma avevo solo una amicizia con lo stato '1', quindi solo una accettata. Adesso, però, non riesco assolutamente più a richiamare tramite sql l'altro utente (prima di scrivere ho provato sul database ma nisba).
    Avete qualche idea di come potrei effettuare la query?
    Spero vivamente di non aver sbagliato sezione, vi ringrazio in anticipo per l'aiuto e la pazienza :).


  • User Attivo

    Scusa la mia "inintuizione" ma non ho capito le tue intenzioni.
    Potresti fare un esempio affinchè possa cercare di aiutarti?
    A presto


  • User

    In pratica voglio stampare una lista di amici: ho un sender, che invia l'amicizia, e un receiver, che la riceve e se vuole la accetta. Quindi io volevo selezionare tutte le righe dov'è l'utente connesso (perché è lui che vuole visualizzare la sua lista amici), che può essere sia sender che receiver, perché sono amici indipendentemente che l'abbia chiesta l'uno o l'altro (lo stato dell'amicizia accettata è 1), dopodiché stampare nella tabella l'altro utente, l'amico dell'utente connesso... Non so se mi sono spiegata :S


  • User Attivo

    Per quel che ho capito dovresti giocare sulla sessione aperta dall'utente connesso.
    Solamente confrontando la sessione di login potresti visualizzare gli amici, indipendentemente se accettati come friend o meno.
    Fammi sapere altrimenti scrivimi le tabelle interessate per cercare di aiutarti ulteriormente.
    A presto.


  • User

    Ti ringrazio ma ho risolto facendo due query separate 😄 grazie ancora e un salutone!