php mysql non salva solo id

luigithen

Utente Attivo
31 Mar 2020
84
3
8
ciao ragazzi scusate ma non riesco a capire dove sia l'errore, con il seguente codice

PHP:
<form action="" method="post">
  <input type="text" name="tessera" placeholder="Inserisci Numero Tessera"/>
<input type="submit" name="search" value="Cerca"/>
</form>
<?php
$connection = mysqli_connect("localhost","user","password");
$db = mysqli_select_db($connection,'database');
if(isset($_POST['search']))
{
$id = $_POST['tessera'];
$query = "SELECT tessera,nome,cognome,id_cliente FROM cliente where tessera='$id'";
$query_run = mysqli_query($connection,$query);
while($row = mysqli_fetch_array($query_run))
{
?>
<form action="" method="post">
<input type="text" name="tessera" disabled="disabled" value="<?php echo $row['tessera'] ?>"/><br>
<input type="text" name="nome" disabled="disabled" value="<?php echo $row['nome'] ?>"/><br>
<input type="text" name="cognome" disabled="disabled" value="<?php echo $row['cognome'] ?>"/><br>
<input type="text" name="id_cliente" disabled="disabled" value="<?php echo $row['id_cliente'] ?>"/>
<input class="form-control" type="text" id='punti' name="punti" />
<input class="form-control" type="text" id='spesa' name="spesa" />
<input class="form-control" type="date" id='data_punti' value="<?php echo date('Y-m-d'); ?>" name="data_punti" />
<input type="submit" name="update" value="aggiungi">
</form>
<?php
}
}
?>
<?php
$connection = mysqli_connect("localhost","user","password");
$db = mysqli_select_db($connection,'database');
if(isset($_POST['update']))
{
$query = "INSERT INTO punti (punti, spesa, data_punti, id_cliente)
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";
$query_run = mysqli_query($connection,$query);
if($query_run)
{
echo '<script> alert("aggiunti")</script>';
}
else
{
echo '<script> alert("errore") </script>';
}
}
?>

riesco a salvare tutte le informazioni sul database, ma " id_cliente " non me lo salva eppure lo stampa a video

perchè ?

grazie
 
PHP:
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";

perché hai messo $_GET ?
 
PHP:
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";

perché hai messo $_GET ?
si mi ero accorto di questo errore l'avevo sistemato mettendo $_POST ma il risultato è uguale non mi salva id_cliente mentre il resto lo salva senza alcun problema
 
Ultima modifica:
non capisco proprio il motivo perchè non mi salva id_cliente mentre gli altri dati li salva senza alcun problema
 
prova se usi xampp ad attivare gli errori nel file php.ini e cosi vedi se c'è qualcosa che non va.
Ora non ricordo bene come si fa .. cerca su google tipo "enable xampp errors php.ini"
e vedi se usi xampp. Io uso il mio ma è un casino da spiegarti come fare.. mi ci è voluto qualche giorno. Ho fatto un webserver partendo tutto dalle versioni zip di , apache haus, mariadb , phpmyadmin, sendmail etc.. tu prova vedere se da qualche errore e non ti visualizza gli errori .

EDIT:
cerca nel file php.ini questa riga: display_errors = On
se c'è off metti ad on.

ciao.
 
prova se usi xampp ad attivare gli errori nel file php.ini e cosi vedi se c'è qualcosa che non va.
Ora non ricordo bene come si fa .. cerca su google tipo "enable xampp errors php.ini"
e vedi se usi xampp. Io uso il mio ma è un casino da spiegarti come fare.. mi ci è voluto qualche giorno. Ho fatto un webserver partendo tutto dalle versioni zip di , apache haus, mariadb , phpmyadmin, sendmail etc.. tu prova vedere se da qualche errore e non ti visualizza gli errori .

EDIT:
cerca nel file php.ini questa riga: display_errors = On
se c'è off metti ad on.

ciao.
grazie per la tua risposta

non uso xamp è online ed inoltre non visualizzo nessun errore quello che non capisco è perchè punti e spesa li salva mentre id_cliente non lo salva
 
forse perché il campo é disabilitato .....
HTML:
<input type="text" name="id_cliente" disabled="disabled"

1619275669279.png
 
ma per caso l'id-cliente è un autoincrement, o un semplice int?
puoi fare vedere metà tabella (struttura) che utilizzi?
grazie.

id_cliente è un int questa è la struttura

Schermata 2021-04-25 alle 09.15.29.png


in questa tabella deve solo salvare id_cliente che viene stampato
 
Ultima modifica:
come ti ho scritto il campo é disabilitato,
nella figura allegata, vedi che il campo "id_cliente" non viene passato

se modifichi togliendo "disabilitato" il campo viene passato e salvo altri problemi può funzionare
PHP:
            <input type="text" name="id_cliente" value="<?php echo $row['id_cliente'] ?>"/><br />

confronta la figura allegata qui con la precedente
1619361161811.png


spero ti sia chiaro il motivo
 
grazie della risposta ho fatto come richiesto ma il risultato non cambia cioè non mi salva id_cliente

Schermata 2021-04-25 alle 16.35.20.png


678 sono i punti poi è presente la data e 0 equivale all'id_cliente
 
che "una" causa sia quella segnalata, é sicuro

riposta di nuovo il codice che stai usando e che comprende tutte le modifiche che hai fatto
 
questo è il codice completo

PHP:
<div class="row">
<div class="col-md-12 col-sm-12 ">
<div class="x_panel">
<div class="x_title">
<h2><small>ricerca veloce per nome, cognome, tessera o telefono</small></h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<br />
<form action="" method="post">
<input type="text" name="tessera" placeholder="Inserisci Numero Tessera"/>
<input type="submit" name="search" value="Cerca"/>
</form>
<?php
$connection = mysqli_connect("localhost","db","pass");
$db = mysqli_select_db($connection,'db');
if(isset($_POST['search']))
{
$id = $_POST['tessera'];
$query = "SELECT * FROM cliente where tessera='$id'";
$query_run = mysqli_query($connection,$query);
while($row = mysqli_fetch_array($query_run))
{?>
<form action="" method="post">
<input class="form-control" type="text" name="tessera" disabled="disabled" value="<?php echo $row['tessera'] ?>"/><br>
<input class="form-control" type="text" name="nome" disabled="disabled" value="<?php echo $row['nome'] ?>"/><br>
<input class="form-control" type="text" name="cognome" disabled="disabled" value="<?php echo $row['cognome'] ?>"/><br>
<input type="text" name="id_cliente" value="<?php echo $row['id_cliente'] ?>"/>
<input class="form-control" type="text" id='punti' name="punti" />
<input class="form-control" type="text" id='spesa' name="spesa" />
<input class="form-control" type="date" id='data_punti' value="<?php echo date('Y-m-d'); ?>" name="data_punti" />
<input type="submit" name="update" value="aggiungi">
</form>
<?php
}}?>
<?php
require_once ("database/db.php");
$db_handle = new DBController();
if(!empty($_POST["update"])) {
$query = "INSERT INTO punti (punti, spesa, data_punti, id_cliente)
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";
$result = $db_handle->executeQuery($query);
if(!$result){
$message="Problem in Adding to database. Please Retry.";
} else {
header("Location:https://url");
}}?>
</div>
</div>
</div>
 
complimenti !

ti é stato detto di sostituire GET con POST e non lo hai fatto

PHP:
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";
 
complimenti !

ti é stato detto di sostituire GET con POST e non lo hai fatto

PHP:
VALUES('".$_POST["punti"]."','".$_POST["spesa"]."','".$_POST["data_punti"]."', '".$_GET["id_cliente"]."')";
l'ho fatto marino l'ho fatto non funziona ne con get ne con post

sto diventando matto
 
scusa, ma nel codice che hai postato c'é GET, sostituiscilo con POST

ovvero c'erano due errori nel codice iniziale che hai postato,

il "GET" e il "disable", vanno corretti tutti e due, come ti é stato indicato
 
scusa, ma nel codice che hai postato c'é GET, sostituiscilo con POST

ovvero c'erano due errori nel codice iniziale che hai postato,

il "GET" e il "disable", vanno corretti tutti e due, come ti é stato indicato

modificato messo il post al posto di get tolto il disable è la stessa cosa non salva id_cliente

il codice lo vedi con il get perhè ho rimesso come era precedenza ma ripeto il risultato non cambia
 

Discussioni simili