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

    Query di update su piu campi...info

    se da un form trasmetto con post un valore so che per aggiornare il db la query da scrivere è

    $query = "UPDATE nome tabella SET nomecampo='$_POST[variabile]' WHERE id='$_POST[numero id]' ";
    if (mysql_query($query, $db));
    ma questa volta la situazione è diversa, nel senso che selezionando da un menu a tendina una voce relativa all'utente non solo deve trasmettere al db tale voce ma assegnargli un numero in un'altro campo del db, vi scrivo l'esempio della query che non mi funziona:

    if ($_POST['livello'] == 'admin'){
    $query = "UPDATE team SET permessi='$_POST[livello]', comando='1' WHERE id='$_POST[action]'";
    if (mysql_query($query, $db));
    }
    if ($_POST['livello'] == 'moderatore'){
    $query = "UPDATE team SET permessi='$_POST[livello]', comando='2' WHERE id='$_POST[action]'";
    if (mysql_query($query, $db));
    }
    if ($_POST['livello'] == 'utente'){
    $query = "UPDATE team SET permessi='$_POST[livello]', comando='3' WHERE id='$_POST[action]'";
    if (mysql_query($query, $db));
    }
    Praticamente, ad ogni livello associa in un campo chiamato permessi o 1 o 2 o 3, il problema è che non lo fa lasciando inalterata la tabella del db, ho gia verificato le variabili trasmesse, ed effettivamente arrivano con il post alla pagina in questione.


  2. #2
    Direi intanto che essendo le varie opzioni di scelta mutualmente escludenti sarebbe piu' opportuno un switch realizzato anche con if/elseif

    Altra cosa perche' metti la query in una if che poi non controlli?
    codice:
    if ($_POST['livello'] == 'admin'){ 
       $query = "UPDATE team SET permessi = '$_POST[livello]', 
                 comando = '1' 
                 WHERE id = '$_POST[action]'"; 
    
          if (mysql_query($query, $db)); 
    Sono comunque non inficianti il risultato.

    Dovresti mettere la segnalazione di errore mysql_error() ed eventualmente stampare la query per vedere come vengono risolte le variabili. Puo' anche darsi che skippi tutte le if. Se invece metti le if/elseif alla fine potresti aggiungere un else che raccolga i casi non processati in precedenza (i default dello switch)


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    320
    if ($_POST[livello] == "admin"){
    $query = "UPDATE team SET permessi = \"$_POST[livello]\",
    comando = '1'
    WHERE id = \"$_POST[action]\" ";

    mysql_query($query, $db));
    }

    a me piace più così
    Felicità e Prosperità a tutti

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.