Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001

    query che non aggiorna tutti i campi di un record

    problema ho un form che stampa a video i dati pronti per esser modificati nel db

    Codice PHP:


    <?php

    require ("../inc.php");
    require (
    "../conn.php");


    $sql="SELECT * FROM sw WHERE IDsw='".$_GET[riga_id]."' AND des_sw='".$_GET[des_sw]."'";



    $risultati_mysql=mysql_query($sql,$connessione);
    $num_righe=mysql_num_rows($risultati_mysql);

    if  ( 
    $num_righe == ) {
    echo 
    "Spiacente, non ci sono informazioni
    "
    ;
    } else {


    $risultati_mysql=mysql_query($sql,$connessione);
    while (
    $riga=mysql_fetch_array($risultati_mysql))
    {

    $des_sw=$riga["des_sw"];
    $ver=$riga["ver"];
    $data=$riga["data"];
    $operatore=$riga["operatore"];
    $IDsw=$riga["IDsw"];

    }

    echo 
    "<form METHOD=\"POST\" action=\"change_sw.php\" name=\"form\">

    <table>


    <tr>
    <td><input name=\"des_sw\" type=\"text\" size=\"50\" value=
    $des_sw></td>
    <td><input name=\"ver\" type=\"text\" size=\"20\" value=
    $ver></td>
    <td><input name=\"data\" type=\"text\" size=\"20\" value=
    $data></td>
    <td><input name=\"operatore\" type=\"text\" size=\"20\" value=
    $operatore></td>
    </tr>"
    ;

    echo 
    "<input type=\"hidden\" name=\"IDsw\" value=\"$IDsw\">";
    echo 
    "<input type=\"hidden\" name=\"des_sw\" value=\"$des_sw\">";



    echo 
    "<tr><td colspan=\"4\"><input type=\"submit\" value=\"Modifica il record !\"></td></tr>";

    echo 
    "</form>";
    # fine dell'else

    echo "</table>";


    mysql_close($connessione);

    ?>


    qui il codice x effettuare update
    change_sw.php

    Codice PHP:

    require ("../inc.php");
    require (
    "../conn.php");



    $sql="UPDATE sw SET des_sw='".$_POST[des_sw]."', ver='".$_POST[ver]."', data='".$_POST[data]."', operatore='".$_POST[operatore]."' WHERE IDsw='".$_POST[IDsw]."' AND des_sw='".$_POST[des_sw]."'";


    if (!
    mysql_query($sql,$connessione)) {
    echo 
    "Errore, modifica del record non riuscita
    "
    ;
    echo 
    "
    <A HREF=\"index.php\"> Indietro</A>"
    ;
       exit;
      } else {

    # Modifica OK, informa l'utente
    echo "Tabella aggiornata, [".mysql_affected_rows()."] record modificati.
    "
    ;
        echo 
    "Il record di è stato modificato";
    }


    mysql_close($connessione); 
    il mio problema è che il campo des_sw (guarda caso il campo messo hidden nel form) non viene modificato mentre tutti gli altri campi si

    come posso risolvere????
    Vola solo chi ha il coraggio di farlo

  2. #2

    Re: query che non aggiorna tutti i campi di un record

    Originariamente inviato da noos

    il mio problema è che il campo des_sw (guarda caso il campo messo hidden nel form) non viene modificato mentre tutti gli altri campi si

    come posso risolvere????
    l'ultimo campo del form sovrascrive il precedente con lo stesso nome, quindi essendo un campo hidden non viene modificato nel form e percio' ripresenta lo stesso contenuto per l'UPDATE che ovviamente essendo lo stesso non viene applicato. Domanda: che dovrebbe mettere???

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

  3. #3
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    ciao, qualsiasi carattere alfanumerico

    altra cosa che mi sono scordato di scrivere è che nella query dell'update deve fare un confronto nel where con due dati, in questo caso WHERE IDsw='".$_POST[IDsw]."' AND des_sw='".$_POST[des_sw]."', xchè per questa tabella ho N campi che devono x forza di cose avere lo stesso ID

    help
    Vola solo chi ha il coraggio di farlo

  4. #4
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    up
    Vola solo chi ha il coraggio di farlo

  5. #5
    La tua query è:

    $sql="UPDATE sw SET des_sw='".$_POST[des_sw]."', ver='".$_POST[ver]."', data='".$_POST[data]."', operatore='".$_POST[operatore]."' WHERE IDsw='".$_POST[IDsw]."' AND des_sw='".$_POST[des_sw]."'";

    ovvero cerca tutti le righe con determinato IDsw e des_sw, cambia i valori all'interno
    due sono le cose:

    a) IDsw penso sia primary key, dunque non serve confrontare anche des_sw

    b) tu prima trovi la riga con quel valore di des_sw e poi imposti lo stesso!
    in altre parole la parte "set des_sw = '".$_POST['des_sw']."'," deve essere cambiata con qualcosa tipo

    "set des_sw = '".$_POST['des_sw_new']."',"

    naturalmente anche nel form html devi cambiare il name del text input a des_sw_new
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

  6. #6
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    non và
    Vola solo chi ha il coraggio di farlo

  7. #7
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    ho rifatto una prova, ho cancellato il contenuto del DB e ho riscritto i pochi dati che c'erano

    ho riprovato il suggerimento di gcampa e ora sembra che il tutto funziona , da qui però la cosa molto strana se cerco di modificare nuovamente un record dopo tot tempo, il record stesso non viene aggiornato



    sapete come mai?? ma esiste un certo tempo (tipo 10 minuti) per modificare i record ???? :master: :master: :master: :master:
    Vola solo chi ha il coraggio di farlo

  8. #8
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    niente ragà???
    Vola solo chi ha il coraggio di farlo

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.