Form php connesso a database ma non inserisce dati

di il
5 risposte

Form php connesso a database ma non inserisce dati

Salve a tutti. Sono nuovo del forum. Ho il seguente problema.
Voglio inserire in un database mysql dati presi da un form realizzato in php.
Ho realizzato due classi.
la prima classe(quella relativa al forum) è la seguente:

Codice PHP:
<?php include 'trattori.php';
$trattore=new Trattori;
?>
<?php session_start();?>

<form action="inserisci.php" method="post">
<fieldset>
<legend>Inserisci</legend>
<label for="marca">Marca</label>
<input type="text" id="marca" name="marca"><br/>
<label for="modello">Modello</label>
<input type="text" id="modello" name="modello"><br/>
<label for="stato">Stato</label>
<input type="text" id="stato" name="stato"><br/>
<label for="cavalli">Cavalli</label>
<input type="text" id="cavalli" name="cavalli"><br/>
<label for="ruotemotrici">Ruote motrici</label>
<input type="text" id="ruotemotrici" name="ruotemotrici"><br/>
<label for="prezzo">Prezzo</label>
<input type="text" id="prezzo" name="prezzo"><br/>
<label for="descrizione">Descrizione</label>
<textarea id="descrizione" name="descrizione" rows="3" cols="30"/></textarea><br/><br/>
<label for="image">Immagine</label>
<input name="image" type="file" size="40" />
<br /><br />
<!-- Pulsante -->
<input name="upload" type="submit" value="Carica immagine" /><br/><br/>
<input type="submit" name="conferma" value="Conferma">
</fieldset>
</form>


il secondo file è il seguente


Codice PHP:
<?php
$marca=filter_var($_POST['marca'],FILTER_SANITIZE_STRING);
$modello=filter_var($_POST['modello'],FILTER_SANITIZE_STRING);
$stato=filter_var($_POST['stato'],FILTER_SANITIZE_STRING);
$cavalli=filter_var($_POST['cavalli'],FILTER_SANITIZE_STRING);
$ruotemotrici=filter_var($_POST['ruotemotrici'],FILTER_SANITIZE_STRING);
$prezzo=filter_var($_POST['prezzo'],FILTER_SANITIZE_STRING);
$descrizione=filter_var($_POST['descrizione'],FILTER_SANITIZE_STRING);
include '../includes/database.php';
$connect=Database::getConnection();
if($connect->connect_error){
die("Fatal error".$connect->connect_error);
}else{
echo "Connessione al database riuscita<br/>";
$query = "INSERT INTO trattoreusato (id,marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,immagine)
VALUES ('',marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,'img.pgf')";
if(!$result=$connect->query($query)){
echo "Impossibile aggiungere le righe";
}else{
echo "riga aggiunta con successo";
}
}
?>

non so perchè nella tabella mysql, quando premo inserisci dal form inserisce tutti valori nulli. Non capisco dove ho sbagliato.
Grazie in anticipo per la vostra disponibilità.

5 Risposte

  • Re: Form php connesso a database ma non inserisce dati

    
    VALUES ('',marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,'img.pgf')"; 
    
  • Re: Form php connesso a database ma non inserisce dati

    Interpreto quello che segnala Ixamit, che visto l'orario a cui scriveva è stato un attimo assai sintetico

    Passi al campo id il valore '' e non ha senso se l'id è la chiave primaria.
    Prova questa query:
    $query = "INSERT INTO trattoreusato (marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,immagine)
    VALUES (marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,'img.pgf')"; 
  • Re: Form php connesso a database ma non inserisce dati

    
    VALUES ('$marca','$modello','$stato','$cavalli','$ruotemotrici',$prezzo,'$descrizione','img.pgf')";
    
    
  • Re: Form php connesso a database ma non inserisce dati

    Mi sa che stavo dormendo mentre scrivevo... per la parte values usa quello scritto da ixamit.
  • Re: Form php connesso a database ma non inserisce dati

    Toki ha scritto:


    Interpreto quello che segnala Ixamit, che visto l'orario a cui scriveva è stato un attimo assai sintetico
    In effetti molto sintetico, solo che pensavo fosse platealmente visibile l'errore.
    Comunque, per dare una spiegazione, la parte che ho evidenziato nel primo post non carica le variabili salvate dal metodo POST nella stringa query e conseguentemente inserisce un record parzialmente vuoto.
Devi accedere o registrarti per scrivere nel forum
5 risposte