Errore visualizzazione richiesta amicizia

sappe

Nuovo Utente
27 Mar 2011
27
0
0
Scusate se non mi presento, ho cercato tra i topic ma quello di presentazione utenti non l'ho trovato, sono abbastanza di fretta quindi se ho sbagliato scusatemi.
Sto creando un sito per un progetto ed ho un problema.
Ho questa pagina:
Codice:
<h2>Frinds that are waiting for approval:</h2>
 <p>
<?php
include("connessione.inc");
$user= $_SESSION ['login'];
$sql3= "SELECT IDutente from utenti WHERE Nickname = '$user'";
$res3=mysql_query($sql3,$conn)or die("Error!".mysql_error());
while ($records=mysql_fetch_assoc($res3)) {
   $IDutente=$records['IDutente'];
     }
$sql="SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE amicizie.Friend = '0' and amicizie.Receiver = '$IDutente'";
$res=mysql_query($sql,$conn)or die("Error!".mysql_error());
$recordperpagina=3;
$lines=mysql_num_rows($res);
$tot_page=ceil($lines / $recordperpagina); //numero totale di pagine
if (isset($_GET['page'])){ $paginacorrente = $_GET['page'];} else { $paginacorrente = 1;}  // pagina corrente                
$primo = ($paginacorrente - 1) * $recordperpagina; //primo parametro LIMIT
if ($lines == 0){//controllare variabile
                    echo <<<MESS
                           <table summary="norichiesta" id="richiesta">
<tr>
<td> You don't have any request for friendship.</td>
</tr>
</table>
MESS;
     
}
if ($lines >= 1) {
$sql="SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE (amicizie.Friend = '0' and amicizie.Receiver = '$IDutente') LIMIT $primo, $recordperpagina";
$res=mysql_query($sql,$conn)or die("Error!".mysql_error());
   while ($records=mysql_fetch_assoc($res)){
   $sql2="SELECT Nickname FROM utenti WHERE IDutente = $records[Sender]";
                             $res2=mysql_query($sql2,$conn) or die ("Errore!".mysql_error());
                           while ($records2=mysql_fetch_assoc($res2)){
                                $Sender = $records['Nickname'];
               }
                             echo <<<MESS
                        <table summary="richiesta" id="richiesta">
<tr>
<td>
                        You have a friend request from $Sender. Want to be his friend?
                        <form action="friend.php?sender=$records[Sender]" id="accept" method="POST">
                        <input type="submit"  name="button" value="Accept" class="button"/>
                        <input type="submit" name="button" value="Refuse" class="button"/></form>

</td>
</tr>
</table>
MESS;
   }
     if ($paginacorrente == 1){
                                  $precedente = "";
                               }
                               else {
                                  $previous_page = ($paginacorrente - 1);
                                    $precedente = "<a href=\"?page=$previous_page\" title=\"See other request\" id=\"previus\"><<-- previous</a>";
                               }
                               if($paginacorrente == $tot_page){
                                  $successiva = "";
                                     }
                                     else {
                                        $next_page = ($paginacorrente + 1);
                                            $successiva = "<a href=\"?page=$next_page\" title=\"Go back\" id=\"next\">next -->></a>";
                                     }
                     echo "$precedente <p id=\"paginacorrente\">Page $paginacorrente of $tot_page </p> $successiva";
} //chiude if ($lines >= 1)

?>
    
 </p>
in pratica mi deve dire se l'utente registrato accetta la richiesta di amicizia da parte di un altro utente, ma visualizza il nickname dell'utente stesso che chiede la richiesta a se stesso!!
Sender è colui che ha inviato la richiesta, e receiver colui che la riceve, in questo caso l'utente connesso. Nel database è tutto a posto, se faccio la prova e invio una richiesta l'id di sender è di colui che invia la richiesta, allora perché mi stampa il ricevente?
Grazie in anticipo delle risposte!!
 
Lo script è davvero molto caotico. L'indentazione è pessima così come la logica. I nomi delle variabili sono sia in inglese che in italiano (di solito o si sceglie l'uno o l'altro). Come se non bastasse il tuo inglese è piuttosto zoppicante. Modificalo così, intanto:
PHP:
<h2>People waiting for approval:</h2>
<p>
<?php
require 'connessione.inc';

$user = $_SESSION['login'];
$sql3 = "SELECT IDutente FROM utenti WHERE Nickname = '{$user}'";

$res3 = mysql_query($sql3, $conn) or die('Error! ' . mysql_error());

$data = mysql_fetch_assoc($res3);
$IDutente = $records['IDutente'];

$sql = "SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE amicizie.Friend = '0' AND amicizie.Receiver = '{$IDutente}'";
$res = mysql_query($sql, $conn) or die('Error! ' . mysql_error());

$record_per_pagina = 3;
$lines = mysql_num_rows($res);
$tot_pages = ceil($lines / $record_per_pagina);

$pagina_corrente -= isset($_GET['page']) ? $_GET['page'] : 1;
$primo = ($pagina_corrente - 1) * $record_per_pagina;

if (!$lines) {
    echo <<<MESS
    <table summary="norichiesta" id="richiesta">
        <tr>
            <td>You don't have any friendship requests.</td>
        </tr>
    </table>
MESS;
}
else {
    $sql = "SELECT * FROM utenti JOIN amicizie ON utenti.IDutente = amicizie.Receiver WHERE (amicizie.Friend = '0' AND amicizie.Receiver = '{$IDutente}') LIMIT {$primo}, {$record_per_pagina}";
    $res = mysql_query($sql, $conn) or die('Error! ' . mysql_error());
    
    while ($record = mysql_fetch_assoc($res)) {
        $sql2 = "SELECT Nickname FROM utenti WHERE IDutente = {$record['Sender']}";
        $res2 = mysql_query($sql2, $conn) or die('"Error! ' . mysql_error());

        $data = mysql_fetch_assoc($res2);
        $Sender = $record['Nickname'];
        
        echo <<<MESS
    <table summary="richiesta" id="richiesta">
        <tr>
            <td>
                You've received a friendship request from {$Sender}. Do you want to be his friend?
                <form action="friend.php?sender={$record['Sender']}" id="accept" method="POST">
                    <input type="submit" name="button" value="Accept" class="button"/>
                    <input type="submit" name="button" value="Decline" class="button"/>
                </form>
            </td>
        </tr>
    </table>
MESS;
    }

    switch ($pagina_corrente) {
        case 1:
            $precedente = '';
            break;
        
        default:
            $previous_page = $pagina_corrente - 1;
            $precedente = "<a href=\"?page={$previous_page}\" title=\"See more requests\" id=\"previous\">&laquo; previous</a>";
            break;
    }

    switch ($pagina_corrente) {
        case $tot_pages:
            $successiva = '';
            break;

        default:
            $next_page = $pagina_corrente + 1;
            $successiva = "<a href=\"?page={$next_page}\" title=\"See more requests\" id=\"next\">next &raquo;</a>";
            break;
    }

    echo <<<EOF
    {$precedente}
    <p id=\"paginacorrente\">Page {$pagina_corrente} of {$tot_pages}</p>
    {$successiva}
EOF;
}
?>
E vedi se ti restituisce qualche errore. Poi potremo pensare a sistemare il tuo problema.
 
Lo script è davvero molto caotico. L'indentazione è pessima così come la logica. I nomi delle variabili sono sia in inglese che in italiano (di solito o si sceglie l'uno o l'altro). Come se non bastasse il tuo inglese è piuttosto zoppicante. Modificalo così, intanto:
E vedi se ti restituisce qualche errore. Poi potremo pensare a sistemare il tuo problema.
Adesso funziona, grazie mille :D.
Sì, hai perfettamente ragione, difatti mi ero piccata a farlo in inglese agli inizi, ma poi ho iniziato a confondermi ed ho dovuto mettere anche elementi in italiano... Ma ho due buone notizie:
1. la prima è che è solo per un esame, quindi il mio sgorbio non vedrà mai l'alba del web;
2. la seconda è che dato questo esame non voglio mai più vedere una sola riga di codice php XDDD.
Perciò scusatemi in anticipo se verrò a fare domande banali e presenterò codici impresentabili, faccio del mio meglio ma non ci capisco molto, non è davvero il mio campo (l'inglese però, prima di presentare il progetto, lo riguardo, eh! XD).
Grazie davvero :D.
 
Ultima modifica:

Discussioni simili