Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178

    Invertire i valori di gruppi di celle

    Il quesito è tanto logico quanto impossibile.
    Ovvviamente parlo di me ^^.

    Se ho X celle con valore 3 e Y con valore 5 come posso fare per invertire con un bel REPLACE sql i valori?

    Ho provato con i metodi più classici ma mi intrippo sempre questo perché come porto tutti i campi da una parte all'altra (facciamo che le X diventano 5), poi mi ritrovo tutte le mie celle a valore 5 e non so più come distinguere quelle da trasformare...
    Tutti i dati sono disponibile da una precedente query Sql.


    La successiva strada sarebbe quella di risalire alla SELECT originale e usare gli "as" per distinguere due sottogruppi, però prima di lanciarmi in cose fuori dalla mia portata ho preferito chiedere se faccio la scelta giusta.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ciao. Non so se esista una query "pulita" per fare ciò che chiedi.

    In modo bovino potresti aggiungere un campo alla colonna ed eseguire le due query

    update tabella set nuovo_campo = 5 where vecchio_campo = 3
    update tabella set nuovo_campo = 3 where vecchio_campo = 5


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Mi spiacerebbe dover aggiungere dei campi.
    Ad ogni modo la mia tabella presenta anche altre colonne, non solo quelle vecchie.

    Esempio:

    tab en
    2 ciao1
    2 ciao2
    2 ciao3

    2 ciao4
    3 ciao5
    3 ciao 6

    Ecco come sto procedendo.
    Dovendo disporre di tutti gli elementi aventi in comune la stessa chiave, e dovendo scambiare questa chiave con tutti gli elementi di X+1 oppure X-1, ho creato 3 array.

    In questi array io memorizzo tutte le var con indice X, X+1 e X-1.

    Ora però non riesco a fare la query di UPDATE!

    Ecco come ho fatto:

    Codice PHP:
        $sql "SELECT * 
            FROM menu
            WHERE cascata = 
    $tab";
               
    $result=mysql_query($sql);
                   while (
    $row mysql_fetch_array($result)) { 
                   
    $cascata_corrente[] = $row['en'];                                        
                 }

         
    $sql "SELECT * 
                    FROM menu
                WHERE cascata = 
    $tab+1";
              
    $result=mysql_query($sql);
                  while (
    $row mysql_fetch_array($result)) { 
                   
    $cascata_maggiore[] = $row['en'];                                             
                            }

         
    $sql "SELECT * 
                 FROM menu
                    WHERE cascata = 
    $tab-1";
                  
    $result=mysql_query($sql);
                  while (
    $row mysql_fetch_array($result)) { 
                  
    $cascata_minore[] = $row['en'];                                             
                            } 

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.