Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54

    Problemino query update

    Sto diventando pazzo e non capisco perche'... non e' la prima volta che utilizzo la query update per modificare le news dal mio pannello di amministrzione...

    Ho il seguente form dove modifico la news:

    codice:
    
    
    <?php
    $query = "SELECT * FROM news WHERE id='$id'";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    ?>
    <form action="index.php?gest=news-modificata" method="POST">
    Titolo: <input type="text" name="titolo" value="<?php echo $row['titolo']; ?>" />
    
    <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
    <input type="hidden" name="data" value="<?php echo $row['data']; ?>" />
    Contenuto:
    
    <textarea name="contenuto" rows="30" cols="70"><?php echo $row['contenuto']; ?></textarea>
    
    
    
    <input type="submit" value="Modifica">
    </p>
    Quando schiaccio modifica, mi manda nella pagina index.php?gest=news-modificata dove dovrebbe aggiornare i campi modificati, invece mi da esito positivo ma non modifica nulla.
    Ecco il codice:

    codice:
    
    
    <?php
    $query = "UPDATE news SET id='$id', data='$data', titolo='$titolo', contenuto='$contenuto' WHERE id='$id'";
    $result = mysql_query($query);
    echo "News modificata!";
    ?></p>
    non riesco a capire dove sia l'errore... le ho quasi provate tutte, anche modificando l'action del form settando action="index.php?gest=modifica-news&id=$row[id]" ma niente....

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    aggiungi nello script di aggiornamento dopo il settaggio della variabile $query:

    Codice PHP:
    var_export($_POST);print'
    '
    ;
    print 
    $query;print'
    '

    e vediamo un po' che esce...
    ...ma lo script di aggiornamento è più lungo o è proprio solo quelle poche righe?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    lo script io l'avevo fatto cosi:

    codice:
    
    
    <?php
    $id = (int) htmlspecialchars($_POST['id']);
    $data = htmlspecialchars($_POST['data']);
    $titolo = htmlspecialchars($_POST['titolo']);
    $contenuto = htmlspecialchars($_POST['contenuto']);
    $query = "UPDATE news SET id='$id', data='$data', titolo='$titolo', contenuto='$contenuto' WHERE id='$id'";
    $result = mysql_query($query);
    echo "News modificata!";
    ?>
    </p>

  4. #4
    $result = mysql_query($query) or die(mysql_error()) ;

    sicuro di avere fatto la connessione al server mysql?



    @ edit.... ti stampa quella risposta perche' e' richiesto senza verificare l'esito dell'update

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    si il config e' incluso... i libri li aggiunge, ma non mi modifica le news... il metodo e' lo stesso, solo che per aggiungere i libri ovviamente e' insert al posto di update...

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ribadisco di provare a visualizzare (stampare a video) la $query...

  7. #7
    Originariamente inviato da zio_hc
    si il config e' incluso... i libri li aggiunge, ma non mi modifica le news... il metodo e' lo stesso, solo che per aggiungere i libri ovviamente e' insert al posto di update...
    metti la stampa degli errori e prova a togliere le apici nel where a '$id' poiche' lo definisci intero e a seconda di come hai impostato SQL-MODE nelle variabili, potresti ricevere errore se id viene passato come stringa.

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    ecco qui il print

    codice:
    array ( 'titolo' => 'ddddddddddddddddd', 'id' => '3', 'data' => '28-8-2009', 'contenuto' => 'Questa news e\\\' stata inserita dal pannello di amministrazione, e, se la leggi vuol dire che funziona!', )
    UPDATE news SET id='3', data='28-8-2009', titolo='ddddddddddddddddd', contenuto='Questa news e\' stata inserita dal pannello di amministrazione, e, se la leggi vuol dire che funziona!' WHERE id='3'
    News modificata!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ora che hai la query prova a eseguirla direttamente sul DBMS (p.es. da phpmyadmin puoi eseguire query sql) e correggila finchè funziona... è anche singolare settare il valore di un campo presente nella clausola where (perlomeno è inutile)... verifica anche l'uso degli apici per i campi numerici (come id appunto)

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    54
    se inserisco la query in phpmyadmin mi dice che c'e' un errore dato dal pezzo:

    codice:
    contenuto='Questa news e' stata inserita dal pannello di amministrazione, e, se la leggi vuol dire che funziona!' WHERE id='3'
    successivamente ho aggiungo lo slash prima dell'apice ed e' andata...

    codice:
    contenuto='Questa news eslash' stata inserita dal pannello di amministrazione, e, se la leggi vuol dire che funziona!' WHERE id='3'
    EDIT: Ho provato a modificare la news senza mettere apici e funziona!!!

    Ma come mai si comporta cosi anche se c'e' htmlspecialchars? cioe' non la dovrebbe usare lui lo slash davanti all'apice?

    EDIT2: funziona, inseme htmlspecialchars ho aggiunto anche htmlentities!

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.