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

    Passaggio dati tra form

    ho un primo file php per inserire i dati:
    Codice PHP:
    <?php
    //include '../../check.php';
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>Insert</title>
            <meta content="text/html; charset=utf-8" http-equiv="content-type" />
            <script type="text/javascript" src="../ckeditor.js"></script>
            <script src="sample.js" type="text/javascript"></script>
            <link href="sample.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
            <?php
            
    if (isset($_POST['inserisci'])) {
                include 
    '../../config.php';
                
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    );
                
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    );
                
    $title mysql_real_escape_string($_POST['title']);
                
    $sectionid mysql_real_escape_string($_POST['sectionid']);
                
    $testo mysql_real_escape_string($_POST['testo']);
                
    $insert "INSERT INTO articoli2 (title, sectionid, testo, data) VALUES ('" $title "', '" $sectionid "', '" $testo "', sysdate())";
                if (
    $_POST['title'] == NULL || $_POST['sectionid'] == NULL || $_POST['testo'] == NULL) {
                    echo 
    "dati mancanti";
                } else {
                    
    mysql_query($insert) or die(mysql_error($link));
                    echo 
    '<script language="javascript">document.location.href="../../index.php"</script>';
                }
            }
            
    ?>
            
            <div id="alerts">
                <noscript>
                    


                        [b]CKEditor requires JavaScript to run[/b]. In a browser with no JavaScript
                    support, like yours, you should still see the contents (HTML data) and you should
                    be able to edit it normally, without a rich editor interface.
                    </p>
                </noscript>
            </div>
            <div>
                [url="../../index.php"]Home[/url]
            </div>
            <form action="#" method="post" name="inserisci">
                


                    Title: <input type="text" name="title" />

                </p>
                


                    <select name="sectionid">
                        <option value="linux">Linux</option>
                        <option value="mac&iphone">Mac&iPhone</option>
                    </select>
                </p>
                


                    <textarea class="ckeditor" cols="80" id="editor1" name="testo" rows="10"></textarea>
                </p>
                


                    <input type="submit" name="inserisci" value="Submit" />
                </p>
            </form>
        </body>
    </html>
    qui invece stampo i risultati:
    Codice PHP:
    <?php

    include_once 'config.php';
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    );
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    );
    $query "select * from articoli2";
    $result mysql_query($query$link) or die(mysql_error($link));
    while (
    $riga mysql_fetch_row($result)) {
        echo 
    '<div>[b]' $riga[1] . '[/b]</div>';
        echo 
    '<div>' $riga[2] . '</div>';
        echo 
    '<div>' $riga[4] . '</div>';
        echo 
    '<div>' $riga[3] . '</div>';
        echo 
    '[url="modifica.php"]Modifica[/url]';
        echo 
    '<hr />';
    }
    ?>
    quando clicco su modifica mi dovrebbe comparire un form per modificare i dati.
    questo form dovrebbe contenere i dati dell'articolo da modificare.
    ho fatto varie prove ma senza successo.
    nel form di modifica php che devo mettere??
    Codice PHP:
    <form method="post" action="#">
                


                    Title: <input type="text" name="title" value="<?php echo $_POST[] ?>"/>

                </p>
                


                    <select name="sectionid">
                        <option value="linux">Linux</option>
                        <option value="mac&iphone">Mac&iPhone</option>
                    </select>
                </p>
                


                    <textarea class="ckeditor" cols="80" rows="10" id="editor1" name="testo" ></textarea>
                </p>
                


                    <input type="submit" name="inserisci" value="Submit" />
                </p>
            </form>
    e per la textarea che nn ha value?

  2. #2
    il link del modifica deve avere una variabile di tipo get corrispondente all'id del record che vuoi modificare
    Quindi:
    Codice PHP:
     echo '[url="modifica.php?id='.$riga[0].'"]Modifica[/url]'
    Nella pagina modifica.php

    farai la query per selezionare il contenuto del record corrispondente all'id che ricevi tramite get
    Codice PHP:
    <?php
    $id 
    intval($_GET['id']);
    // se l'id non è arrivato o non è un numero intero
    if($id === 0)
       {
       exit(
    'La query string è invalida!');
       }
    // ci si connette al db
    include '../../config.php'
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    ); 
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    ); 

    // selezioniamo il record corrispondente all'articolo da modificare        
    $query "SELECT * FROM articoli2 where campo_id='".$id."' LIMIT 1";
    $result mysql_query($query) or die (mysql_error());

    // se non è stato individuato l'articolo
    if(mysql_num_rows($result)!=1)
       {
       exit(
    'La query string contiene un id non valido!');
       }

    // estraiamo i valori
    // essendo LIMIT 1 non occorre il while
    $riga mysql_fetch_row($result);

    // a questo punto mettiamo nel form i value in base ai valori derivanti dalla query
    // inoltre nel form metti un campo hidden in cui metti l'id del record che andrai a modificare
    ?>
    <form method="post" action="#"> 
                

     
                    Title: <input type="text" name="title" value="<?php echo $riga[1]; ?>"/>
     
                </p> 
                

     
                    <select name="sectionid"> 
                        <option value="linux">Linux</option> 
                        <option value="mac&iphone">Mac&iPhone</option> 
                    </select> 
                </p> 
                

     
                    <textarea class="ckeditor" cols="80" rows="10" id="editor1" name="testo" ><?php echo $riga[3]; ?></textarea> 
                </p> 
                

     
                    <input type="submit" name="inserisci" value="Submit" /> 
                </p> 
    <input type="hidden" name="id" value="<?php echo $id?>">
            </form>
    Per i campi select dovresti fare degli if/else per vedere dove mettere il checked
    Poi riadattalo ai tuoi scopi ma in linea di massima è così

  3. #3
    Codice PHP:
    <?php //modifica
    if (isset($_POST['modifica'])) {
        include_once 
    'config.php';
        
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    );
        
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    );
        
    $title2 mysql_real_escape_string($_POST[$riga[1]]);
        
    $testo2 mysql_real_escape_string($_POST[$riga[3]]);
        
    $update "UPDATE articoli2 SET title='$title2', testo='$testo2', date_mod=sysdate() WHERE title='$title2' AND testo='$testo2'";
        
    mysql_query($query) or die(mysql_error());
    //    echo '<script language="javascript">document.location.href="index.php"</script>';
    }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <title>Modifica</title>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
        <script src="ckeditor/sample.js" type="text/javascript"></script>
        <link href="ckeditor/sample.css" rel="stylesheet" type="text/css" />
    </head>
    <?php //ppassaggio dati tra form
    $id intval($_GET['id']);
    // se l'id non è arrivato o non è un numero intero
    if ($id === 0) {
        exit(
    'La query string è invalida!');
    }
    include 
    'config.php';
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    );
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    );
    $query "SELECT * FROM articoli2 where id='" $id "' LIMIT 1";
    $result mysql_query($query) or die(mysql_error());
    // se non è stato individuato l'articolo
    if (mysql_num_rows($result) != 1) {
        exit(
    'La query string contiene un id non valido!');
    }
    // estraiamo i valori
    // essendo LIMIT 1 non occorre il while
    $riga mysql_fetch_row($result);
    // a questo punto mettiamo nel form i value in base ai valori derivanti dalla query
    // inoltre nel form metti un campo hidden in cui metti l'id del record che andrai a modificare
    ?>
    <body>
        <div>
            [url="index.php"]Home[/url]
        </div>
        <form method="post" action="#">
            


                Title: <input type="text" name="title" value="<?php echo $riga[1]; ?>"/>

            </p>
            


                <textarea class="ckeditor" cols="80" rows="10" id="editor1" name="testo"><?php echo $riga[3]; ?></textarea>
            </p>
            


                <input type="submit" name="modifica" value="Submit" />
            </p>
            <input type="hidden" name="id" value="<?php echo $id?>">
        </form>
    </body>
    </html>
    il passaggio dei dati funziona, la modifica no.
    mi dice Query was empty.
    nn capisco però se il problema è nella query o nel passaggio dati

  4. #4
    ci sono due errori:
    1) Prendendo il dizionario di inglese "Query was empty" la query è vuota... ERGO
    La variabile che contiene la query è $update ma alla funzione mysql_query() passi come variabile una inesistente $query che logicamente è EMPTY vuota (o meglio inesistente)

    2) La query di update non può funzionare... la condizione deve essere formulata su un campo univoco, generalmente l'id (generalmente un campo INT, auto_increment, NOT NULL)

    quindi
    Codice PHP:
    <?php //modifica 
    if (isset($_POST['modifica']) && isset($_POST['id'])) { 
       
    // verifichiamo che l'id inviato sia valido
       
    $id_valid intval($_POST['id']);
        if(
    $id_valid=== 0)
          {
          exit(
    'Id inviato è vuoto o non valido');
          }
        include_once 
    'config.php'
        
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    ); 
        
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    ); 
        
    $title2 mysql_real_escape_string($_POST[$riga[1]]); 
        
    $testo2 mysql_real_escape_string($_POST[$riga[3]]); 
        
    $update "UPDATE articoli2 SET title='$title2', testo='$testo2', date_mod=sysdate() WHERE id='".$id_valid."' LIMIT 1"
        
    mysql_query($update) or die(mysql_error()); 
    // per fare il redirect
    // decommenta il seguente codice
    /*
       // verifichiamo che è stato modificato 1 record e in tal caso redirect
       if(mysql_affected_row()===1)
          {
          header('Location: index.php');
          exit();
          }
       // altrimenti messaggio di errore
       else
          {
          exit('Problemi nella procedura di modifica!');
          }
    */

    ?>

  5. #5
    Codice PHP:
    <?php
    //modifica
    if (isset($_POST['modifica']) && isset($_POST['id'])) {
        
    $id_valid intval($_POST['id']);
        if (
    $id_valid === 0) {
            exit(
    'Id inviato è vuoto o non valido');
        }
        include_once 
    'config.php';
        
    $link mysql_connect($host$user$password) or die("Non è possibile connettersi al server
    "
    );
        
    $conn mysql_select_db($db$link) or die("Non è possibile connettersi al db
    "
    );
        
    $title2 mysql_real_escape_string($_POST[$riga[1]]);
        
    $testo2 mysql_real_escape_string($_POST[$riga[3]]);
        
    $update "UPDATE articoli2 SET title='$title2', testo='$testo2', date_mod=sysdate() WHERE id='" $id_valid "'";
        
    mysql_query($update) or die(mysql_error());
        if (
    mysql_affected_row() === 1) {
            
    header('Location: index.php');
            exit();
        } else {
            exit(
    'Problemi nella procedura di modifica!');
        }
    }
    ?>
    ......
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <title>Modifica</title>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
        <script src="ckeditor/sample.js" type="text/javascript"></script>
        <link href="ckeditor/sample.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div>
            [url="index.php"]Home[/url]
        </div>
        <form method="post" action="#">
            


                Title: <input type="text" name="title" value="<?php echo $riga[1]; ?>"/>

            </p>
            


                <textarea class="ckeditor" cols="80" rows="10" id="editor1" name="testo"><?php echo $riga[3]; ?></textarea>
            </p>
            


                <input type="submit" name="modifica" value="Submit" />
            </p>
            <input type="hidden" name="id" value="<?php echo $id?>">
        </form>
    </body>
    </html>
    nn funziona.
    ina pratica mi ha cancellato il titolo e il testo e mi rimanda sempre alla pagina:
    ......./modifica.php?id=12#

  6. #6
    bhè... ma un un pò di logica non ti farebbe male...
    correggi questo
    Codice PHP:
        $title2 mysql_real_escape_string($_POST['title']); 
        
    $testo2 mysql_real_escape_string($_POST['testo']); 
    poi correggi nel form il campo hidden mettilo prima del submit


    poi perchè rimuovi i commenti??
    il codice commentato è utile anche quando dovrai rifare un qualcosa di simile..

  7. #7
    a dire il vero $title2 e $testo2 li avevo modificati.
    ma mi sa che nn avevo salvato e nn ho ricontrollato.

    ho anche spostato il camo hidden.
    mi fa la modifica ma nn il redirect.
    if (mysql_affected_row() == 1)
    con due uguali ma niente.

  8. #8
    risolto:
    Codice PHP:
        if (mysql_affected_rows() === 1) {
            
    header('Location: index.php');
            exit();
        } else {
            exit(
    'Problemi nella procedura di modifica!');
        } 
    ho messo mysql_affected_rows con la s.
    così funziona.
    mi sono letto la doc e nn ho capito bene la differenza con quella s però.

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.