Visualizzazione risultati 1 fino 13 di 13

Discussione: modifica profilo _ part 2

  1. #1
    Guest

    Predefinito modifica profilo _ part 2

    allora, ecco quale è il mio problema :?????:
    interrogo il db per mostrare il profilo di un utente in un form, però nn so come rendere possibile la modifica dal medesimo form
    faccio esempio

    select * from utenti where id = $id
    <form name=\"form1\" method=\"post\" action=\"\">"
    <input name=\"xnome\" type=\"text\" value=\"$row[nome]\" class=\"unnamed1\">
    <input name=\"xcognome\" type=\"text\" value=\"$row[cognome]\" class=\"unnamed1\">"
    <input type=\"submit\" name=\"Submit\" value=\"Modifica Dati\" class=\"unnamed1\"></form>

    ok, tralasciando parti di codice che nn ho inserito, il profilo di un utente viene mostrato correttamente.però, se un utente cambia il valore del campo "xnome" e clicca su modifica, come faccio a cambiare il valore nel db?
    io ho provato a mettere
    update set ecc ecc ecc, ma viene sempre e cmq inserito il value=\"$row[nome]\"
    come si risolve? :?????:

    grazie, djgaGGio

  2. #2
    Guest

    Predefinito

    come è possibile ti mette lo stesso valore di prima?
    posta un po il codice per aggiornare il db

  3. #3
    Guest

    Predefinito

    @mysql_query("UPDATE user SET id='$row[id]' , nick='$row[nick]' , email='$xemail' , nome='$xnome' , cognome='$xcognome' WHERE id = $id");

  4. #4
    Guest

    Predefinito

    Prima di tutto non puoi modificare l'id perchè è a quello che fa riferimento la clausola WHERE.
    Poi devi scrivere così: nick=".'$row[nick]'."


    Ciaooooooo!!!!!!!!!

  5. #5
    Guest

    Predefinito

    no ... nn riesco a farlo andare...
    allora, facciamo un esempio piccolo per capire dove sta l'errore
    Codice PHP:
    $result = mysql_query("SELECT * FROM user WHERE id = $id") or die("Query non valida: " . mysql_error());
    $row = mysql_fetch_array($result);
    echo
    " <center><form name=\"form1\" method=\"post\" action=\"\">"
    . " <input name=\"xnome\" type=\"text\" value=\"$row[nome]\" class=\"unnamed1\">"
    . " <select name=\"xocchi\" class=\"unnamed1\">";
    //questo è il codice per visualizzare il profilo in un campo select
    $okki = array ("Altro", "Azzurri", "Grigi", "Marroni", "Neri", "Verdi", "Non definito");
    $varokki = $row['occhi'];
    foreach(
    $okki as $okk)
    {
    if(
    $okk == $varokki)
    echo
    "<option value=\"$okk\" selected>$okk</option>";
    else echo
    "<option value=\"$okk\">$okk</option>";
    }
    echo
    " </select>"
    ."<input type=\"hidden\" name=\"mod\" value=\"modif\">"
    . " <input type=\"submit\" name=\"Submit\" value=\"Modifica Dati\" class=\"unnamed1\"></form></center>"
    ."";
    if (
    $mod == "modif")
    {
    @
    mysql_query("UPDATE user SET nome=".'$xnome'.", occhi=".'$okk'." WHERE id='$row[id]'");
    echo
    "<center>profilo modificato correttamente</center>";
    }
    dove sta l'errore? perchè nn va ?

  6. #6
    Guest

    Predefinito

    Codice PHP:
    $result = mysql_query("SELECT * FROM user WHERE id = $id") or die("Query non valida: " . mysql_error());
    $row = mysql_fetch_array($result);
    echo
    " <center><form name=\"form1\" method=\"post\" action=\"\">"
    . " <input name=\"xnome\" type=\"text\" value=\"$row[nome]\" class=\"unnamed1\">"
    . " <select name=\"xocchi\" class=\"unnamed1\">";
    //questo è il codice per visualizzare il profilo in un campo select
    $okki = array ("Altro", "Azzurri", "Grigi", "Marroni", "Neri", "Verdi", "Non definito");
    $varokki = $row['occhi'];
    foreach(
    $okki as $okk)
    {
    if(
    $okk == $varokki)
    echo
    "<option value=\"$okk\" selected>$okk</option>";
    else echo
    "<option value=\"$okk\">$okk</option>";
    }
    echo
    " </select>"
    ."<input type=\"hidden\" name=\"mod\" value=\"modif\">"
    . " <input type=\"submit\" name=\"Submit\" value=\"Modifica Dati\" class=\"unnamed1\"></form></center>"
    ."";
    if (
    $mod == "modif")
    {
    @
    mysql_query("UPDATE user SET nome='".$xnome."', occhi='".$okk."' WHERE id='".$row[id]."'");
    echo
    "<center>profilo modificato correttamente</center>";
    }
    try now

  7. #7
    Guest

    Predefinito

    nada.... ma che devo metterci in action="" ?

  8. #8
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    quando fai il submit vai a rifare la query e lui ti rilegge il dato orginale e riscrive quello...

    devi usare dei nomi diversi per i campi e per la query di update rispetto ai nomi originali letti...

    *edit

    oppure metti un if che ti faccia saltare tutta la parte di lettura se hai fatto il submit... e stampi na frase tipo "profilo aggiornato" invece di ristampare il form
    Ultima modifica di Evcz : 12-12-2004 alle ore 14.50.52
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da Evcz
    quando fai il submit vai a rifare la query e lui ti rilegge il dato orginale e riscrive quello...

    devi usare dei nomi diversi per i campi e per la query di update rispetto ai nomi originali letti...

    *edit

    oppure metti un if che ti faccia saltare tutta la parte di lettura se hai fatto il submit... e stampi na frase tipo "profilo aggiornato" invece di ristampare il form
    puoi spiegarti meglio ??? magari con un esempio...

  10. #10
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    Citazione Originalmente inviato da djgaggio
    puoi spiegarti meglio ??? magari con un esempio...
    se non ho interpretato male la tua pagina fa questo:

    leggi i dati originali
    li salva in alcune variabili
    li stampa nel form

    SE submit
    **** aggiorna usando i dati presenti nelle variabili

    fine
    ora faccio l'ipotesi che apro la pag per la prima volta...

    bene.. si collega al database, legge i dati e fa questo:

    Codice PHP:
    foreach($okki as $okk)
    {
    if(
    $okk == $varokki)
    echo
    "<option value=\"$okk\" selected>$okk</option>";
    else echo
    "<option value=\"$okk\">$okk</option>";
    }
    mi stampa un select di tutti gli occhi selezionando quelli miei.

    bene, io ora modifico il select e faccio il submit.... durante il submit $okk conterrà il nuovo valore....

    ora guardiamo cosa succede durante il submit:

    si collega al database, legge i dati e fa questo:

    Codice PHP:
    foreach($okki as $okk)
    {
    if(
    $okk == $varokki)
    echo
    "<option value=\"$okk\" selected>$okk</option>";
    else echo
    "<option value=\"$okk\">$okk</option>";
    }
    a questo punto RISTAMPA IL FORM SEMPRE COM'ERA PRIMA e FA l'update al database salvando come colore degli occhi l'ultimo della lista...

    Codice PHP:
    mysql_query("UPDATE user SET nome=".'$xnome'.", occhi=".'$okk'." WHERE id='$row[id]'");
    infatti all'interno di quella pagina la variabile $okk contiene il colore presente come ultimo dato nell'array...
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  11. #11
    Guest

    Predefinito

    praticamente reinserisce nel db i record estratti dal db ... giusto ?
    oppure metti un if che ti faccia saltare tutta la parte di lettura se hai fatto il submit...
    dici di mettere l'if prima ?
    Codice:
    if (isset($mod))
    {
    mysql_query("UPDATE user SET nome=".'$xnome'.", occhi=".'$okk'."  WHERE id='$row[id]'"); 
    echo "profilo aggiornato";
    } else {
    //stampa il form col profilo letto dal db
    }

  12. #12
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    secondo me si ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  13. #13
    Guest

    Predefinito

    sì...funziona .... ottimo :D

    grazie mille a tutti

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •