Sapete dirmi dove sto sbagliando? INSERT INTO....

ditex

Nuovo Utente
9 Apr 2012
11
0
0
Salve,
Tramite un form devo eseguire un invio del modulo tramite metodo POST a un file che elabora i dati per poi archiviarli nel Mysql:

Codice:
<?

require('db_config.php');

db_connect($mysql['username'],$mysql['password'],$mysql['database'],$mysql['host']);

if(isset($_POST['submit'])){
function add_dbordine($numero,$nominativo,$data_ord,$data_stim,$tipo_quad,$tipo_corn,$misure,$quant,$stato,$prezzo,$contanti'){
	$sql = 'INSERT INTO `ordini` ( `numero` , `nominativo` , `data_ord` , `data_stim`, `tipo_quad` , `tipo_corn` , `misure` , `quant` , `stato` , `prezzo` , `contanti` ) '
		. ' VALUES ( \'\', \''.mysql_escape_string($numero).'\', \''.mysql_escape_string($nominativo).'\', \''.mysql_escape_string($data_ord).'\', \''.mysql_escape_string($data_stim).'\', \''.mysql_escape_string($tipo_quad).'\', \''.mysql_escape_string($tipo_corn).'\', \''.mysql_escape_string($misure).'\', \''.mysql_escape_string($quant).'\', \''.mysql_escape_string($stato).'\', \''.mysql_escape_string($prezzo).'\', \''.mysql_escape_string($contanti).'\', \''.time().'\')';
		if(mysql_query($sql)){
			return true;
		} else {
			die(mysql_error());
			return false;
		}
	} else {
		die(mysql_error());
		return false;
	}
}
?>

Scommetto che è uscito un pastrocchio nel codice, premetto che il file db_config.php lo configurato bene.
Nel form in php, quando inserisco value="$numero" nel campo di testo, mi compare $numero mentre non dovrebbe comparirmi... come posso risolvere?

Grazie.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Lo script non può funzionare per due ragioni:
  • ci sono svariati errori logici e di sintassi;
  • definisci la funzione ma non la esegui da nessuna parte;
Sembra che tu sappia poco di PHP... Ti invito a leggere una guida e poi cimentarti nella creazione di qualcosa di questo genere.

Tanto per farti capire, un esempio di come avresti potuto farlo è questo:
PHP:
<?php
require_once 'db_config.php';

function add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti)
{
    $sql = "INSERT INTO ordini (numero, nominativo, data_ord, data_stim, tipo_quad, tipo_corn, misure, quant, stato, prezzo) ";
    $sql .= "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')";

    $arguments = func_get_args();
    $arguments = array_map('mysql_real_escape_string', $arguments);

    array_unshift($arguments, $sql);

    $sql = call_user_func_array('sprintf', $arguments);

    mysql_query($sql) or die(mysql_error());
}

if (isset($_POST['submit'])) {
    $numero = $_POST['numero'];
    $nominativo = $_POST['nominativo'];
    $data_ord = $_POST['data_ord'];
    $data_stim = $_POST['data_stim'];
    $tipo_quad = $_POST['tipo_quad'];
    $tipo_corn = $_POST['tipo_corn'];
    $misure = $_POST['misure'];
    $quant = $_POST['quant'];
    $stato = $_POST['stato'];
    $prezzo = $_POST['prezzo'];
    $contanti = $_POST['contanti'];

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti);
}
?>
Anche se le funzioni andrebbero definite in un file a parte, e servono solo se userai più di una volta la procedura.
 

ditex

Nuovo Utente
9 Apr 2012
11
0
0
Lo script non può funzionare per due ragioni:
  • ci sono svariati errori logici e di sintassi;
  • definisci la funzione ma non la esegui da nessuna parte;
Sembra che tu sappia poco di PHP... Ti invito a leggere una guida e poi cimentarti nella creazione di qualcosa di questo genere.

Tanto per farti capire, un esempio di come avresti potuto farlo è questo:
PHP:
<?php
require_once 'db_config.php';

function add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti)
{
    $sql = "INSERT INTO ordini (numero, nominativo, data_ord, data_stim, tipo_quad, tipo_corn, misure, quant, stato, prezzo) ";
    $sql .= "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')";

    $arguments = func_get_args();
    $arguments = array_map('mysql_real_escape_string', $arguments);

    array_unshift($arguments, $sql);

    $sql = call_user_func_array('sprintf', $arguments);

    mysql_query($sql) or die(mysql_error());
}

if (isset($_POST['submit'])) {
    $numero = $_POST['numero'];
    $nominativo = $_POST['nominativo'];
    $data_ord = $_POST['data_ord'];
    $data_stim = $_POST['data_stim'];
    $tipo_quad = $_POST['tipo_quad'];
    $tipo_corn = $_POST['tipo_corn'];
    $misure = $_POST['misure'];
    $quant = $_POST['quant'];
    $stato = $_POST['stato'];
    $prezzo = $_POST['prezzo'];
    $contanti = $_POST['contanti'];

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti);
}
?>
Anche se le funzioni andrebbero definite in un file a parte, e servono solo se userai più di una volta la procedura.

Hai ragione ne so poco e niente di php, anche se mi piacerebbe impararlo ma non so da dove cominciare, una volta avevo letto un paio di guide di base.
Il fatto è che questo script mi serve urgente! potresti aiutarmi?
 

ditex

Nuovo Utente
9 Apr 2012
11
0
0
Guarda che ho postato una versione semi-funzionante (sicuramente c'è qualche dettaglio da sistemare) dello script. È in fondo al post.

La funzione sarebbe questa:

Codice:
function add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti) 
{ 
    $sql = "INSERT INTO ordini (numero, nominativo, data_ord, data_stim, tipo_quad, tipo_corn, misure, quant, stato, prezzo) "; 
    $sql .= "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"; 

    $arguments = func_get_args(); 
    $arguments = array_map('mysql_real_escape_string', $arguments); 

    array_unshift($arguments, $sql); 

    $sql = call_user_func_array('sprintf', $arguments); 

    mysql_query($sql) or die(mysql_error()); 
}

giusto?

per poter far inserire i dati al database cosa mancherebbe? grazie mille
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Ho postato lo script completo: la funzione e l'inserimento dei dati nel database, cioè questa parte:
PHP:
if (isset($_POST['submit'])) { 
    $numero = $_POST['numero']; 
    $nominativo = $_POST['nominativo']; 
    $data_ord = $_POST['data_ord']; 
    $data_stim = $_POST['data_stim']; 
    $tipo_quad = $_POST['tipo_quad']; 
    $tipo_corn = $_POST['tipo_corn']; 
    $misure = $_POST['misure']; 
    $quant = $_POST['quant']; 
    $stato = $_POST['stato']; 
    $prezzo = $_POST['prezzo']; 
    $contanti = $_POST['contanti']; 

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti); 
}
Devi sistemare i nomi dei campi in caso non coincidano, per il resto dovrebbe andare.
 

ditex

Nuovo Utente
9 Apr 2012
11
0
0
Ho postato lo script completo: la funzione e l'inserimento dei dati nel database, cioè questa parte:
PHP:
if (isset($_POST['submit'])) { 
    $numero = $_POST['numero']; 
    $nominativo = $_POST['nominativo']; 
    $data_ord = $_POST['data_ord']; 
    $data_stim = $_POST['data_stim']; 
    $tipo_quad = $_POST['tipo_quad']; 
    $tipo_corn = $_POST['tipo_corn']; 
    $misure = $_POST['misure']; 
    $quant = $_POST['quant']; 
    $stato = $_POST['stato']; 
    $prezzo = $_POST['prezzo']; 
    $contanti = $_POST['contanti']; 

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti); 
}
Devi sistemare i nomi dei campi in caso non coincidano, per il resto dovrebbe andare.

Si, i campi sono esatti, ho tolto i value="" e sui name="" coincidono tutti con quelli inseriti nello script, solo che mi quando invio mi da pagina bianca poi vado a controllare nel database e non vedo nulla di nuovo.

Il file db_config.php è configurato cosi:

Codice:
<?php
$host = "localhost";
$database = "ordini";
$username = "root";
$password = "";

$mysql = mysql_connect($host, $username, $password) or die ('Errore durante la connessione');
mysql_select_db($database) or die ('Errore durante la selezione del database');
?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Posta il codice HTML del form, e modifica così la parte PHP:
PHP:
if (isset($_POST['submit'])) {  
    $numero = $_POST['numero'];  
    $nominativo = $_POST['nominativo'];  
    $data_ord = $_POST['data_ord'];  
    $data_stim = $_POST['data_stim'];  
    $tipo_quad = $_POST['tipo_quad'];  
    $tipo_corn = $_POST['tipo_corn'];  
    $misure = $_POST['misure'];  
    $quant = $_POST['quant'];  
    $stato = $_POST['stato'];  
    $prezzo = $_POST['prezzo'];  
    $contanti = $_POST['contanti'];  

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti);  

    echo 'OK';
}
Così ci assicuriamo che vada tutto bene.
 

ditex

Nuovo Utente
9 Apr 2012
11
0
0
Posta il codice HTML del form, e modifica così la parte PHP:
PHP:
if (isset($_POST['submit'])) {  
    $numero = $_POST['numero'];  
    $nominativo = $_POST['nominativo'];  
    $data_ord = $_POST['data_ord'];  
    $data_stim = $_POST['data_stim'];  
    $tipo_quad = $_POST['tipo_quad'];  
    $tipo_corn = $_POST['tipo_corn'];  
    $misure = $_POST['misure'];  
    $quant = $_POST['quant'];  
    $stato = $_POST['stato'];  
    $prezzo = $_POST['prezzo'];  
    $contanti = $_POST['contanti'];  

    add_dbordine($numero, $nominativo, $data_ord, $data_stim, $tipo_quad, $tipo_corn, $misure, $quant, $stato, $prezzo, $contanti);  

    echo 'OK';
}
Così ci assicuriamo che vada tutto bene.

lo avevo già aggiunto io, ma niente da fare non mi appare il messaggio di conferma
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao,sicuro che il pulsante per l'invio del form abbiama name "submit"?

prova a mettere var_dump($_POST); a inizio pagina
 

ditex

Nuovo Utente
9 Apr 2012
11
0
0
ciao,sicuro che il pulsante per l'invio del form abbiama name "submit"?

prova a mettere var_dump($_POST); a inizio pagina

Ahahahhaah non ci credo! scusate ma torno già stanco da lavoro... hai ragione dovevo mettere name="submit" credevo che con il type lo riconosceva :dormo:
grazie mille criric e soprattutto anche a te alessandro!
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Sapete estrapolare file flash di bravo c3 softworks? Flash 0
L ma sapete qcosa di vodafone casa Discussioni Varie 0
M Sapete un hosting gratuito che supporta ASP? Hosting 1
jan267 PayClick... ? Ne sapete qualcosa ?!?! Guadagnare col Sito 5
M Sapete come trasformare una presentazione di PowerPoint in una presentazione in dvd? Webdesign e Grafica 1
J ragazzi vi intendete di computer?sapete scrivere delle guide? Presenta il tuo Sito 1
P Mi Sapete Aiutare? Leggi, Normative e Fisco 0
W [PHP] dirmi dove posso trovare.. Offerte e Richieste di Lavoro e/o Collaborazione 1
asevenx sapreste dirmi il nome del tema di questo sito? WordPress 2
A Qualcuno può dirmi i codicI di questI esercizi???? PHP 4
M Potete dirmi come si crea una Applet Java... Importante Vi prego Javascript 5
4 qualcuno sa dirmi dove posso trovare.. PHP 1
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
B Sito dove vendere e comprare di tutto Offerte e Richieste di Lavoro e/o Collaborazione 1
C Dove trovo ipcamera cgi solo html IP Cam e Videosorveglianza 0
Michelebozzo Dove sono finiti i miti del web? Discussioni Varie 1
P [HTML] Creazione pagina web da dove iniziare HTML e CSS 2
C [PHP] Come realizzare un tema wordpress per monetizzarlo?e dove testarlo gratis? PHP 3
filograndipad2 Da dove arrivano i parametri degli event handler? Sviluppo app per Android 1
W una single board dove gira Windows Hardware 0
Selenio89 problema a caricare immagine con html. dove sbaglio? HTML e CSS 25
D prima prova con ASP... dove sbaglio? Classic ASP 13
Merlina3377 dove vengono salvati i dati Linux e Software 1
Licantropo [phpBB] Forum, rischi e dove installarlo phpBB 4
jonnino2004 guessmyage.it sito dove indovinare l'età delle persone Presenta il tuo Sito 8
G Google recaptcha in verify.php - dove inserire il codice PHP 1
D dove viene memorizzato il mio db sqlite? Sviluppo app per Android 0
G Chi sono, dove vado. Presentati al Forum 1
gandalf1959 [PHP] ciclo while non scrive dove dovrebbe... PHP 2
patrizio hosting da dove iniziare? Hosting 5
Monital [Javascript] decidere dove aggiungere il campo dinamicamente Javascript 1
filippino Facebook UserID dove lo trovo? Social Media Marketing 0
M creare una tabella dove inserire i dati del database Database 1
M Cartella predefinita dove salvare i backup PHP 0
G Dove comprare un sito web Compravendita siti e domini 2
filippino IP Vodafone Station: dove posso leggerlo? Reti LAN e Wireless 1
P Non riesco a capire dove sta l'errore e perchè non mi memorizza il contenuto PHP 14
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 0
P dove si va a salvare il dbase phpmyadm una volta creato ???? Database 7
S Dove vanno a finire le discussioni inviate? Discussioni Varie 1
max_400 Hosting gratuito dove mettere giochi in flash Hosting 2
otto9due A scopo didattico.. Dove sbaglio? Javascript 6
otto9due Qualcuno mi dice dove sbaglio in questa classe .. PHP 4
otto9due importare file .php tramite .load dove sbaglio?? jQuery 2
Shyson Dove posizionare i codici php? PHP 5
L da dove escono questi tag? HTML e CSS 3
N Comprare fan facebook? Ecco dove Annunci servizi di Social Media Marketing 2
R Sostiture il colore di sfondo di un'immagine con canvas e drawImage... dove sbaglio? Javascript 1
C [Servizio]Visite per siti web o video provenienti da facebook.com o da dove vuoi tu Annunci servizi di Social Media Marketing 0
Mauro Guardiani chi sa dove mettere questo codice Tubular jQuery plugin Javascript 1

Discussioni simili