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

    Confrontare due variabili una recuperata da $_POST ed una da mysql

    Non riesco a far controllare da un ciclo IF le variabili il codice e:
    Codice PHP:
    $id $_POST['id'];
        
    $sql_id "SELECT id FROM tua_tabella";
        
    $res_id mysqli_query($link,$sql_id);
        while (
    $row_id mysqli_fetch_assoc($res_id)){
            
    $id_id $row_id['id'];
            echo 
    $id_id;
        }    
        if(
    $id==$id_id){
            
    $nome $_POST['nome'];
            
    $cognome $_POST['cognome'];
            
    $mansione $_POST['mansione'];
            
    $sql_m "UPDATE tua_tabella SET
                nome = '
    $nome',
                cognome = '
    $cognome',
                mansione = '
    $mansione'
                WHERE  id = '
    $id'";
            if (@
    mysqli_query($link,$sql_m)) 
            { 
                echo 
    '<p>Dati inseriti correttamente sql_m</p>';
                
    //Messaggio che apparirà sotto il form di aggiunta tramite msg
            
    }        
            else { 
                echo 
    '<p>Si e verificato un errore ' mysqli_error($link) .'</p>';
                
    //eventuale messaggio di errore
            
    }
        } else {
            
    $nome $_POST['nome'];
            
    $cognome $_POST['cognome'];
            
    $mansione $_POST['mansione'];
            
    $sql "INSERT INTO tua_tabella SET
                    nome = '
    $nome',
                    cognome = '
    $cognome',
                    mansione = '
    $mansione'";
            if (@
    mysqli_query($link,$sql)) 
            { 
                echo 
    '<p>Dati inseriti correttamente sql</p>';
                
    //Messaggio che apparirà sotto il form di aggiunta tramite msg
            
    }        
            else { 
                echo 
    '<p>Si e verificato un errore ' mysqli_error($link) .'</p>';
                
    //eventuale messaggio di errore
            
    }
        } 
    così mi verifica solo l'ultima variabile del ciclo While, se lo metto nel ciclo While mi aggiunge tante righe nel dbase quante volte trova la condizione falsa avete qualche consiglio?
    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Metti gli if dentro il while, ora sono fuori

    puoi semplificare di molto il tuo codice, ad esempio facendo la prima select con una clausola where sull’id
    o ancora usando sempre l’update, senza fare una select prima, e se vedi che le righe modificare sono zero, fai la insert

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    12
    in poche parole tu devi aggiornare la riga nel database dove esiste gia un id e se non ce aggiungi la riga(nome, cognome, ecc).
    dopo la prima query ($sql_id = "SELECT id FROM tua_tabella WHERE id='$id'"; $res_id = mysqli_query($link,$sql_id);)(ho aggiunto WHERE id='$id') fai un mysqli_num_rows che ti da il numero di righe che ha trovato con quella query e da li fai un if(mysqli_num_rows>0){esiste gia un id e quindo modifichi i campi}else{non sono state trovate righe con quel id e quindi lo crei }
    io farei cosi
    spero di aver capito cio che vuoi fare

  4. #4
    grazie mille degadea era propio quello che cercavo di fare

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 © 2024 vBulletin Solutions, Inc. All rights reserved.