Salve eccomi nuovamente a rompere con le mie banalissime domande
ho questa query :
E questo form di inserimento:
Se il form viene popolato completamente tutto funziona se invece ometto di inserire gli aghi mi da questo errore indicando che sto cercando di inserire una stringa in un campo integer. Quello che ho trovato è questo codice
attraverso il quale dovrei risolvere il problema nel senso che se il valore passato è esattamente vuoto deve convertirlo in null.
Secondo voi è la strada giusta oppure dovrei modificare la mia query? premetto che la tblerogazioni ha un solo valore autoincrement che è stato giustamente omesso dalla query.
ho questa query :
PHP:
if(isset($_POST['add']))
{
$diabeticoid=$_POST['iddiabetico'];
$strisce=$_POST['strisce'];
$lancette=$_POST['lancette'];
$aghi=$_POST['aghi'];
$statoerogazione=1;
$sql="INSERT INTO tblerogazioni(Iddiabetico,ProductId1,ProductId2,ProductId3)
VALUES(:iddiabetico,:strisce,:lancette,:aghi);
UPDATE tbldiabetici set StatoErogazione=:statoerogazione where id=:iddiabetico;";
$query = $dbh->prepare($sql);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query->bindParam(':iddiabetico',$diabeticoid,PDO::PARAM_STR);
$query->bindParam(':strisce',$strisce,PDO::PARAM_STR);
$query->bindParam(':lancette',$lancette,PDO::PARAM_STR);
$query->bindParam(':aghi',$aghi,PDO::PARAM_STR);
$query->bindParam(':statoerogazione',$statoerogazione,PDO::PARAM_STR);
$query->execute();
E questo form di inserimento:
PHP:
<form role="form" method="post">
<div class="col-md-6">
<div class="form-group">
<label> Seleziona Diabetico<span style="color:red;">*</span></label>
<select class="form-control" name="iddiabetico" required="required">
<option value=""> Seleziona Diabetico</option>
<?php
$sql = "SELECT * from tbldiabetici where statoerogazione!=1 AND PianoTerapeutico > NOW() ORDER BY CognomeNome ASC";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->CognomeNome);?></option>
<?php }} ?>
</select>
</div></div>
<div class="col-md-6">
<div class="form-group">
<label> Seleziona Strisce<span style="color:red;">*</span></label>
<select class="form-control" name="strisce">
<option value=""> Seleziona Striscia</option>
<?php
$sql = "SELECT * from tblbooks where CatId='7'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
<?php }} ?>
</select>
</div></div>
<div class="form-group">
<span id="get_student_name" style="font-size:16px;"></span>
</div>
<div class="col-md-6">
<div class="form-group">
<label> Seleziona Lancette<span style="color:red;">*</span></label>
<select class="form-control" name="lancette">
<option value=""> Seleziona Lancette</option>
<?php
$sql = "SELECT * from tblbooks where CatId='8'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
<?php }} ?>
</select>
</div></div>
<div class="col-md-6">
<div class="form-group">
<label> Seleziona Aghi<span style="color:red;">*</span></label>
<select class="form-control" name="aghi">
<option value=""> Seleziona Aghi</option>
<?php
$sql = "SELECT * from tblbooks where CatId='9'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{ ?>
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
<?php }} ?>
</select>
</div></div>
<button type="submit" name="add" id="submit" class="btn btn-info">
Inserisci Erogazione </button>
</form>
PHP:
if ($_POST['value'] === '') {
$_POST['value'] = null; // or 'NULL' for SQL
}
Secondo voi è la strada giusta oppure dovrei modificare la mia query? premetto che la tblerogazioni ha un solo valore autoincrement che è stato giustamente omesso dalla query.