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

    modifica al db tramite php

    Ciao, ho fatto questo codice moltoooooooo semplice :P

    codice:
    echo "<table border='0' width='85%' class='bordo'>"; 
    $result = mysql_query("SELECT * FROM news ORDER BY id desc"); 
    while ($records = mysql_fetch_array($result)){ 
    echo "<tr><td class='menu' width='15%'>Id: ".$records['id'] . " </td><td class='menu' width='70%'>  Titolo:   ".$records['titolo'] . "</td>"; 
    } 
    echo "</table>"; 
    
    if(isset($_POST['id'])){ 
    $id_news = $_POST['id']; 
    $delete = mysql_query ("UPDATE news SET id='".$_POST['id']."', titolo='".$_POST['titolo']."', antp_news='".$_POST['antp_news']."', img='".$_POST['img']."', descrizione='".$_POST['descrizione']."', tratto ='".$_POST['tratto']."' WHERE id='".$_POST['id']."', titolo='".$_POST['titolo']."', antp_news='".$_POST['antp_news']."', img='".$_POST['img']."', descrizione='".$_POST['descrizione']."', tratto ='".$_POST['tratto']."'"); 
    echo "
    News $id_news modifica con successo
    
    "; 
    } 
    
    echo " 
    <form action='".$SERVER['PHP_SELF']."' method='post'> 
    <table border='0' cellpadding='0' cellspacing='0' class='bordo' width='85%'> 
    <tr> 
    <td width='30%' class='menu'> 
    Id: </td> <td class='menu'><input type='text' name='id' class='contatti'></td> 
    </tr> 
    <tr> 
    <td width='30%' class='menu'> 
    Titolo: </td> <td class='menu'><input type='text' name='titolo' class='contatti'></td> 
    </tr> 
    <tr> 
    <td width='30%' class='menu'> 
    Anteprima news: </td> <td class='menu'><textarea name='antp_news' cols='45' rows='7' class='contatti'></textarea></td> 
    </tr> 
    <tr> 
    <td width='30%' class='menu'> 
    Immagine link (solo la cartella): </td> <td class='menu'><input type='text' name='img' class='contatti'></td> 
    </tr> 
    <tr> 
    <td width='30%' class='menu'> 
    News completa: </td> <td class='menu'><textarea name='descrizione' cols='45' rows='7' class='contatti'></textarea></td> 
    </tr> 
    <tr> 
    <td width='30%' class='menu'> 
    Tratto: </td> <td class='menu'><input type='text' name='tratto' class='contatti'></td> 
    </tr> 
    <tr><td align='center' width='30%'> 
    </td><TD align='center'>
     
        <input name='submit' type='submit' value='Invia' class='contatti'> </TD> 
    </tr> 
    </table> 
    </form> 
    ";
    Questo codice non mi da errore ma non mi aggiorna i dati del db come mai??

    Grazie

  2. #2
    Utente di HTML.it L'avatar di buba88
    Registrato dal
    Feb 2004
    Messaggi
    538
    $delete = mysql_query ("UPDATE news SET id='".$_POST['id']."', titolo='".$_POST['titolo']."', antp_news='".$_POST['antp_news']."', img='".$_POST['img']."', descrizione='".$_POST['descrizione']."', tratto ='".$_POST['tratto']."' WHERE id='".$_POST['id']."', titolo='".$_POST['titolo']."', antp_news='".$_POST['antp_news']."', img='".$_POST['img']."', descrizione='".$_POST['descrizione']."', tratto ='".$_POST['tratto']."'");


    l'errore è in questa riga.
    Prima di tutto, l'id nn dovrebbe mai essere modificato, in quanto di solito (nel tuo caso penso cosi) rappresenta la chiave primaria, ovvero un campo che nn deve mai ripetersi nelle varie righe

    ma l'errore più grossolano è che con la clausola WHERE tu indiche che queste modifiche vanno effettuate nelle righe che hanno id='".$_POST['id']."', titolo='".$_POST['titolo']."', etccc in pratica cerchi una riga che abbia già in se le modifiche che vuoi fare!

    in pratica, ecco come cambiare questa riga:
    codice:
    $delete = mysql_query ("UPDATE news SET  titolo='".$_POST['titolo']."', antp_news='".$_POST['antp_news']."', img='".$_POST['img']."', descrizione='".$_POST['descrizione']."', tratto ='".$_POST['tratto']."' WHERE id='".$_POST['id']."'");
    in questo modo effettui le modifiche a tutti i campi ma nn a id, che ti ricordo nn deve cambiare in quanto rischieresti ti immetterne uno già usato. le modifiche vengono effettuate dove l'id è uguale all'id che hai postato, quindi proprio in quella riga che volevi modificare.

    probabilmente avrai fatto un form per queste modifiche, ma ti consiglio di evitare la modifica della campo id.

  3. #3
    ok grazie mille adesso provo

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.