• User Attivo

    @mferraroni said:

    esempio concreto: cosa succederebbe se in qualche modo la colonna rifiutato fosse null o fosse 3 o 4?)

    La colonna booleana rifiutato ha un valore predefinito 0 e i dati vengono modificati mediante un form che imposta il valore a 1.

    @mferraroni said:

    In ogni caso, scusa per la divagazione, facciamo un esempio pratico dalla tabella che hai postato tu (il file png qui sopra) quali risultati ti aspetti?

    In questo caso la query dovrebbe "echare" (accedendo nel profilo di Roxas Shadow) i nickname Nick1 e Nome Utente poichè sono entrambi accettati (1 = true) e non rifiutati e/o cancellati (0 = false).


  • User

    @RoxasShadow said:

    In questo caso la query dovrebbe "echare" (accedendo nel profilo di Roxas Shadow) i nickname Nick1 e Nome Utente poichè sono entrambi accettati (1 = true) e non rifiutati e/o cancellati (0 = false).

    Secondo me è un approccio sbagliato proprio dalla progettazione, modifica il campo in modo che accetti solo i valori A,R,C ovvero Accettato, Rifiutato, Cancellato (mysql type enum) e poi modifica il form di conseguenza.
    La query poi diventa una semplice

    
    SELECT DISTINCT id1, id2 WHERE (id1 = XXX OR id2 = XXX) and stato = A
    
    

    al posto di XXX mettici le tue condizioni.

    Ciao


  • User Attivo

    Ti ringrazio infinitamente mferraroni, lo script funziona che una meraviglia.
    Alla prossima.


  • User Attivo

    Ops, ho un problema 😄

    La query è questa

    $query=mysql_query('SELECT DISTINCT * FROM amicizie WHERE (id1 = "'.$nickname.'" OR id2 = "'.$nickname.'") AND stato = "A"');
    while($result = mysql_fetch_assoc($query)) {
    if($result['id1'] == $result['id2']) { continue; }
    echo $result["id2"].', ';
    }

    Il database è questo

    h ttp:/ /ww w.technicianpokemon.com/old-hosting/images/db2.png

    Io vorrei visualizzare "Linkino" ma visualizzo "Roxas Shadow" e lo stesso visualizzerà l' utente che ha $nickname impostato su "Linkino".

    Per piacere aiutatemi 😄


  • User

    @RoxasShadow said:

    Io vorrei visualizzare "Linkino" ma visualizzo "Roxas Shadow" e lo stesso visualizzerà l' utente che ha $nickname impostato su "Linkino".

    Ciao cambia

    
    echo $result["id2"].', ';
    
    

    con

    
    echo $result["id1"].', ';
    
    

    poi un consiglio, cerca di non utilizzare l'asterisco (*) nelle query che non è il massimo in fatto di performance, ma specifica sempre i campi che ti servono, in questo caso ti servono solo id1 ed id2

    Ciao
    Matteo


  • User Attivo

    Si ma in questo caso cambia per me, ma non per tutti: mi spiego.

    Con id1 io accedendo con $nickname a Linkino visualizzo "Linkino", la stessa cosa accade accedendo con $nickname a Roxas Shadow visualizzo "Roxas Shadow".
    A me servirebbe che se accedessi con $nickname "Linkino" visualizzassi "Roxas Shadow" e viceversa, accedendo con $nickname "Roxas Shadow" visualizzassi "Linkino".

    Grazie per il tempo e l' aiuto dedicatomi.


  • User

    @RoxasShadow said:

    Si ma in questo caso cambia per me, ma non per tutti: mi spiego.

    Con id1 io accedendo con $nickname a Linkino visualizzo "Linkino", la stessa cosa accade accedendo con $nickname a Roxas Shadow visualizzo "Roxas Shadow".
    A me servirebbe che se accedessi con $nickname "Linkino" visualizzassi "Roxas Shadow" e viceversa, accedendo con $nickname "Roxas Shadow" visualizzassi "Linkino".

    Se ho capito bene la struttura della tabella id1 è il nick e id2 è il nome dell'utente, quindi tu vuoi far accedere sia con il nome sia con nick, e visualizzare sempre il nick, giusto?

    Ciao


  • User Attivo

    E' un sistema di amicizie.
    Id1 è il richiedente, Id2 è il destinatario dell' amicizia.
    Se accedo come richiedente dovrò vedere Id2 e se accedo come destinatario vedrò Id1.


  • User

    @RoxasShadow said:

    E' un sistema di amicizie.
    Id1 è il richiedente, Id2 è il destinatario dell' amicizia.
    Se accedo come richiedente dovrò vedere Id2 e se accedo come destinatario vedrò Id1.

    Ok.

    allora puoi fare così:

    
    $whoami = <nickname con cui sono dentro al sistema>
    $query=mysql_query('SELECT DISTINCT * FROM amicizie WHERE (id1 = "'.$nickname.'" OR id2 = "'.$nickname.'") AND stato = "A"');
    while($result = mysql_fetch_assoc($query)) {
      if($result['id1'] == $whoami) {  // se sono richiedente...
        echo $result['id2']; // ...vedo id2 
    } else {                   // altrimenti....
        echo $result["id1"]; // ...vedo id1 
    } ;
    
    

    Spero che sia chiaro.
    Ciao
    Matteo


  • User Attivo

    Funziona finalmente! 😄

    Ti ringrazio infinitamente, a presto.


  • User

    @RoxasShadow said:

    Funziona finalmente! 😄

    Ti ringrazio infinitamente, a presto.

    Di nulla, alla prox.

    Ciao