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

    problema campo vuoto se valore nullo

    Salve ho una query che mi aggiorna correttamente i record ed è questa
    $sql = "UPDATE nomedb SET nomeautore='$nome' WHERE id=$numeroid";
    le variabili (ce ne saranno altre) vengono valorizzate da un form, il problema è che se la variabile non viene valorizzata il campo viene cancellato, invece io vorrei che se per esempio $autore non viene valorizzata rimanga il vecchio campo invece che cancellarlo, spero di essere stato chiaro, grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Benvenuto.
    Verifica i dati che ricevi e in base a questi costruisci decidi se e come eseguire le query.

  3. #3
    il problema e che se qualcuno nel form non riempie il campo "nome autore" la variabile è vuota ma cancella il nome invece io vorrei che se qualcuno lascia vuoto un campo del form la query non cancelli il campo, se invece ci scrive qualcosa la query aggiorna il campo invece, non so come potrei fare

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quindi come ti ho detto, verifica cosa ti arriva dal form PRIMA di eseguire la query, se il campo "nome autore" è vuoto, non esegui la query o non includi nella query quel campo.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Quindi come ti ho detto, verifica cosa ti arriva dal form PRIMA di eseguire la query, se il campo "nome autore" è vuoto, non esegui la query o non includi nella query quel campo.
    Ma non so come verificare i dati, sono novello di php

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    I dati dal form sai recuperarli, altrimenti non potresti poi usarli nelle query, quindi farai una cosa tipo
    $nome = $_POST['nome'];

    Per vedere se l'utente nel campo nome del form ha scritto qualcosa ti basta un
    if ( $_POST['nome'] != '' )

    Non so i dati che hai, vado a caso, ma dovrebbe rendere l'idea
    Codice PHP:
    // per decidere se devi eseguire o no la query
    $execute false;

    // inizializzazione della query
    $query 'UPDATE nome_tabella SET ';

    // se il campo nome non è vuoto
    // trim serve per evitare che l'utente abbia solo inserito qualche spazio senza scrivere niente
    // e questo faccia pensare al codice che ci sia del testo
    if ( trim($_POST['nome']) != '' )
    {
        
    // aggiungi l'update del campo nome
        
    $query .= 'nome="' $_POST['nome'] . '"';
        
    $execute true;
    }

    // se il campo nome non è vuoto
    if ( trim($_POST['cognome']) != '' )
    {
        
    // aggiungi l'update del campo cognome
        
    $query .= ', cognome="'$_POST['cognome'] .'"';
        
    $execute true;
    }

    // così per gli altri campi

    // parte finale della query
    $query .= " WHERE id=' . $numeroid;

    if ( 
    $execute )
    {
        // qui esegui la query

    Non so cosa stai usando per interfacciarti al DB, spero non le funzioni mysql_ (senza i finale), se invece son proprio quelle che stai usando, smetti subito e passa a mysqli_ (con la i finale) o meglio a PDO.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Qui
    $query .= " WHERE id=' . $numeroid;
    dopo id= ci va il doppio apice " invece di quello singolo, ma non me lo fa modificare.
    Altra cosa, nota la virgola all'inizio della stringa che concatena il cognome e lo spazio prima del WHERE, non sono stati messi a caso.

  8. #8

    [risolto]

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Qui
    $query .= " WHERE id=' . $numeroid;
    dopo id= ci va il doppio apice " invece di quello singolo, ma non me lo fa modificare.
    Altra cosa, nota la virgola all'inizio della stringa che concatena il cognome e lo spazio prima del WHERE, non sono stati messi a caso.
    Mi connetto con msqli , si era quello che cercavo, grazie

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.