Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Problemino con interrogazione al database
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • J
      jeeves User Attivo • ultima modifica di

      Se tu vuoi che non vengono visualizzati più di 1 record per nick1 e nick2 dovresti unire i campi e farne solo uno in modo da farlo diventare chiave primaria.

      Ciao

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • R
        roxasshadow User Attivo • ultima modifica di

        E poi come faccio a inserirci i dati ?

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          mferraroni User • ultima modifica di

          @RoxasShadow said:

          Il database: htt p:// ww w.technicianpokemon.com/old-hosting/images/db.png

          Io Roxas Shadow dovrò visualizzare: Nome Utente e Nick1, poichè rispettano le condizioni e non importa se il mio nick sia su id1 o id2 :smile5:

          mmm...a parte che il db fatto in questo modo non è il massimo, io di solito faccio una colonna stato con tipo di dati enum in cui ci metto i valori che quel campo può assumere, così è il db che fa sanitize dell'input e non l'applicazione (esempio concreto: cosa succederebbe se in qualche modo la colonna rifiutato fosse null o fosse 3 o 4?)
          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?

          Ciao

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • R
            roxasshadow User Attivo • ultima modifica di

            @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).

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              mferraroni User • ultima modifica di

              @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

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • R
                roxasshadow User Attivo • ultima modifica di

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

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • R
                  roxasshadow User Attivo • ultima modifica di

                  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 😄

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    mferraroni User • ultima modifica di

                    @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

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • R
                      roxasshadow User Attivo • ultima modifica di

                      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.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        mferraroni User • ultima modifica di

                        @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

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • R
                          roxasshadow User Attivo • ultima modifica di

                          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.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • M
                            mferraroni User • ultima modifica di

                            @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

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • R
                              roxasshadow User Attivo • ultima modifica di

                              Funziona finalmente! 😄

                              Ti ringrazio infinitamente, a presto.

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • M
                                mferraroni User • ultima modifica di

                                @RoxasShadow said:

                                Funziona finalmente! 😄

                                Ti ringrazio infinitamente, a presto.

                                Di nulla, alla prox.

                                Ciao

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                Caricamento altri post
                                Rispondi
                                • Topic risposta
                                Effettua l'accesso per rispondere
                                • Da Vecchi a Nuovi
                                • Da Nuovi a Vecchi
                                • Più Voti