Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    59

    [php-mysql] Modifica news: due problemi

    Mi sto facendo un pannello di controllo per inserire le news e fino qui tutto bene, ma ho un paio di problemi quando devo modificarle:un volta fatta lo connessione al DB dal mio file modify_news.php e dopo aver richiamato l'articolo da modificare, apro una form per la modifica così:

    Codice PHP:
    <?
    echo "Titolo:
    <textarea cols=30 rows=1 name=titolo>
    $row[titolo]</textarea>

    "
    ;
    echo 
    "Anteprima:
    <textarea cols=40 rows=5 name=anteprima>
    $row[anteprima]</textarea>

    "
    ;
    echo 
    "Testo:
    <textarea cols=40 rows=15 name=testo>
    $row[testo]</textarea>

    "
    ;
    ?>
    Il primo problema è che nel campo 'testo' il testo dell'articolo presenta i tag
    per mandare a capo.
    Come posso fare per eliminare questi tag?

    L'altro problema è la pagina a cui rimando per salvare i dati nel database: invece che modificare l'articolo, me ne crea uno nuovo. So che dovrei modificare questa parte di codice:
    Codice PHP:
    $query "INSERT INTO news (titolo, anteprima, testo, data, autore, mail) VALUES ('$titolo', '$anteprima',  '$testo', '$data', '$autore', '$mail')"
    ma non so come modificarla per far sì che invece che crearmi un nuovo articolo, vada a correggermi quello con lo stesso Id che volevo appunto modificare.

    Se qualcuno può spiegarmi come fare...grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    59
    up

  3. #3
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    1) se ti mette i tag
    probabilmente hai inserito il testo nel db attraverso la funzione nl2br . E' meglio usare tale funzione sono per la visualizzazione, altrimenti devi sostituire i tag in fase di modifica con str_replace .
    2) Per modificare devi usare UPDATE:
    UPDATE news SET titolo='$titolo', anteprima='$anteprima', ... WHERE id=$id_articolo_da_modificare

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    59
    Intanto ti ringrazio per i suggerimenti, ma non riesco a capire come scrivere il codice seguente per dare il comando corretto:
    WHERE id=$id_articolo_da_modificare
    in sostanza se uso
    codice:
    WHERE id='$id'
    mi ritorna l'errore Undefined variable: id

    mentre se non metto il WHERE...la modifica funziona, ma chiaramente mi modifica tutti gli articoli presenti nel database che diventano tutti uguali a quello modificato tranne che per l'id che si autoincrementa.

    Non capisco come devo fare..

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    59
    Ho provato questa query nel mio save_edit.php (file a cui rimando con <form method=post action=save_edit.php> dalla mia form modify_edit.php):
    codice:
    $query ="UPDATE news SET titolo='$titolo', data='$data', anteprima='$anteprima', testo='$testo'  LIMIT 1 ";
    In questo modo naturalmente l'update non me lo fa dove voglio io, ma almeno so che effettivamente l'edit viene preso dal db.

    Il mio problema è capire come funziona il WHERE:
    non so come fare in modo che:
    codice:
    WHERE id='$id_modifica'
    e che la variabile $id_modifica corrisponda esattamente all'id della news che ho modificato.

    Qualcuno può aiutarmi a capire come dovrei fare?
    Grazie

  6. #6
    tu passi i dati con un POST, giusto?
    basta inserire in un campo hidden l'$id che ti interessa:
    <input type="hidden" name ="id" value = "<? echo "$id";?>">

    e andare a ripescartela subito prima di fare l'UPDATE:
    $id = $_POST["id"];
    $sql = "UPDATE tabella SET campo='$campo' WHERE id = $id";
    $query = mysql_query ($sql, $db) or die (mysql_error());

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    59
    Grazie troglos!!

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.