Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [MySQL] Problema con la query - Relazioni

    Salve,
    ho un db avente tre tabelle ovvero:
    - users (id e username) -> dove ogni id è associato all'username
    - settings (id_user e url_image) -> dove ogni id_user è associato un URL ad una immagine
    - friends ( id_following e id_follower )

    Vorrei visualizzare tutti gli id_following, quindi l'username e l'url_image, di un determinato id_follower

    Questa è la query che ho provato a scrivere:
    codice:
    SELECT url_image, users.id, users.username FROM settings, users, friends WHERE id_follower = 5 AND settings.id_user = id_following AND users.id = id_following

    .. dovrebbe visualizzare url_image, l'id dell'utente e il suo relativo username che è in relazione (following) dell'utente con id = 5

    Infine questo è il codice PHP che dovrebbe portare alla risoluzione del problema:
    Codice PHP:
    public function listFollowing$ris_ NULL
        {
           if ( 
    $ris_ == NULL )
            {
            
    $SQL "SELECT url_image, users.id, users.username FROM settings, users, friends WHERE id_follower = $this->id AND settings.id_user = id_following AND users.id = id_following";
            
    $ris_ $this->doQuery$SQL );
            if ( !
    mysql_num_rows$ris_ ) )
                echo  
    'noUserfollowing';            
            }
            
            while ( 
    $row mysql_fetch_array$ris_ ) )
            {
            return array( 
    $ris_$row['url_image'], $row['id'], $row['username'] );
            }
            return array( 
    NULLNULLNULLNULL );
        } 

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da sys14
    Salve,
    ho un db avente tre tabelle ovvero:
    - users (id e username) -> dove ogni id è associato all'username
    - settings (id_user e url_image) -> dove ogni id_user è associato un URL ad una immagine
    - friends ( id_following e id_follower )

    Vorrei visualizzare tutti gli id_following, quindi l'username e l'url_image, di un determinato id_follower

    Questa è la query che ho provato a scrivere:
    codice:
    SELECT url_image, users.id, users.username FROM settings, users, friends WHERE id_follower = 5 AND settings.id_user = id_following AND users.id = id_following

    .. dovrebbe visualizzare url_image, l'id dell'utente e il suo relativo username che è in relazione (following) dell'utente con id = 5

    Infine questo è il codice PHP che dovrebbe portare alla risoluzione del problema:
    Codice PHP:
    public function listFollowing$ris_ NULL
        {
           if ( 
    $ris_ == NULL )
            {
            
    $SQL "SELECT url_image, users.id, users.username FROM settings, users, friends WHERE id_follower = $this->id AND settings.id_user = id_following AND users.id = id_following";
            
    $ris_ $this->doQuery$SQL );
            if ( !
    mysql_num_rows$ris_ ) )
                echo  
    'noUserfollowing';            
            }
            
            while ( 
    $row mysql_fetch_array$ris_ ) )
            {
            return array( 
    $ris_$row['url_image'], $row['id'], $row['username'] );
            }
            return array( 
    NULLNULLNULLNULL );
        } 
    1. Usa la notazione esplicita della JOIN altrimenti rischi di creare dei prodotti cartesiani involontari
    2. id_following e id_follower precisamente come li vuoi usare:
    Provo a capire: id_following è l'utente che segue tutti i follower? o è viceversa?

  3. #3

    Re: Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da Joe Taras
    1. Usa la notazione esplicita della JOIN altrimenti rischi di creare dei prodotti cartesiani involontari
    2. id_following e id_follower precisamente come li vuoi usare:
    Provo a capire: id_following è l'utente che segue tutti i follower? o è viceversa?
    Viceversa: il follower è l'utente che segue un altro utente (id_following)

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: Re: Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da sys14
    Viceversa: il follower è l'utente che segue un altro utente (id_following)
    Ok, quindi devi fare:
    codice:
    SELECT s.url_image, u.id, u.username
    FROM users u
    JOIN friends f
    ON f.id_following = u.id
    JOIN settings s
    ON s.id_user = u.id
    WHERE f.id_follower = 5
    Che mi pare cmq simile alla tua di prima.

  5. #5

    Re: Re: Re: Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da Joe Taras
    Ok, quindi devi fare:
    codice:
    SELECT s.url_image, u.id, u.username
    FROM users u
    JOIN friends f
    ON f.id_following = u.id
    JOIN settings s
    ON s.id_user = u.id
    WHERE f.id_follower = 5
    Che mi pare cmq simile alla tua di prima.
    Bene si è uguale anche nel suo compotamento.

    Stampa tre volte uno stesso utente. Per il resto è ok!

    soluzioni?

  6. #6
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955

    Re: Re: Re: Re: Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da sys14
    Bene si è uguale anche nel suo compotamento.

    Stampa tre volte uno stesso utente. Per il resto è ok!

    soluzioni?
    Secondo me ci sono dati errati nella tabella friends. Perché la query se tutto quello che mi hai detto è corretto, dovrebbe tirarti su 3 nomi differenti (se ci sono 3 utenti che sono seguiti dal fissato follower)

  7. #7

    Re: Re: Re: Re: Re: Re: [MySQL] Problema con la query - Relazioni

    Originariamente inviato da Joe Taras
    Secondo me ci sono dati errati nella tabella friends. Perché la query se tutto quello che mi hai detto è corretto, dovrebbe tirarti su 3 nomi differenti (se ci sono 3 utenti che sono seguiti dal fissato follower)
    Vedi?

    Il tutto risulta strano anche a me:
    http://i.imgur.com/A9LKr.png

    EDIT:
    sto effettuando una fase di DEBUG. La funzione mysql_num_rows, che sto usando in questo momento, ritorna 5 e non 3. Quindi c'è un problema nella query.

    Potresti leggere l'MP che ti ho inviato? Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.