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

    [MySQL] Problema edit con semplice blog in php

    Salve a tutti,

    seguendo qualche guida online ho implementaro questo semplice sistema di inserimento contenuti in un sito internet con php e MySQL.

    L'inserimento dei post funziona, la tabella si riempie nel modo corretto. La visualizzazione dell'anteprima e dei post funziona correttamente.

    Il problema è l'edit dei post: il form di edit si riempie, ma quando submitto le modifiche, esse non vengono applicate al post e il tutto rimane come prima.

    Dovrebbe essere una cosa molto semplice da sistemare, ma proprio non ci riesco... vi allego tutti i file.

    Grazie!


    edit.php



    codice:
    <?                            include "config.php";
                                if(isset($_GET['id'])) {
                                    $id=$_GET['id'];
                                    
                                        $sql = "SELECT * FROM articoli WHERE art_id=$id";
                                        $query = mysql_query($sql) or die (mysql_error());    
                                        $query1 = mysql_fetch_array($query);                                        
                                }
                                
                                if(isset($_POST['submit'])){
                                    $query1['art_titolo'] = $_POST['$titolo'];
                                    $query1['art_luogo'] = $_POST['$luogo'];
                                    $query1['art_ora'] = $_POST['$ora'];
                                    $query1['art_articolo'] = $_POST['$articolo'];
                                    
                                    $query2 = mysql_query("UPDATE articoli SET art_titolo='$titolo', 
                                                                               art_luogo='$luogo', 
                                                                               art_ora='$ora', 
                                                                               art_articolo='$articolo' WHERE art_id='$id'");
                                                                
                                }
                                
                            ?>
                                                      
                        <form action="edit.php" method="post" id="form1">
                            Titolo:<br>
                            <input name="titolo" value="<? echo $query1['art_titolo'] ?>" type="text" size="23"><br>
                            Luogo:<br>
                            <input name="luogo" value="<? echo $query1['art_luogo'] ?>" type="text" size="23"><br>
                            Data evento (gg-mm-aaaa):<br>
                            <input name="quando" value="<? echo $query1['art_quando'] ?>"type="text" size="7"><br>
                            Ora evento (hh.mm):<br>
                            <input name="ora" value="<? echo $query1['art_ora'] ?>" type="text" size="2"><br>
                            Testo:<br>
                            <textarea name="articolo" cols="27" rows="7"><? echo $query1['art_articolo'] ?></textarea><br>
                            <input name="submit" type="submit" value="Modifica">
                        </form>
                                    
                        </div>
                        
                  </div>
                
            </div>

  2. #2
    Nessuno? Dovrebbe essere facile.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se è tanto facile, perchè non sistemi ?

    Comunque...
    if(isset($_POST['submit'])){
    $
    art_titolo= $_POST['titolo'];
    $
    art_luogo= $_POST['luogo'];
    $
    art_ora= $_POST['ora'];
    $
    art_articolo = $_POST['articolo'];
    $id = $_POST['id'];

    $query2
    = mysql_query("UPDATE articoli SET art_titolo='$art_titolo',
    art_luogo='$art_luogo',
    art_ora='$art_ora',
    art_articolo='$art_articolo' WHERE art_id='$id'"
    );
    }

    Nella form ti manca un campo hidden chiamato id

    <input name="id" value="<? echo $query1['id']?>" type="hidden">
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se è tanto facile, perchè non sistemi ?

    Comunque...
    if(isset($_POST['submit'])){
    $
    art_titolo= $_POST['titolo'];
    $
    art_luogo= $_POST['luogo'];
    $
    art_ora= $_POST['ora'];
    $
    art_articolo = $_POST['articolo'];
    $id = $_POST['id'];

    $query2
    = mysql_query("UPDATE articoli SET art_titolo='$art_titolo',
    art_luogo='$art_luogo',
    art_ora='$art_ora',
    art_articolo='$art_articolo' WHERE art_id='$id'"
    );
    }

    Nella form ti manca un campo hidden chiamato id

    <input name="id" value="<? echo $query1['id']?>" type="hidden">

    Grazie! Ma non va ancora...

    codice:
    <?							include "config.php";
    							if(isset($_GET['id'])) {
    								$id=$_GET['id'];
    								
    									$sql = "SELECT * FROM articoli WHERE art_id=$id";
    									$query = mysql_query($sql) or die (mysql_error());	
    									$query1 = mysql_fetch_array($query);										
    							}
    							
    							if(isset($_POST['submit'])){
    								$query1['art_titolo'] = $_POST['$titolo'];
    								$query1['art_luogo'] = $_POST['$luogo'];
    								$query1['art_ora'] = $_POST['$ora'];
    								$query1['art_articolo'] = $_POST['$articolo'];
    								
    								$query2 = mysql_query("UPDATE articoli SET art_titolo='$titolo', 
    																		   art_luogo='$luogo', 
    																		   art_ora='$ora', 
    																		   art_articolo='$articolo' WHERE art_id='$id'");
    															
    							}
    							
    						?>
                                                      
                        <form action="edit.php" method="post" id="form1">
                        	<input name="id" value="<? echo $query1['art_id'] ?>" type="hidden">
                            Titolo:<br>
                            <input name="titolo" value="<? echo $query1['art_titolo'] ?>" type="text" size="23"><br>
                            Luogo:<br>
                            <input name="luogo" value="<? echo $query1['art_luogo'] ?>" type="text" size="23"><br>
                            Data evento (gg-mm-aaaa):<br>
                            <input name="quando" value="<? echo $query1['art_quando'] ?>"type="text" size="7"><br>
                            Ora evento (hh.mm):<br>
                            <input name="ora" value="<? echo $query1['art_ora'] ?>" type="text" size="2"><br>
                            Testo:<br>
                            <textarea name="articolo" cols="27" rows="7"><? echo $query1['art_articolo'] ?></textarea><br>
                            <input name="submit" type="submit" value="Modifica">
                        </form>

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nel codice che posti non vedo tracce del mio tranne l'input type hidden.

    Di più. Ricordati che vedo solo quello che hai postato.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Nel codice che posti non vedo tracce del mio tranne l'input type hidden.

    Di più. Ricordati che vedo solo quello che hai postato.
    Non avevo notato altre modifiche oltre al campo hidden. Ora provo con più attenzione

    Certo, il resto del codice dovrebbe funzionare bene

  7. #7
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Nel codice che posti non vedo tracce del mio tranne l'input type hidden.

    Di più. Ricordati che vedo solo quello che hai postato.
    Nope, non funziona ancora.. ricapitolando:

    I campi del DB sono nominati:

    art_id
    art_titolo
    art_date
    art_articolo
    art_luogo
    art_ora

    Nell'elenco dei post, seleziono quello da editare:

    codice:
    <a href='edit.php?id=$art_id'> Edit &nbsp;</a>
    Nel file edit.php invece:

    codice:
    <?include "config.php";
    if(isset($_GET['id'])) {
                $id=$_GET['id'];
                                    
                $sql = "SELECT * FROM articoli WHERE art_id=$id";
                $query = mysql_query($sql) or die (mysql_error());    
                $query1 = mysql_fetch_array($query);                                        
                    }
                                
                if(isset($_POST['submit'])){
                    $art_titolo= $_POST['titolo'];
                    $art_luogo= $_POST['luogo'];
                    $art_ora= $_POST['ora'];
                    $art_articolo = $_POST['articolo'];
                    $id = $_POST['id'];
                                    
                $query2 = mysql_query("UPDATE articoli SET art_titolo='$art_titolo', 
                                    art_luogo='$art_luogo', 
                                    art_ora='$art_ora', 
                                    art_articolo='$art_articolo' WHERE art_id='$id'");
                                }
                                                                
                                
                                
            ?>
                                                      
    <form action="edit.php" method="post" id="form1">
           <input name="id" value="<? echo $query1['art_id'] ?>" type="hidden">
             Titolo:<br>
               <input name="titolo" value="<? echo $query1['art_titolo'] ?>" type="text" size="23"><br>
             Luogo:<br>
               <input name="luogo" value="<? echo $query1['art_luogo'] ?>" type="text" size="23"><br>
             Data evento (gg-mm-aaaa):<br>
               <input name="quando" value="<? echo $query1['art_quando'] ?>" type="text" size="7"><br>
             Ora evento (hh.mm):<br>
               <input name="ora" value="<? echo $query1['art_ora'] ?>" type="text" size="2"><br>
             Testo:<br>
               <textarea name="articolo" cols="27" rows="7"><? echo $query1['art_articolo'] ?>          </textarea><br>
               <input name="submit" type="submit" value="Modifica">
    </form>
    Ho un post, clicco su edit e mi vengono inseriti i campi giusti: ma quando submitto, non cambia nulla.
    Il post viene creato e visualizzato nel sito correttaente, sembra non ci siano errori nel resto del codice.
    Ultima modifica di Luca Crippa; 16-04-2016 a 12:36

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quando qualcosa non mi funziona, farcisco il codide di vari echo per vedere dove php passa o non passa. Poi faccio anche degli echo delle diverse variabili per vedere se i valori sono giusti.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Quando qualcosa non mi funziona, farcisco il codide di vari echo per vedere dove php passa o non passa. Poi faccio anche degli echo delle diverse variabili per vedere se i valori sono giusti.
    Il problema era qui:

    codice:
    <script>    
    window.onload=function() {
          document.getElementById("form1").onsubmit=function() {
            window.location.replace("/php/edited.php");
            return false;
          }
        }
    </script>

    Saltava l'update del DB. Quando risolvo posto la soluzione!

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.