Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1

    modifica tutte le input anzichè solo una

    richiamo questa pagina con xxx.php?id_sped=5059, però invece di modificare soltanto pa riga numero 5059 modifica tutte le righe, secondo voi come mai?

    codice:
    <?php/*
    EDIT.PHP
    Consente all'utente di modificare una voce specifica nel database
    */
     
    // crea il form di modifica record
    // dal momento che questo modulo è utilizzato più volte in questo file, ho fatto una funzione facilmente riutilizzabile
    function renderForm($id_sped, $id, $data, $tipo, $colli, $peso, $riferimentodest, $note, $cell_1, $localita, $cap, $provincia, $email, $cell_2, $contrassegno, $sped_via, $sped_cap, $sped_citta, $sped_prov, $error)
    {
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Modifica Record</title>
    </head>
    <body>
    <?php
    // se ci sono errori, vengono visualizzati
    if ($error != '')
    {
    echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
    }
    ?>
     
    <form action="" method="post">
    <input type="hidden" name="id_sped" value="<?php echo $id_sped; ?>"/>
    <div>
    id <input type="text" name="id" value="<?php echo $id; ?>"/><br/>
    data <input type="text" name="data" value="<?php echo $data; ?>"/><br/>
    tipo <input type="text" name="tipo" value="<?php echo $tipo; ?>"/><br/>
    colli <input type="text" name="colli" value="<?php echo $colli; ?>"/><br/>
    peso <input type="text" name="peso" value="<?php echo $peso; ?>"/><br/>
    riferimentodest <input type="text" name="riferimentodest" value="<?php echo $riferimentodest; ?>"/><br/>
    note <input type="text" name="note" value="<?php echo $note; ?>"/><br/>
    cell_1 <input type="text" name="cell_1" value="<?php echo $cell_1; ?>"/><br/>
    localita <input type="text" name="localita" value="<?php echo $localita; ?>"/><br/>
    cap <input type="text" name="cap" value="<?php echo $cap; ?>"/><br/>
    provincia <input type="text" name="provincia" value="<?php echo $provincia; ?>"/><br/>
    email <input type="text" name="email" value="<?php echo $email; ?>"/><br/>
    cell_2 <input type="text" name="cell_2" value="<?php echo $cell_2; ?>"/><br/>
    contrassegno <input type="text" name="contrassegno" value="<?php echo $contrassegno; ?>"/><br/>
    sped_via <input type="text" name="sped_via" value="<?php echo $sped_via; ?>"/><br/>
    sped_cap <input type="text" name="sped_cap" value="<?php echo $sped_cap; ?>"/><br/>
    sped_citta <input type="text" name="sped_citta" value="<?php echo $sped_citta; ?>"/><br/>
    sped_prov <input type="text" name="sped_prov" value="<?php echo $sped_prov; ?>"/><br/>
    <input type="submit" name="submit" value="Invia">
    </div>
    </form>
    </body>
    </html>
    <?php
    }
     
    // connessione al database
    include('connect-db.php');
     
    // verifica se il modulo è stato inviato. Se lo è, inizia a elaborare il modulo e lo salva nel database
    if (isset($_POST['submit']))
    {
    // verificare che il valore di 'id' sia un intero valido prima di ottenere i dati del modulo
    if (is_numeric($_POST['id_sped']))
    {
    // ottenere i dati del modulo e verific che siano validi
    $id_sped = $_POST['id_sped'];
    $id = mysql_real_escape_string(htmlspecialchars($_POST['id']));
    $data = mysql_real_escape_string(htmlspecialchars($_POST['data']));
    $tipo = mysql_real_escape_string(htmlspecialchars($_POST['tipo']));
    $colli = mysql_real_escape_string(htmlspecialchars($_POST['colli']));
    $peso = mysql_real_escape_string(htmlspecialchars($_POST['peso']));
    $riferimentodest = mysql_real_escape_string(htmlspecialchars($_POST['riferimentodest']));
    $note = mysql_real_escape_string(htmlspecialchars($_POST['note']));
    $cell_1 = mysql_real_escape_string(htmlspecialchars($_POST['cell_1']));
    $localita = mysql_real_escape_string(htmlspecialchars($_POST['localita']));
    $cap = mysql_real_escape_string(htmlspecialchars($_POST['cap']));
    $provincia = mysql_real_escape_string(htmlspecialchars($_POST['provincia']));
    $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
    $cell_2 = mysql_real_escape_string(htmlspecialchars($_POST['cell_2']));
    $contrassegno = mysql_real_escape_string(htmlspecialchars($_POST['contrassegno']));
    $sped_via = mysql_real_escape_string(htmlspecialchars($_POST['sped_via']));
    $sped_cap = mysql_real_escape_string(htmlspecialchars($_POST['sped_cap']));
    $sped_citta = mysql_real_escape_string(htmlspecialchars($_POST['sped_citta']));
    $sped_prov = mysql_real_escape_string(htmlspecialchars($_POST['sped_prov']));
    
    
    
    
     
    // controlla che i campi nome/cognome siano entrambi compilati
    if ($id == '' || $data == '' || $tipo == '' || $colli == '' || $peso == '' || $riferimentodest == '' || $note == '' || $cell_1 == '' ||  $localita == '' || $cap == '' || $provincia == '' || $email == '' || $cell_2 == '' || $contrassegno == '' || $sped_via == '' || $sped_cap == '' || $sped_citta == '' || $sped_prov == '')
    {
    // genera messaggio di errore
    $error = 'ERROR: Please fill in all required fields!';
     
    // errore, visualizzo il modulo
    renderForm($id_sped, $id, $data, $tipo, $colli, $peso, $riferimentodest, $note, $cell_1, $localita, $cap, $provincia, $email, $cell_2, $contrassegno, $sped_via, $sped_cap, $sped_citta, $sped_prov, $error);
    }
    else
    {
    // salva i dati nel database
    
    
    mysql_query("UPDATE players SET id='$id', data='$data', tipo='$tipo', colli='$colli', peso='$peso', riferimentodest='$riferimentodest', note='$note', cell_1='$cell_1', localita='$localita', cap='$cap', provincia='$provincia', email='$email', cell_2='$cell_2', contrassegno='$contrassegno', sped_via='$sped_via', sped_cap='$sped_cap', sped_citta='$sped_citta', sped_prov='$sped_prov' WHERE $id_sped='$id_sped'")
    or die(mysql_error());
     
    // una volta salvato, si viene reindirizzati alla pagina di visualizzazione
    header("Location: index.php");
    }
    }
    else
    {
    // Se l' 'id' non è valido, viene visualizzato un errore
    echo 'Error!';
    }
    }
    else
    // se il kodulo non è stato inviato, ottengo i dati dal db e visualizzare il modulo
    {
     
    // ottiene il valore 'id' dall'URL (se esiste), assicurandosi che sia valido (controlla che sia numerico/maggiore di 0)
    if (isset($_GET['id_sped']) && is_numeric($_GET['id_sped']) && $_GET['id_sped'] > 0)
    {
    // query db
    $id_sped = $_GET['id_sped'];
    $result = mysql_query("SELECT * FROM players WHERE id_sped=$id_sped")
    or die(mysql_error());
    $row = mysql_fetch_array($result);
     
    // verifica che l' 'id' corrisponda a una riga nel database
    if($row)
    {
     
    // ottiene i dati dal db
    $id = $row['id'];
    $data = $row['data'];
    $tipo = $row['tipo'];
    $colli = $row['colli'];
    $peso = $row['peso'];
    $riferimentodest = $row['riferimentodest'];
    $note = $row['note'];
    $cell_1 = $row['cell_1'];
    $localita = $row['localita'];
    $cap = $row['cap'];
    $provincia = $row['provincia'];
    $email = $row['email'];
    $cell_2 = $row['cell_2'];
    $contrassegno = $row['contrassegno'];
    $sped_via = $row['sped_via'];
    $sped_cap = $row['sped_cap'];
    $sped_citta = $row['sped_citta'];
    $sped_prov = $row['sped_prov'];
     
    // visualizza il modulo
    
    
    renderForm($id_sped, $id, $data, $tipo, $colli, $peso, $riferimentodest, $note, $cell_1, $localita, $cap, $provincia, $email, $cell_2, $contrassegno, $sped_via, $sped_cap, $sped_citta, $sped_prov, '');
    }
    else
    // se non corrisponde visualizza il risultato
    {
    echo "Nessun risultato!";
    }
    }
    else
    // se l' 'id' nell'URL non è valido, o se non vi è alcun valore di 'id', visualizza un errore
    {
    echo 'Errore!';
    }
    }
    ?>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da enrico16101990 Visualizza il messaggio
    richiamo questa pagina con xxx.php?id_sped=5059
    Quindi invii il parametro tramite GET

    Nel form però non lo recuperi ma scrivi direttamente
    <input type="hidden" name="id_sped" value="<?php echo $id_sped; ?>"/>

    $id_sped non è inizializzato, quindi ti ritrovi
    value=""

    prova a visualizzare il sorgente della pagina per verificare che effettivamente sia così.

  3. #3
    scusami Alhazred, però nella pagina nel <input type="hidden" name="id_sped" value="<?php echo $id_sped; ?>"/> vedo il numero della pagina.
    quindi non credo sia
    value="" perche mi da il valore corretto 5059.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sì, non avevo notato che fosse all'interno di una funzione e che glielo passi da lì il parametro.

    1) soluzione al tuo problema:
    WHERE $id_sped='$id_sped'
    da cambiare in
    WHERE id_sped='$id_sped'

    2) smetti subito di usare le funzioni mysql_ sono state abbandonate, quando metterai il sito online avrai grossi problemi, se c'è installato PHP>5.5 avrai una sfilza di messaggi di warning sulle pagine, quando passerà alla 7 non funzionerà proprio più.
    Usa mysqli_ o meglio PDO.

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.