Problema form update

  • Creatore Discussione Creatore Discussione Kiko74b
  • Data di inizio Data di inizio

Kiko74b

Nuovo Utente
26 Giu 2022
19
2
3
Sera a tutti volevo capire dove commetto l'errore se qualche anima pia può aiutarmi a trovare l'errore
ho questa pagina che dovrei utilizzare per aggiornare i dati dei pazienti.
Questa è la parte di codice che sembrerebbe non funzionare.
PHP:
<?php
session_start();
error_reporting('E_ALL');
include('includes/config.php');
if (strlen($_SESSION['alogin'])==0) {
    header('location:index.php');
    } else {
        if(isset($_POST['submit'])) {
           
            $fullname = $_POST['fullname'];
            $codfiscale = $_POST['codfiscale'];
            $codverifica = $_POST['codverifica'];
            $pterapeutico = $_POST['pterapeutico'];
            $diabeticoid = $_SESSION['diabeticoid'];
            $sql = "UPDATE tbldiabetici SET CognomeNome=:fullname, CodFiscale=:codfiscale, CodVerifica=:codverifica, PianoTerapeutico=:pterapeutico WHERE id=:diabeticoid";
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(":fullname", $fullname, PDO::PARAM_STR);
            $stmt->bindValue(":codfiscale", $codfiscale, PDO::PARAM_STR);
            $stmt->bindValue(":codverifica", $codverifica, PDO::PARAM_STR);
            $stmt->bindValue(":pterapeutico", $pterapeutico, PDO::PARAM_STR);
            $stmt->bindValue(":diabeticoid", $diabeticoid, PDO::PARAM_STR);
            $stmt->execute();
    }
?>
Vi posto tutta la pagina ma tranquilli cerco di fare ordine per renderla leggibile.
Codice:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="description" content="" />
    <meta name="author" content="" />
    <title>Sistema Gestione Farmacia | Modifica Dati Diabetico</title>
    <!-- BOOTSTRAP CORE STYLE  -->
    <link href="assets/css/bootstrap.css" rel="stylesheet" />
    <!-- FONT AWESOME STYLE  -->
    <link href="assets/css/font-awesome.css" rel="stylesheet" />
    <!-- CUSTOM STYLE  -->
    <link href="assets/css/style.css" rel="stylesheet" />
    <!-- GOOGLE FONT -->
    <link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
</head>
<body>
Qui carico la sezione header della pagina:
PHP:
<!------MENU SECTION START-->
<?php include('includes/header.php');?>
<!-- MENU SECTION END-->
Quindi continuando
Codice:
<div class="content-wrapper">
    <div class="container">
        <div class="row pad-botm">
            <div class="col-md-12"><h4 class="header-line">Modifica Diabetico</h4></div>
        </div>
            <div class="row">
                <div class="col-md12 col-sm-12 col-xs-12">
                    <div class="panel panel-info">
                        <div class="panel-heading">Informazioni Diabetico</div>
                            <div class="panel-body">
Il form per l'inserimento l'ho pensato in questo modo: implemento la quesry select per ottenere i dati del paziente che mi interesserebbe modificare:
PHP:
                                <form role="form" method="POST" action="<?php echo $_PHP_SELF ?>">
                                <?php
                                   
                                    $diabeticoid=intval($_GET['diabeticoid']);
                                    $pterapeutico = date('Y-m-d', strtotime(str_replace('/','-',$_GET["pterapeutico"])));
                                    $sql = " SELECT tbldiabetici.CognomeNome,
                                    tbldiabetici.CodFiscale,
                                    tbldiabetici.CodVerifica,
                                    tbldiabetici.PianoTerapeutico
                                    from tbldiabetici where tbldiabetici.id=:diabeticoid";
                                    $query = $dbh -> prepare($sql);
                                    $query->bindParam(':diabeticoid', $diabeticoid, PDO::PARAM_STR);
                                    $query->execute();
                                    $results=$query->fetchAll(PDO::FETCH_OBJ);
                                    $cnt=1;
                                    if ($query->rowCount() > 0) {
                                        foreach ($results as $result) {
                                   
                                ?>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label class="control-label">Cognome Nome</label>
                                        <input type="text" value="<?php echo htmlentities($result->CognomeNome);?>" name="fullname" id="fullname" class="form-control"/>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label class="control-label">Codice Fiscale</label>
                                        <input type="text" value="<?php echo htmlentities($result->CodFiscale);?>" name="codfiscale" id="codfiscale" class="form-control"/>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label class="control-label">Codice Verifica</label>
                                        <input type="text" value="<?php echo htmlentities($result->CodVerifica);?>" name="codverifica" id="codverifica" class="form-control"/>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label class="control-label">Piano Terapeutico</label>
                                        <input type="date" value="<?php echo htmlentities($result->PianoTerapeutico);?>" name="pterapeutico" id="pterapeutico" class="form-control"/>
                                    </div>
                                </div>
                            <div class="col-md-12">
                                <input type="submit" name="submit" class="btn green" value="Update" >
                                <a href="menage-diabetici.php" class="btn default">Annulla </a>
                                </div>
                                </form>
Infine includo la sezione footer e i vari script utilizzati.
PHP:
                            </div>
                        </div>
                    </div>                      
                </div>
    </div>
</div>
<!-- CONTENT-WRAPPER SECTION END-->
<?php include('includes/footer.php');?>
<!-- FOOTER SECTION END-->
<!-- JAVASCRIPT FILES PLACED AT THE BOTTOM TO REDUCE THE LOADING TIME  -->
<!-- CORE JQUERY  -->
<script src="assets/js/jquery-1.10.2.js"></script>
<!-- BOOTSTRAP SCRIPTS  -->
<script src="assets/js/bootstrap.js"></script>
<!-- CUSTOM SCRIPTS  -->
<script src="assets/js/custom.js"></script>
</body>
</html>
<?php }}} ?>
Quando visualizzo la pagina del form mi compaiono i dati presenti nelle varie caselle del form ma se effettuo qualche modifica e quindi invio i dati al database mysql. l'update non viene effettuato.
 
Ultima modifica di un moderatore:
Ciao Kiko74b,

Semplicemente non fa l'update dei dati su DB o ti restituisce un errore specifico di mysqli o php?

Un errore c'è
In questa porzione di codice
PHP:
<?php
session_start();
error_reporting('E_ALL');
include('includes/config.php');
if (strlen($_SESSION['alogin'])==0) {
    header('location:index.php');
    } else {
        if(isset($_POST['submit'])) {
          
            $fullname = $_POST['fullname'];
            $codfiscale = $_POST['codfiscale'];
            $codverifica = $_POST['codverifica'];
            $pterapeutico = $_POST['pterapeutico'];
            $diabeticoid = $_SESSION['diabeticoid'];
            $sql = "UPDATE tbldiabetici SET CognomeNome=:fullname, CodFiscale=:codfiscale, CodVerifica=:codverifica, PianoTerapeutico=:pterapeutico WHERE id=:diabeticoid";
            $stmt = $dbh->prepare($sql);
            $stmt->bindValue(":fullname", $fullname, PDO::PARAM_STR);
            $stmt->bindValue(":codfiscale", $codfiscale, PDO::PARAM_STR);
            $stmt->bindValue(":codverifica", $codverifica, PDO::PARAM_STR);
            $stmt->bindValue(":pterapeutico", $pterapeutico, PDO::PARAM_STR);
            $stmt->bindValue(":diabeticoid", $diabeticoid, PDO::PARAM_STR);
            $stmt->execute();
    }
?>

manca la chiusura del else alla riga 7 azzardo che non ci sia altro codice dopo e ti posto qui sotto la chiusura
PHP:
<?php

session_start();
error_reporting('E_ALL');
include('includes/config.php');
if (strlen($_SESSION['alogin'])==0) 
{
    header('location:index.php');
} 
else
{
    if(isset($_POST['submit'])) 
    {
        $fullname = $_POST['fullname'];
        $codfiscale = $_POST['codfiscale'];
        $codverifica = $_POST['codverifica'];
        $pterapeutico = $_POST['pterapeutico'];
        $diabeticoid = $_SESSION['diabeticoid'];
        $sql = "UPDATE tbldiabetici SET CognomeNome=:fullname, CodFiscale=:codfiscale, CodVerifica=:codverifica,                                         PianoTerapeutico=:pterapeutico WHERE id=:diabeticoid";
        $stmt = $dbh->prepare($sql);
        $stmt->bindValue(":fullname", $fullname, PDO::PARAM_STR);
        $stmt->bindValue(":codfiscale", $codfiscale, PDO::PARAM_STR);
        $stmt->bindValue(":codverifica", $codverifica, PDO::PARAM_STR);
        $stmt->bindValue(":pterapeutico", $pterapeutico, PDO::PARAM_STR);
        $stmt->bindValue(":diabeticoid", $diabeticoid, PDO::PARAM_STR);
        $stmt->execute();
    }
}
?>
 
Ultima modifica:

Discussioni simili