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
 
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
 
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
 
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'){
?>
 
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
 
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
 
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
 
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"
 
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