form php connesso a database ma non inserisce dati

giuliano91

Nuovo Utente
31 Ott 2012
4
0
0
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:

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


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à.
 
Ultima modifica di un moderatore:
ciao
cosi a naso dovrebbe essere
PHP:
<?php
//......
$query = "INSERT INTO trattoreusato (id,marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,immagine)
		VALUES ('',$marca,$modello,$stato,$cavalli,$ruotemotrici,$prezzo,$descrizione,'img.pgf')";
//....
?>
cioè in values devi mettere le variabile ricavate dai $_POST

p.s.
quando scrivi il codice mettilo tra gli appositi tag (seconda riga formattazione del post ultime tre iconcine nell'ordine CODE, HTML, PHP
 
Grazie per la risposta. Ho provato a modificare come mi hai suggerito, ma mi dice che non è possibile aggiungere i valori:crying:
 
1) prova a stampare la query e metterla in phpmyadmin direttamente per vedere se funziona.
2) in più questa riga:
PHP:
if(!$result=$connect->query($query)){
La puoi modificare in questo modo (non ti risolverà il problema questo cambiamento).
PHP:
if(!$connect->query($query)){
 
1) prova a stampare la query e metterla in phpmyadmin direttamente per vedere se funziona.
2) in più questa riga:
PHP:
if(!$result=$connect->query($query)){
La puoi modificare in questo modo (non ti risolverà il problema questo cambiamento).
PHP:
if(!$connect->query($query)){

Innanzitutto grazie per la risposta.
Ho risolto il problema. In pratica sbagliavo ad usare gli apici nella query, di seguito la soluzione:

$query = "INSERT INTO trattoreusato (marca,modello,stato,cavalli,ruotemotrici,prezzo,descrizione,immagine)
VALUES ('$marca','$modello','$stato',$cavalli,$ruotemotrici,$prezzo,'$descrizione','img.pgf')";

Da quello che ho capito, bisogna mettere apici singoli(poiché sto usando apici doppi per esprimere la query) in valori text,varchar e nulla nei valori numerici.

Grazie mille per la risposta!:D
 
Si vero, le variabili che contengono stringhe hanno bisogno degli apici.
 

Discussioni simili