Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di d2D+
    Registrato dal
    Dec 2005
    Messaggi
    67

    Variabile che sovrascrive db

    Non riesco a farsi che non selezionando nessun valore da un elenco menù il db non venga sovrascritto.
    Posto il codice:

    if (isset($_POST['stato'])) {
    $stato= $_POST['stato'];
    } else {
    $stato=0;
    }

    Ho provato anche con NULL ma il campo mi viene sovrascritto e quindi perdo un dato che in realtà non volevo sovrascrivere.
    Si vede che ho cominciato il php da 1 settimana...
    Grazie anticipatamente

    LEGGE DEL WEB: Qualsiasi cosa tu stia cercando sulla rete, ci sarà almeno un sito porno che risponderà ai tuoi criteri di ricerca.

  2. #2
    Quote Originariamente inviata da d2D+ Visualizza il messaggio
    Non riesco a farsi che non selezionando nessun valore da un elenco menù il db non venga sovrascritto.
    Posto il codice:

    if (isset($_POST['stato'])) {
    $stato= $_POST['stato'];
    } else {
    $stato=0;
    }

    Ho provato anche con NULL ma il campo mi viene sovrascritto e quindi perdo un dato che in realtà non volevo sovrascrivere.
    Si vede che ho cominciato il php da 1 settimana...
    Grazie anticipatamente

    Puoi postare la query di update?

  3. #3
    Utente di HTML.it L'avatar di d2D+
    Registrato dal
    Dec 2005
    Messaggi
    67
    Posto tutto il codice ed evidenzio la query di UPDATE. Ci vorrebbero dei menu a cascata.....magaro più avanti quando comincio ad avere più dimestichezza con il PHP. Al momento voglio usare questo, anche perchè la pagina funziona correttamente salvo il fatto che la variabile $stato mi sovrascrive il dato nel db.
    Bye
    <?php
    if (isset ($_POST['invia'])) {
    $camera= $_POST['camera'];
    if (isset($_POST['stato'])) {
    $stato= $_POST['stato'];
    } else {
    $stato=0;
    }


    if (isset($_POST['manutenzione'])) {
    $manutenzione= $_POST['manutenzione'];
    // Checkbox is selected
    } else {
    $manutenzione='no M';
    }


    $conn=mysql_connect("localhost", "root","");
    $beta=mysql_select_db("sun2");


    $gamma= mysql_query("UPDATE trestelle SET stato= '$stato', manutenzione='$manutenzione' WHERE camera='$camera' ");
    $result=mysql_query("SELECT * FROM trestelle");
    while($row= mysql_fetch_array($result)){
    echo $row["camera"]." ".$row["stato"]." ".$row["manutenzione"]."<br />";
    }}


    ?>

    LEGGE DEL WEB: Qualsiasi cosa tu stia cercando sulla rete, ci sarà almeno un sito porno che risponderà ai tuoi criteri di ricerca.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Codice PHP:
    <?php
    if (isset ($_POST['invia'])) {
      
    $camera$_POST['camera'];
      if (isset(
    $_POST['stato'])) {
        
    $stato$_POST['stato'];
      } else {
        
    $stato=false// Qui metti false
      
    }

      if (isset(
    $_POST['manutenzione'])) {
        
    $manutenzione$_POST['manutenzione'];
        
    // Checkbox is selected
      
    } else {
        
    $manutenzione='no M';
      }

      
    $conn=mysql_connect("localhost""root","");
      
    $beta=mysql_select_db("sun2");

      
    // E qui modifica così:
      
    $query "UPDATE trestelle SET ";
      if (
    $stato !== false) {
        
    $query .= "stato= '$stato', "
      
    }
      
    $query .= "manutenzione='$manutenzione' WHERE camera='$camera'";
      
    $gammamysql_query($query);
      
    $result=mysql_query("SELECT * FROM trestelle");
      while(
    $rowmysql_fetch_array($result)){
        echo 
    $row["camera"]." ".$row["stato"]." ".$row["manutenzione"]."<br />";
      }
    }


    ?>
    Ultima modifica di tampertools; 05-04-2014 a 19:54
    No

  5. #5
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Codice PHP:
    <?php
    if (isset ($_POST['invia'])) {
      
    $camera$_POST['camera'];
      if (isset(
    $_POST['stato'])) {
        
    $stato$_POST['stato'];
      } else {
        
    $stato=false// Qui metti false
      
    }

      if (isset(
    $_POST['manutenzione'])) {
        
    $manutenzione$_POST['manutenzione'];
        
    // Checkbox is selected
      
    } else {
        
    $manutenzione='no M';
      }

      
    $conn=mysql_connect("localhost""root","");
      
    $beta=mysql_select_db("sun2");

      
    // E qui modifica così:
      
    $query "UPDATE trestelle SET ";
      if (
    $stato !== false) {
        
    $query .= "stato= '$stato', "
      
    }
      
    $query .= "manutenzione='$manutenzione' WHERE camera='$camera'";
      
    $gammamysql_query($query);
      
    $result=mysql_query("SELECT * FROM trestelle");
      while(
    $rowmysql_fetch_array($result)){
        echo 
    $row["camera"]." ".$row["stato"]." ".$row["manutenzione"]."<br />";
      }
    }


    ?>
    oppure risparmiando un if
    codice:
      if (isset($_POST['stato'])) {
       
        $stato= "stato='".$_POST['stato']."',";
      } else {
        $stato=' '; 
      }
    e la query

    "UPDATE trestelle SET $stato manutenzione='$manutenzione' WHERE camera='$camera' ")
    Ultima modifica di pippuccio76; 05-04-2014 a 21:46

  6. #6
    Utente di HTML.it L'avatar di d2D+
    Registrato dal
    Dec 2005
    Messaggi
    67

    $stato sovrascrive il db

    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    oppure risparmiando un if
    codice:
      if (isset($_POST['stato'])) {
       
        $stato= "stato='".$_POST['stato']."',";
      } else {
        $stato=' '; 
      }
    e la query

    "UPDATE trestelle SET $stato manutenzione='$manutenzione' WHERE camera='$camera' ")
    Non viene restituito nessun errore, ma la variabile $stato cancella quanto presente nel campo del db. Ho provato anche con 0 e NULL , ma niente da fare.
    grazie del tempo che mi avete dedicato.

    LEGGE DEL WEB: Qualsiasi cosa tu stia cercando sulla rete, ci sarà almeno un sito porno che risponderà ai tuoi criteri di ricerca.

  7. #7
    Quote Originariamente inviata da d2D+ Visualizza il messaggio
    Non viene restituito nessun errore, ma la variabile $stato cancella quanto presente nel campo del db. Ho provato anche con 0 e NULL , ma niente da fare.
    grazie del tempo che mi avete dedicato.
    Ma cosa stai dicendo ?? forse hai codice vecchio , perchè se utilizzi una delle due strade che ti abbiamo suggerito se $stato non è settato nell'update non avrai " stato= a qualcosa" e quindi quella query non potrà mai cancellarti quel valore dal db

  8. #8
    dovresti usare empty() al posto di isset(). isset() verifica che sia settato il campo e non gliene importa se il campo e' NULL, vuoto o con valore. controlla solo che ci sia l'indice associativo.

    empty() controlla che il campo non sia vuoto, NULL e sia settato.

    codice:
    if (!empty($_POST['stato'])) {
       
        $stato= "stato='".$_POST['stato']."',";
      } else {
        $stato='0'; 
      }

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

  9. #9
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    dovresti usare empty() al posto di isset(). isset() verifica che sia settato il campo e non gliene importa se il campo e' NULL, vuoto o con valore. controlla solo che ci sia l'indice associativo.

    empty() controlla che il campo non sia vuoto, NULL e sia settato.

    codice:
    if (!empty($_POST['stato'])) {
       
        $stato= "stato='".$_POST['stato']."',";
      } else {
        $stato='0'; 
      }
    Così non va bene ,avrà sempre lo stesso errore cioe l'update verrà sempre eseguito su stato , invece lui vuole che sia eseguito se c'è un valore ....mettendo 0 avrà un errore sql perchè l'update quando $stato è vuoto sarà :

    UPDATE trestelle SET 0 manutenzione='$manutenzione' WHERE camera='$camera'

    codice:
    if (!empty($_POST['stato'])) {
       
        $stato= "stato='".$_POST['stato']."',";
      } else {
        $stato=' '; 
      }
    Così va bene ....

  10. #10
    Se metti come valore uno spazio il contenuto del campo verra' sovrascritto con uno spazio. non so a cosa serve ma se vuole mantenere inalterato il campo ha solo due vie

    1) non esegue l'update per il campo stato, cioe' lo toglie dalla query
    2) ribatte lo stesso valore nel campo stato

    es:

    if( $stato == 0) {
    $set = "manutenzione='$manutenzione'";
    } else {
    $set = "stato= '$stato', manutenzione='$manutenzione'";
    }


    "UPDATE trestelle SET $set WHERE camera='$camera' "

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

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.