Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    31

    problema con mysql query

    Salve. Ho la seguente query eseguita da console in blocco unico che funziona bene ma non riesco a farla lavorare inserita in contesto php.

    codice:
    set @var = (SELECT campo1 FROM tabella1 WHERE id=7);  UPDATE tabella1 SET campo1 = @var WHERE id=1;
    Possibilmente vorrei mantenere questa struttura di query perchè altre, nel mio caso specifico (trasferimento da una riga all'altra nella stessa tabella di codice template mybb) non sembrano funzionare. Per esempio , se (usando php) utilizzo questo tipo di query:

    codice:
    UPDATE tabella1 SET campo1 = 'nuovoValore' WHERE id = 1;
    funziona se il nuovoValore è una semplice stringa di testo ma se faccio in questo altro modo:
    codice:
    UPDATE tabella1 SET campo1 = (SELECT campo1 FROM tabella1 WHERE id=7) WHERE id = 1;
    non funziona.

    Come potrei fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    86
    Ciao,

    direi che potresti prima eseguire una query con:

    codice:
    SELECT campo1 FROM tabella1 WHERE id=7;
    e poi il risultato lo inserisci tramite variabile (o variabili, in questo caso creando un ciclo) nella query:

    codice:
    UPDATE tabella1 SET campo1 = '$risultato1' WHERE id = 1;
    Fammi sapere

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    31
    Ciao. Ho già provato come dici tu ma non va. Ricavata la variabile con la prima query questa la posso stampare ma inserita nella seconda query non funziona.
    Codice PHP:
    echo $row['template']; //va bene  mysql_query("UPDATE mybb_templates SET template = '".$row['template']."' WHERE tid=1"); //non va bene // però se al posto di ".$row['template']." metto semplice testo funziona 
    Secondo me dipende dal tipo di codice inserito nel campo che per essere trasformato in variabile ha bisogno di un passaggio in più come avviene nella console sql con il passaggio "SET @var = ..."

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    86
    Prova ad assegnare la variabile risultato del primo codice mysql con questo codice:

    Codice PHP:

    $query 
    "SELECT mia_variabile FROM mia_tabella";
        
    $result mysql_query($query);
        
    $row mysql_fetch_array($result);
        
    list(
    $mia_variabile_php) = $row
    e poi utilizza la $mia_variabile_php al posto del row[]

    Fammi sapere

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    31
    Per ora non sono riuscito a farla funzionare ma ci riproverò e ti farò sapere (per oggi devo smettere!). Ciao e grazie

  6. #6
    ma con che valore stai cercando di fare l'update? è un intero, una stringa?
    Ubuntu rulez!! :P

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    31
    è una stringa, codice html con caratteri di escape (ma questo l'ho scoperto dopo!).

    e infatti ho risolto nel seguente modo:


    Codice PHP:
    UPDATE nomeTabella SET nomeCampo '".mysql_real_escape_string($variabile)."' WHERE id 'n'
    ciao

  8. #8
    Ubuntu rulez!! :P

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.