Inserire in tabella valore selezionato da un menu' a tendina popolato dai valori di un'altra tabella

Rastyn

Nuovo Utente
11 Nov 2012
4
0
0
Salve a tutti.
Ho creato in PHP un menù a tendina dove i valori presenti sono stati prelevati da una colonna di una tabella, e fino a qui nessun problema. Ho difficoltà a far "passare" il valore che verrà selezionato nel menù a tendina in un'ulteriore tabella. In pratica quale variabile devo passare al metodo INSERT INTO per portare il valore selezionato nella tabella che voglio popolare?
A seguire il codice PHP creato, del tutto funzionante tranne che nell'inserimento del valore selezionato nel menù a tendina.

PHP:
<?php
define("HOSTNAME","localhost");
define("USER","sdk");                                      /* Definisco le costanti per accesso al database*/
define("PASSWORD","jhjhk");
define("DATABASE","videonoleggio");
$connection = new mysqli(HOSTNAME, USER, PASSWORD,DATABASE);     /*Connessione a mySQL e verifica successo connessione*/
if ($connection->connect_error) {
	die ('Connect Error:' . $connection->connect_error);
     } 

else {
	echo "Successful connection to MySQL <br />" ;
/*Inzio Creazione menù a tendina*/
$query = "SELECT Nome FROM puntovendita";                                  /*estraggo i dati dalla prima tabella*/
// Run the query
$result_obj = '';
$result_obj = $connection->query($query);
echo "PuntoVendita: <select name='PuntoVendita'>";                          /*menu' a tendina*/
while($result = $result_obj->fetch_array(MYSQLI_ASSOC)) {
	// display the array
	$pass= isset ($result['PuntoVendita']);

	echo "<option value=\"$pass\>";
	print_r($result);
	$punto=$result;
	
}
echo "</select><br /><br />";

            if(isset($_GET['tastoINS']) == "Ok") {
	
				/* Get single value parameters*/
				
				$PuntoVendita = filter_var($punto, FILTER_SANITIZE_STRING);
				
				$query = "INSERT INTO personale (PuntoVendita) VALUES". "('$punto')";  /*Inserisco dei valori nella seconda tabella */
			
				if (!$result = $connection->query($query)) {
					echo "Non posso aggiungere il dato. <br />";
				}
				else {
					echo "Righe aggiunte con successo <br />";
				}

        }
    
            if (isset($_GET['tastoBACK']) == "Back") {
	            header("Location: index.php");
	
	}	
}
?>



Ho provato a passare la variabile $punto ma senza successo.

Grazie a chi può aiutarmi.
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao un paip di cose
1) racchiudi sempre il codice tra gli appositi tag (seconda riga formattazione del post ultime tre iconcine nell'ordine CODE, HTML, PHP)
2) hai fatto mi sembra un po di caos, oggi ci do un occhio e ti so dire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
ecco come dovresi fare
PHP:
<?php
//......
$result_obj = $connection->query($query);
echo "<form name=\"form1\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
echo "PuntoVendita: <select name='PuntoVendita'>"; 
while($result = $result_obj->fetch_array(MYSQLI_ASSOC)) {
    // display the array
    //$pass= isset ($result['PuntoVendita']);//!!!!!! isset ritorna un valore bool FALSE o TRUE non il valore della variabile
    echo "<option value=\"".$result['PuntoVendita']."\">".$result['PuntoVendita']."<option>";
    
}
echo "</select><br /><br />";
//poi ci vuole il pulsante di submit (ti metto quello) o un js per inviare
echo "<input name=\"invia\" type=\"submit\" id=\"invia\" value=\"invia\">";
echo "</form>";
if($_POST['invia'])){//si verifica che sia stato dato il submit
	$PuntoVendita = filter_var($_POST['PuntoVendita'], FILTER_SANITIZE_STRING);//leggo il valore della select
	//e inserisco
	$query = "INSERT INTO personale (PuntoVendita) VALUES". "('$PuntoVendita')";
	//.....
}
//......
?>
guarda che ho schematizzato devi adattarlo alle tue esigenze

p.s.
un consiglio evita di usare le maiuscole nei nomi dei campi e nelle variabili, ti assicuro che si evitano molti errori
 

Rastyn

Nuovo Utente
11 Nov 2012
4
0
0
Grazie infinite, mi hai chiarito e risolto un bel problema che mi impediva di continuare.

Unica eccezione riguarda l'uso della "isset", ho dovuta usarla anche nel tuo codice (vedi riga a seguire)

echo "<option value=\"".isset($result['PuntoVendita'])."\">".isset($result['PuntoVendita'])."<option>";

altrimenti nel db avrei trovato sempre una notifica del tipo:

Notice: Undefined index: ......

Grazie ancora.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
???????

PHP:
echo "<option value=\"".isset($result['PuntoVendita'])."\">".isset($result['PuntoVendita'])."<option>";
se $result['PuntoVendita'] esste l'opzion diventa

HTML:
<option value="TRUE">TRUE<option>
se non valorizzata
HTML:
<option value="FALSE">FALSE<option>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
ho provato a darci una sistematina, però non l'ho testato perche non ho il db
guarda i commenti
PHP:
<?php
//dati di connessione
//query
if(mysql_num_rows($selezione)>0){
	while($array=mysql_fetch_assoc($selezione)){
		$portieri[]=$array["portieri"];
		$difensori[]=$array["difensori"];
	}
	//se metti il form dentro il while ottieni un sacco di <form>
	echo "<form action=\"".{$_SERVER['PHP_SELF']}."\" method=\"post\">";//manca l'action e il method
		echo "<select name=\"selezione_portieri\">";
		foreach($portieri as $val1){
        	echo "<option value=\"$val1\">$val1</option>";
    	}
		// PERCHE' MESCOLI NELLA STESSA <SELECT> PORTIERI E DIFENSORI?
		//la select, così come è, trasmette un unico valore
		foreach($difensori as $val2){
        	echo "<option value=\"$val2\">$val2</option>";
    	}
		echo "</select>";
		echo "<input type=\"submit\" name=\"invia\" value=\"Clicca qui\">";
	echo "</form>";
}
if(isset($_POST['invia'])){//verifichi che sia stato premuto il submit
	$portiere_selezionato=trim($_POST["selezione_portieri"]);
	if($portiere_selezionato != ""){
		$stringa="INSER INTO selezionati_claudio(visual_portieri) VALUES('$portiere_selezionato')";
		//qui metti un var_dump per vedere cone se la stringa è OK, poi lo togli
		var_dump($stringa);  
    	mysql_query($stringa) or die(mysql_error());    
    	//e rimandi dove vuoi
	}else{
		echo "errore, non hai selezionato";
		//e rimandi al form
	}
}
?>
prova e sappimi dire
p.s.
per risparmiare codice al posto di crere l'array dei portieri potresti mettere il tag <option...> dentro un while
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Access (Inserire un valore di un textBox in una tabella) MS Access 0
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
S Inserire foto in ogni cella di una tabella Javascript 0
B inserire valori da una tabella a un altra mysql PHP 34
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
G [PHP] inserire risultato di una query in una tabella PHP 3
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13
N [PHP] inserire campi tabella in file word PHP 0
B [MySQL] INSERIRE UTENTE CONNESSO IN TABELLA MySQL 2
AlexPD Inserire tabella excel dinamica su pagina web PHP 4
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
L Inserire Array in tabella mysql PHP 11
C Inserire Valori Da Un File Js In Una Tabella Html Javascript 19
nim inserire dati in tabella con ajax (ciclo foreach) Ajax 10
S inserire tabella relationship in una functions PHP 31
M inserire da remoto dati in una tabella PHP 21
A inserire una tabella Javascript 1
D [Access] Come inserire i dati in una tabella secondaria? MS Access 0
I inserire dati in tabella in base all'if PHP 11
L Inserire dati in una tabella PHP 6
R Creazione tabella in cui è possibile inserire percentuali... HTML e CSS 1
C Sql per inserire dati in una tabella Classic ASP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
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) 1
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0

Discussioni simili