Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema con l'update

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    28

    problema con l'update

    Salve ragazzi vorrei fare l'update di un annuncio cioè la modifica dello stesso..

    ho un problema ho fatto tutto..ho fatto in modo che nei vari campi input comparisse il record del database di quell'id...ora però quando vado a fare invia modificando solo uno dei 3 campi mi dice che tutti i campi sono obbligatori perchè mi sa che li prende come se fossero vuoti gli altri che non ho modificato...

    come devo fare?? grazie in anticipo ragazzi..

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non si capisce molto... ma suppongo sia a livello PHP e non a livello database (altrimenti spiega anche com'è strutturata la tabella che contiene gli annunci).

    Allora, se vuoi mantenere lo stesso form/pagina sia per gli update che per i nuovi inserimenti (ed eventualmente anche per le cancellazioni), passa un parametro aggiuntivo con il form stesso (magari in un campo hidden oppure nella query-string - e in quest'ultimo caso andrai a recuperare il valore di tale parametro in $_GET) con cui specifichi l'azione che stai andando a compiere: per esempio,
    codice:
    <form ... action=".../tua_pagina.php">
    ...
    <input type="hidden" name="azione" value="0" />
    Nella pagina di elaborazione "mapperai" l'azione, per esempio:

    0 = modifica
    1 = nuovo inserimento

    e comportarti di conseguenza (controlli e query appropriate)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    28
    grazie mille della tua risposta ma sto facendo una pagine a parte per la modifica e l'ho chiamata update.php

    ti posto il codice...

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Update</title>
    <script type="text/javascript" src="http://lionsart.handcoded.it/adm/script/jquery.js"></script>
    <script type="text/javascript" src="http://lionsart.handcoded.it/adm/script/jquery.tablednd_0_5.js"></script>
    <script type="text/javascript" src="http://lionsart.handcoded.it/adm/script/script.js"></script>
    </head>

    <body>
    <?php

    //variabili
    $db_server 'localhost';
    $db_name '***';
    $db_user '***';
    $db_pass '***';
    $table 'case';
    $table_images 'immagini';

    //mi connetto al database
    $connect mysql_connect($db_server,$db_user,$db_pass) or die('Non puoi connetterti: ' mysql_error());
    $db mysql_select_db($db_name,$connect) or die ('Impossibile connetterti: ' mysql_error()); 

    //prendo i vari record dell'id
    $id = ((int)$_GET['id']);
    $title = ($_POST['titolo']);
    $desc = ($_POST['descrizione']);
    $prezzo = ($_POST['prezzo']);

    ?>



    [url="pc.php"]Ritorna al pannello di controllo[/url]</p>

    <?php

    $sql_1 
    = @mysql_query("SELECT titolo, prezzo, descrizione FROM $db_name.$table WHERE id='$id'");
    if(!
    $sql_1)
    {
        echo 
    'Problema con sql_1'.mysql_error();
    }

    $sql_1 mysql_fetch_array($sql_1);

    $title $sql_1['titolo'];
    $prezzo $sql_1['prezzo'];
    $desc $sql_1['descrizione'];

    $title htmlspecialchars($title);
    $prezzo htmlspecialchars($prezzo);
    $desc htmlspecialchars($desc);

    $images "SELECT * FROM $db_name.$table_images WHERE id_casa='$id'";
    $result_images mysql_query($images,$connect);

    ?>

    <form action="update.php?id=<?php echo $id ?>&action=invia " method="POST" enctype="multipart/form-data" name="update_form">


    <h4>Modifica di "<?php echo $title ?>"</h4></p>


    [b]Titolo : [/b]<input type="text" name="titolo" value="<?php echo $title ?>"></p>


    [b]Prezzo : [/b]<input type="text" name="prezzo" value="<?php echo $prezzo ?>"></p>


    [b]Descrizione : [/b]

    <textarea rows="15" cols="70" name="descrizione"><?php echo $desc ?></textarea></p>


    [b]Immagini : [/b]</p>

    <?php

    while($row mysql_fetch_array($result_images)){
        echo 
    "[url='http://".$_SERVER['][img]http://".$_SERVER[[/img][/url]";
    }

    ?>

    <div id="campi"></div>


    [url="#"]Aggiungi Campo[/url]</p></br>
    <input type="hidden" id="uploadNeed" name="uploadNeed" value="" >
    <input type="submit" name="submit" value="invia">
    </form>

    <?php

    $submit = ($_POST['
    submit']);


    if($submit)
    {
        if($title == "" || $desc == "" || $prezzo == "")
        {
            echo "Tutti i campi sono obbligatori!
    ";
        }
        else
        {
            if(preg_match("/^[a-zA-Z0-9!.:,;èéìùòà'
    \040]*$/i", $title))
            {
                if(preg_match("
    /^[a-zA-Z0-9!.:,;èéìùòà'\?\040]*$/i", $desc))
                {
                    if(preg_match("/^[0-9]+$/i", $prezzo))
                    {
                        if($title == "" || $desc == "" || $prezzo == "")
                        {
                            echo "Tutti i campi sono obbligatori!
    ";
                        }
                        else
                        {
                            $sql = "UPDATE $db_name.$table SET
                            titolo='
    $title',
                            prezzo='
    $prezzo',
                            descrizione='
    $desc'
                            WHERE id='
    $id'";
                            
                            if(@mysql_query($sql))
                            {
                                echo '
    Modifica di dati avvenuta con successo!';
                            }
                            else
                            {
                                echo '
    Modifica dei dati non avvenuta!'.mysql_error();
                            }
                                            
                            require("carica.php");
                            
                            $uploadNeed = $_POST['
    uploadNeed'];
                            
                            for($x=0;$x<($uploadNeed + 1);$x++)
                            {
                                $pathsito = $_SERVER['
    DOCUMENT_ROOT'];
                                $up = upload('
    uploadFile'.$x,'',"immobili",1,1,'','');
                                if($up!='')
                                {
                                    mysql_query("INSERT INTO ".$table_images." (id_casa,url_immagine) VALUES ('".
    $id."','".$up."')") or die("Query inserimento immagine fallita");
                                }
                            }
                            
                    }
                }
                else
                {
                    echo '
    Il campo prezzo deve contenere caratteri numerici da "0" "9"
    ';
                }
            }
            else
            {
                echo '
    Il campo descrizione deve contenere caratteri da "a" "z" e/o caratteri numerici da "0" "9"
    ';
            }
        }
        else
        {
            echo '
    Il campo titolo deve contenere caratteri da "a" "z" e/o caratteri numerici da "0" "9"
    ';
        }
    }
    }

    ?>
    </body>
    </html>
    il problema è che se modifico ad esempio soltanto la descrizione mi risulta che gli altri campi sono vuoti...

  4. #4
    Forse sarebbe opportuno utilizzare nomi di variabili differenti:

    Codice PHP:
    ...

    $title = ($_POST['titolo']);
    $desc = ($_POST['descrizione']);
    $prezzo = ($_POST['prezzo']);

    ...

    $title $sql_1['titolo'];
    $prezzo $sql_1['prezzo'];
    $desc $sql_1['descrizione']; 

    ... 
    se usi lo stesso nome la seconfa assegnazione sovrascrive il valore precedente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    28
    grazie mille ho risolto...GRAZIE davvero

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.