Navigazione

  • CATEGORIES
  • Discussioni
  • Non letti
  • Recenti
  • Hashtags
  • Popolare
  • Utenti
  • Registrati
  • Accedi
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. Domanda per comando "WHERE"
Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
  • M
    max0005 Super User • 6 giu 2009, 14:12 ultima modifica di

    Domanda per comando "WHERE"

    Salve,
    in pratica avrei bisogno di creare una query che scelga alcune righe dal MySQL in base a più criteri... nel senso:

    [php]
    $query=mysql_query("SELECT * FROM my_table WHERE id='1' or '2'");
    [/php]

    in pratica avrei bisogno che selezionasse le righe dove l'id è uguale a 1 O 2... come posso fare?

    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
       

    • D
      daniele.tabacco User • 6 giu 2009, 14:31 ultima modifica di

      SELECT * FROM my_table WHERE id='1' AND id='2'

      :ciauz:

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        max0005 Super User • 6 giu 2009, 15:29 ultima modifica di

        posso anche usare il comando OR oltre che AND? Perchè sarà difficcile che una riga abbia un id con 2 valori 😉

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • D
          daniele.tabacco User • 6 giu 2009, 15:36 ultima modifica di

          Scusami tanto,
          mi sono rimbecillito per un momento, cmq non e che puoi, ma DEVI usare OR.

          Grazie 😉

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            max0005 Super User • 6 giu 2009, 15:53 ultima modifica di

            Si ma così trova un solo risultato... nonostante io abbia specificatamente impostato LIMIT 3... comunque il problema è che io ho un ciclo for:

            [php]
            for($fids=0; $fids < $limit; $fids++, $fid--)
            {
            $ids = "id='" . $fid . "' or " ;
            print $ids;
            }
            [/php]

            che da come risultato (ad esempio)
            id='6' or id='5' or id='4' or

            questo valore viene poi riportato nella query

            $sql=mysql_query("SELECT * FROM news WHERE " . $ids . " id='7' ORDER BY time Desc LIMIT " . $limit . " ") or die ("Query error: " . mysql_error());

            ho dovuto aggiungere id='7' per chiudere l'ultimo or.

            Domanda:

            1. Come faccio a troncare l'ultimo or in modo che sia ...'id'=4 invece di ...id=4 or

            2. Come faccio a fare in modo che selezioni più di una riga?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • D
              daniele.tabacco User • 6 giu 2009, 18:09 ultima modifica di

              Così al volo ti faccio un esempio di come mettere gli or fino a quando non ci troviamo all'ultimo ciclo di for

              esempio:
              [php]
              for($fids=0; $fids < $limit; $fids++, $fid--)
              {
              $ids = "id='" . $fid;
              if($fids < ($limit-1))
              $ids =. "' or " ;
              print $ids;
              }
              [/php]

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                max0005 Super User • 6 giu 2009, 18:40 ultima modifica di

                OK quello l'ho risolto 🙂 ora sto lavorando in modo che quando clicca su next procede a prevelare i 3 id dopo l'ultimo usato e viceversa. Esempio: se in questo momento sono visualzizate le news con id: 1, 2, 3 cliccando su next si passerà a quelle con id 4, 5, 6 e vorrei che se si cliccasse su previous si ri-vedesse 1, 2, 3 sto usando questo codice:
                [php]
                //il problema è in questa parte (dove $_GET["state" == 1)
                if($_GET["state"] == 1)
                {
                for($fids=0; $fids < $limit; $fids++, $fid--)
                {
                if($fid == 0)
                {
                $fid++;
                }
                $ids = "id='" . $fid . "' or " ;
                print $ids;

                }
                }
                if($_GET["state"] == 2)
                {
                for($fids=0; $fids < $limit; $fids++, $fid++)
                {
                if($fid == 0)
                {
                $fid++;
                }
                $ids = "id='" . $fid . "' or " ;
                print $ids;

                }
                }
                [/php](1= Precedente, 2=Prossimo) funziona bene la seconda parte ($_GET["state"] == 2. Però se ad esempio $ids è:

                id='4' or id='5' or id='6' or

                se clicco su previous

                mi viene

                id='7' or id='6' or id='5' or

                :mmm: come mai?

                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