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

    Problema UPDATE da form.

    Dovrei visualizzare le colonne di una data riga all'interno delle textarea di un form, e fin qui tutto ok.
    L'utente deve poter modificare le textarea ed infine, alla pressione del tasto "Invia" dovrebbe essere eseguita la query update e dev'essere ricaricata la pagina con i nuovi dati nelle textarea.

    Pagina: http://www.lupin87.altervista.org/managenews.php?id=25 (ci sono 25 news random sul db per fare le prove)

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    <link href="areastyle.css" rel="stylesheet" type="text/css" />
    <?php
    include 'funcvars.php';

    // connessione al DB
    mysql_select_db($dbname$link);
    if (!
    $link) {
        die(
    'Not connected : ' mysql_error());
    }
    mysql_query("SET NAMES utf8");
    setlocale(LC_TIME'it_IT');
    $data=ucwords(utf8_encode(strftime("%A %d %B %Y alle %H:%M")));

    if(isset(
    $_COOKIE['nick_areastudio'])){ 
         
    $username $_COOKIE['nick_areastudio'];
        
    }
        
    $ID $_GET["id"];
        
    $news mysql_query("SELECT * FROM news WHERE id= '$ID'");
        
    $news mysql_fetch_array($news);
        
    $news_errors=0;

    // Verifica la presenza di un input    
        
    if (isset($_POST['submit'])) {
    //Verifica che il form sia compilato interamente
     
    if (!$_POST['data'] | !$_POST['titolo'] | !$_POST['corpo'] | !$_POST['corso']) {$news_errors=1;
     } else {

         if (!
    get_magic_quotes_gpc()) {
            
    $_POST['data'] = addslashes($_POST['data']);
             
    $_POST['titolo'] = addslashes($_POST['titolo']);
             
    $_POST['corso'] = addslashes($_POST['corso']);
             
    $_POST['corpo'] = addslashes($_POST['corpo']);
         }
            
    $data=$_POST['data'];
            
    $titolo=$_POST['titolo'];
             
    $corso=$_POST['corso'];
             
    $corpo=$_POST['corpo'];

    //Query UPDATE
    $newsupdate "UPDATE news SET data='$data',titolo='$titolo',corpo='$corpo',corso='$corso' WHERE id = '$ID'"
    $edit_news mysql_query($newsupdate);
        
    $news_errors=3;
        
     }
        
    }
        
        
    ?>
    </head>

    <body>

    <div id="form" align="center">
    <form action="<?php echo $_SERVER['PHP_SELF'.'$ID']; ?>" method="post">
      
      <table  width="529" border="0" align="center">
      <tr>
        <td width="78">Data:</td>
        <td width="441"><textarea id="news_edit_titolo" type="text" name="data" cols="57" rows="1" ><?php echo"$news[1]?></textarea></td>
      </tr>
      <tr>
        <td width="78">Titolo:</td>
        <td width="441"><textarea id="news_edit_titolo" type="text" name="titolo" cols="57" rows="1" ><?php echo"$news[2]?></textarea></td>
      </tr>
      <tr>
        <td valign="top">Notizia:</td>
        <td><textarea id="inputnotizia" name="corpo" cols="57" rows="3" ><?php echo"$news[3]?></textarea></td>
      </tr>
      <tr>
        <td height="28">
        </td>
        <td align="right" width="400">
        <fieldset>
                <select name="corso" >
                <?php
                    
    switch($news[4])
                    {
                        case(
    $news[4] == "Generico"):
                            echo
    "<option value=\"Generico\" selected=\"selezione\">Generico</option>
                                 <option value=\"Chitarra\">Chitarra</option>
                                 <option value=\"Basso\">Basso</option>
                                 <option value=\"Batteria\">Batteria</option>
                                 <option value=\"Tastiera\">Tastiera</option>
                                 "
    ;
                                 break;
                                 
                        case(
    $news[4] == "Chitarra"):
                            echo
    "<option value=\"Generico\">Generico</option>
                                 <option value=\"Chitarra\" selected=\"selezione\">Chitarra</option>
                                 <option value=\"Basso\">Basso</option>
                                 <option value=\"Batteria\">Batteria</option>
                                 <option value=\"Tastiera\">Tastiera</option>
                                 "
    ;
                                 break;
                        case(
    $news[4] == "Basso"):
                            echo
    "<option value=\"Generico\">Generico</option>
                                 <option value=\"Chitarra\">Chitarra</option>
                                 <option value=\"Basso\" selected=\"selezione\">Basso</option>
                                 <option value=\"Batteria\">Batteria</option>
                                 <option value=\"Tastiera\">Tastiera</option>
                                 "
    ;
                                 break;
                        case(
    $news[4] == "Batteria"):
                            echo
    "<option value=\"Generico\">Generico</option>
                                 <option value=\"Chitarra\">Chitarra</option>
                                 <option value=\"Basso\">Basso</option>
                                 <option value=\"Batteria\" selected=\"selezione\">Batteria</option>
                                 <option value=\"Tastiera\">Tastiera</option>
                                 "
    ;
                                 break;
                        case(
    $news[4] == "Tastiera"):
                            echo
    "<option value=\"Generico\">Generico</option>
                                 <option value=\"Chitarra\">Chitarra</option>
                                 <option value=\"Basso\">Basso</option>
                                 <option value=\"Batteria\">Batteria</option>
                                 <option value=\"Tastiera\" selected=\"selezione\">Tastiera</option>
                                 "
    ;
                                 break;
                                 
                    }
                
    ?>
                </select>
                |
                <input type="submit" name="submit" value="Invia">
        </fieldset>
               </td>
              
      </tr>
    </table>
    </form>

    </div>
    <div id="registererror" align="center">
    <?php
                    
    switch($news_errors)
                    {
                        case (
    $news_errors==1):
                            echo 
    'Si prega di compilare tutti i campi.';
                            break;
                        case (
    $news_errors==2):
                            echo 
    'Si è verificato un errore in fase di pubblicazione.
     Si prega di riprovare.
     Se l\'errore persiste contattate l\'amministratore all\' indirizzo:
     [email]riccardo_castelli2@yahoo.it[/email]'
    ;
                            break;
                        case (
    $news_errors==3):
                            echo 
    "Pubblicazione effettuata con successo!";
                            
    // redirect ("managenews.php?id="."$ID", 1);
                            
    break;
                    }

    ?>
    </div>
    </body>
    </html>

  2. #2
    Se fai prima la select e poi l'update è ovvio che continuerai a visualizzare il vecchio contenuto dopo il submit. Dovresti invertire l'ordine delle operazioni su DB mettendo prima l'update (se esso va eseguito) e poi la select. In questo modo la prima volta viene effettuata solo la select e la volta successiva prima l'update con i nuovi dati e poi la select che ti permette di visualizzarli correttamente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Originariamente inviato da satifal
    Se fai prima la select e poi l'update è ovvio che continuerai a visualizzare il vecchio contenuto dopo il submit. Dovresti invertire l'ordine delle operazioni su DB mettendo prima l'update (se esso va eseguito) e poi la select. In questo modo la prima volta viene effettuata solo la select e la volta successiva prima l'update con i nuovi dati e poi la select che ti permette di visualizzarli correttamente.
    Correggo subito, grazie mille.

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.