inserire dati in tabella in base all'if

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ragazzi, sto impazzendo, potete darmi una mano, in pratica in fase di registrazione ho messo un campo spedizione dove se viene spuntato il campo radio si deve prelevare i dati dal form di registrazione ed inserirli nella tabella spedizioni, mentre se spuntata al no deve rimandarmi ad un'altra pagina con un'altro form dove è possibile inserire i dati di spedizione.
Posto il codice, così potrete capire meglio:

PHP:
//Inserisce il nuovo membro nel database
$insert ="INSERT INTO `utenti` (username, nome, cognome, sesso, data_nascita, azienda, indirizzo, stato, regione, citta, cap, provincia, civico, codice_fiscale, 
p_iva, tel, fax, email, password, data_iscrizione, ora_iscrizione) VALUES ('".$_POST['username']."', 

'".$_POST['nome']."', '".$_POST['cognome']."', '$sesso', '".$_POST['data_nascita']."', '".$_POST['azienda']."', 
'".$_POST['indirizzo']."', '".$_POST['stato']."', '$regioni', '$citta',
'".$_POST['cap']."', '$provincia', '".$_POST['civico']."', '".$_POST['c_fiscale']."', '".$_POST['p_iva']."', 
'".$_POST['tel']."', '".$_POST['fax']."', '".$_POST['email']."', 
'".md5($_POST['password'])."', '$myday', '$ora')";
 
 $insert2 = mysql_query($insert);
   if(!$insert2) die(mysql_error());

//il pezzo di codice che mi serve
if($_POST['spedizione'] != si){
header('Location: indirizzo_spedizione.php');
}else{
$inser1 = "INSERT INTO indirizzo_spedizione (username, nome, cognome, indirizzo, civico, cap, citta, provincia, regione, stato, tel, fax) VALUES 
('".$_POST['username']."', '".$_POST['nome']."', '".$_POST['cognome']."', '".$_POST['indirizzo']."', '".$_POST['civico']."', 
 '".$_POST['cap']."', '$citta', '$provincia', '$regioni', '".$_POST['stato']."', '".$_POST['tel']."', '".$_POST['fax']."')";
$inser2 = mysql_query($inser1);
 if(!inser2) die(mysql_error());
}

i valori del radio spedizione sono si, o no.
Spero di essere stato abbastanza chiaro.
Grazie :D
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se non ho capito male
con radio=si nome, indirizzo... del registrato corrisponde all'indirizzo a cui devi spedire
con radio=no l'indirizzo di spedizione non corrisponde a quello del registrato
giusto?
se è cosi, secondo me, dovresti portarti dietro con session il valore dell'username (non modificabile) e, sempre con session i valori che andranno modificati.
nella pagina indirizzo_spedizione.php fai il tuo form e ti riprendi i dati che ti sei portato dietro mettendo nei vari campi di input quelli da modificare e poi fai l'insert
se hai pazienza un minuto ti faccio un piccolo esempio
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ecco prova così

nella pag che hai postato
PHP:
<?php
if(!isset($_SESSION)){
	session_start ();
}
// ecccetera..............
//il pezzo di codice che mi serve
if($_POST['spedizione'] != si){
	$_SESSION['username']=$_POST['username'];
	//altri valori da portarti dietro se ti servono es.
	$_SESSION['indirizzo']=$_POST['indirizzo'];
	//ecc...........
	header('Location: indirizzo_spedizione.php');
}else{
// ecccetera..............
}
?>

nella pag indirizzo_spedizione.php
PHP:
<?php
if(!isset($_SESSION)){
	session_start ();
}
$username=$_SESSION['username'];//non modificabile

if($_POST['Submit']){
//qui fai l'insert dei valori
$inser1 = "INSERT INTO indirizzo_spedizione (username,.........) VALUES ('$username', .....)";

//.......................
}
?>
inserisci i dati di spedizione</p>
<form name="form1" method="post" action="indirizzo_spedizione.php">
  <p>modifica indirizzo 
    <input name="indirizzo" type="text" id="indirizzo" value="<?php echo $_SESSION['indirizzo']; ?>">
	<!-- tutti i campi di input che ti servono-->
</p>
  <p>
    <input type="submit" name="Submit" value="Invia">
</p>
</form>
famm sapere se era quello che volevi
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Il valore del campo deve essere tra virgolette... mi sembra veramente strano che PHP non ti abbia dato nessun errore qui:
PHP:
<?php
if($_POST['spedizione'] != si){ 
?>
Anzi, è proprio impossibile. Dovrebbe essere:
PHP:
<?php
if($_POST['spedizione'] != 'si'){
?>
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ragazzi, ho provato il codice, ma qualsiasi sia la scelta mi rimanda sempre alla pagina indirizzo spedizione.php, e non scrive nulla nel database.
Vi posto il codice per intero che è contenuto nella pagina registration.php

PHP:
//prima recupera tutti i valori del form di registrazione ed effettua controllo username e password, poi...
//Inserisce il nuovo membro nel database
$insert ="INSERT INTO `utenti` (username, nome, cognome, sesso, data_nascita, azienda, indirizzo, stato, regione, citta, cap, provincia, civico, codice_fiscale, 
p_iva, tel, fax, email, password, data_iscrizione, ora_iscrizione) VALUES ('".$_POST['username']."', 

'".$_POST['nome']."', '".$_POST['cognome']."', '$sesso', '".$_POST['data_nascita']."', '".$_POST['azienda']."', 
'".$_POST['indirizzo']."', '".$_POST['stato']."', '$regioni', '$citta',
'".$_POST['cap']."', '$provincia', '".$_POST['civico']."', '".$_POST['c_fiscale']."', '".$_POST['p_iva']."', 
'".$_POST['tel']."', '".$_POST['fax']."', '".$_POST['email']."', 
'".md5($_POST['password'])."', '$myday', '$ora')";
 
 $insert2 = mysql_query($insert);
   if(!$insert2) die(mysql_error());

//il pezzo di codice che mi serve
if($_POST['spedizione'] != 'si'){
    $_SESSION['username']=$_POST['username'];
    //altri valori da portarti dietro se ti servono es.
    $_SESSION['indirizzo']=$_POST['indirizzo'];
    //ecc...........
    header('Location: indirizzo_spedizione.php');
}else{
$inser1 = "INSERT INTO indirizzo_spedizione (username, nome, cognome, indirizzo, civico, cap, citta, provincia, regione, stato, tel, fax) VALUES 
('".$_POST['username']."', '".$_POST['nome']."', '".$_POST['cognome']."', '".$_POST['indirizzo']."', '".$_POST['civico']."', 
 '".$_POST['cap']."', '$citta', '$provincia', '$regioni', '".$_POST['stato']."', '".$_POST['tel']."', '".$_POST['fax']."')";
$inser2 = mysql_query($inser1);
 if(!inser2) die(mysql_error());

Grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ora do un occhio al codice poi ti so dire.
comunque prova a mettere i soliti var_dump

//.........
var_dump($insert);
$insert2 = mysql_query($insert);

//............................

var_dump($insert1);
$inser2 = mysql_query($inser1);

e guarda se le query vengono scritte nel modo giusto
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao scusa vedievo questo

$insert ="INSERT INTO `utenti` (username,.......
intanto togli quelli che sembrano apici
$insert ="INSERT INTO utenti (username,.......

stai attento con cosa scrivi il codice (spero che tu non utilizzi word) perche talvolta al posto dell'apice ' viene inserito ` che è un'altra cosa
 

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Non è una questione di query, perchè se non eseguo l'if, mi scrive tutto correttamente nel database, ma è una questione che non esegue correttamente la if in base alla scelta. Perchè se non erro l'espressione
PHP:
if($_POST['spedizione'] != 'si')
dovrebbe significare se la scelta del value contenuto nel form con nome spedizione è uguale a si esegui...
altrimenti esegui quest'altro...
Giusto?

Perchè non lo fa?

Grazie

"Il codice lo scrivo con Context"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
due cose
uno non vedo la } di chiusura dell'else
due metti il solito var_dump e vedi che ti risulta

PHP:
//il pezzo di codice che mi serve
var_dump($_POST['spedizione']);

if($_POST['spedizione'] != 'si'){
//eccc codice per diverso da si......
}else{
//eccc codice per uguale a si.....
}

inoltre attento: $_POST['spedizione'] != 'si' vuol dire se post diverso da si esegui "codice per diverso da si" altimenti "codice per uguale a si", se non ho capito male stai facendo il contrario di

value contenuto nel form con nome spedizione è uguale a si esegui...
altrimenti esegui quest'altro...

se nel form metti un checkbox con la domanda "l'indirizzo di spedizione e diverso dal tuo indirizzo? se si seleziona il check"
e se il check se selezionato ha value="si" devi fare

if($_POST['spedizione'] == 'si'){
//manda al form per cambiare indirizzo
}else{
//inserisci l'indirizzo
}

tutto dipende dalla domanda e da come metti il value del check
 
Discussioni simili
Autore Titolo Forum Risposte Data
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13
M creare una tabella dove inserire i dati del database Database 1
F Inserire tanti dati in una tabella MySQL 2
C Inserire dei dati di una tabella dinamica in un file esterno js Javascript 17
nim inserire dati in tabella con ajax (ciclo foreach) Ajax 10
M inserire da remoto dati in una tabella PHP 21
D [Access] Come inserire i dati in una tabella secondaria? MS Access 0
L Inserire dati in una tabella PHP 6
C Sql per inserire dati in una tabella Classic ASP 1
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
L inserire dati multi livello PHP 8
G inserire dati automaticamente in mysql PHP 0
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
A [ASP] Inserire dati in un database Classic ASP 1
B INSERIRE DATI CON IMMAGINE DA FORM IN MYSQL MySQL 7
B Inserire dati su DB da mail Classic ASP 6
C Inserire i dati in un vettore senza ammettere duplicati C/C++ 0
C Inserire dati da input PHP 5
M Inserire nel DB i dati provenienti da checkbox e recuperarli poi dal DB per la pagina di edit PHP 20
F [RISOLTO]inserire dati nel database jQuery 14
C Pagina HTM connessa al DB access (non è possibile modificare/inserire dati) MS Access 0
M Semplice pagina per inserire/leggere dati su database PHP 5
Emix Inserire Array di dati in database.... PHP 21
L classe per inserire dati al database PHP 2
N Inserire dati in un database Mysql PHP 6
asevenx inserire dati da form con nome variabile PHP 0
T inserire un url su dati richiamati da mysql PHP 4
T Inserire i dati da un .txt ad un database PHP 1
D php e maschera per inserire dati in mysql PHP 4
I Inserire più dati in database PHP 43
I Inserire dati in database PHP 7
E inserire dati del DB nel sito PHP 5
D Inserire su un file alcuni dati presi da vari form PHP 2
M Aiuto come inserire dati tramite php? PHP 1
A Inserire in una pagina dei dati presi da una popup Javascript 3
§ inserire dati in form già fatti PHP 20
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
D Inserire link PHP 0
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3

Discussioni simili