Inviare dati da form a database

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Ciao a tutti, sono vari giorni che cerco di capire cosa sbaglio nell'inserimento di questo codice php..

il codice del form è questo:
HTML:
<form method="post" name="form_setv&setp" action="./"> 
        		<input type="text" name="setv" width="6px" height="6px"/>
         <INPUT type="submit" name="invia_set" value="S"> </form>

ed è presente in un file php.

Il codice php per l'invio dei dati al database:
PHP:
 $connessione_db = mysql_connect('localhost', '***', '***');

			mysql_select_db('***');
		   
		   $setv = $_POST['setv'];
		  		   
		   $sql = "INSERT INTO PN_PARTITA_UTENTI (set_vinti) VALUES ('".$setv."') WHERE id_partita = $id_partita AND user_id=3";
		    
           $result = mysql_query($sql);

Nonostante metta un valore diverso da zero, in set_vinti rimane 0 e non aggiorna il valore
setv.JPG

Cosa sbaglio? vi chiedo aiuto!
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
A quanto mi risulta sull'action non va bene "./" quindi prova a mettere

action="<?php echo $_SERVER['PHP_SELF']; ?>"
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
grazie del consiglio, fortunatamente ho apportato questa modifica e funziona:

PHP:
mysql_query("UPDATE PN_PARTITA_UTENTI SET set_vinti=$setv, set_persi=$setp WHERE id_partita = $id_partita AND username = '$username' ");


Ora mi è sorto un altro dubbio.. esiste un modo per inviare i dati di vari form premendo un solo pulsante submit? Per far capire meglio ti mostro la schermata del sito:
lista.JPG

Senza far caso all'errore di css per l'allineamento verticale :rolleyes: come puoi vedere si crea automaticamente un form per ogni scheda utente, all'interno di ogni campo devo inserire dei valori numerici diversi per ognuno.. mi piacerebbe fare un'unica compilazione e poi mandare i dati al database.

Il mio codice è questo:
HTML:
<?php 
$count = count($ListaPartecipanti);
for ($i = 1; $i <= $count; $i++) {
?>


  <div class="player_cont">
  
        <div class="player_ico"><?php echo get_avatar($ListaPartecipanti_avatar[$i], $size = '48' ); ?>
        </div>
        <div class="player_info_cont">
        	<a class="player_name" title="Vedi il profilo di <?php echo $ListaPartecipanti[$i]?>" href="http://volleynapoli.altervista.org/sito/iscritti/<?php echo $ListaPartecipanti[$i]?>" >
			<?php echo $ListaPartecipanti[$i]?></a>
       	  </div>
			<?php if( current_user_can( 'manage_options' ) ) { 
			if ($stato_partita = 'AT') { 
			if($data_attuale > $data_fine_confronto){
			?> 
            <div class="player_link_cont">
              	<form method="post" name="form_setv&setp" action="./"> 
        		<input style="visibility:hidden" type="text" name="username" value="<?php echo $ListaPartecipanti[$i]?>" />
                <input type="text" name="setv" size="1px"/><input type="text" name="setp" size="1px"/>
         <INPUT type="submit" name="invia_set" value="go"> </form>
         
		 
      
       <?php  // AGGIUNGI SET VINTI E PERSI

 $connessione_db = mysql_connect('localhost', '***', '***');

			mysql_select_db('***');
		   
		   $setv = $_POST['setv'];
		   $setp = $_POST['setp'];
		   $username = $_POST['username'];
		   
		         
		   mysql_query("UPDATE PN_PARTITA_UTENTI SET set_vinti=$setv, set_persi=$setp WHERE id_partita = $id_partita AND username = '$username' ");
		    
            ?>
         

            </div>
          
            
		<?php } } }?>
        

        
		
        
   </div>


<?php } ?>
 
Ultima modifica:

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Scusa ma non ho capito bene cosa intendi dire; ho visto che ogni utente ha due campi vuoti ma non ho capito cosa intendi fare
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Inserisco dei valori numerici e li invio al database... il problema è che con questo codice si creano 14 form, quindi per ogni utente devo premere GO. Secondo te c'è un modo per fare un'unica compilazione e a fine lista un solo pulsante GO?
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Scusa la mia insistenza, ma secondo me forse hai adottato una logica sbagliata; cmq per inviare più form con un solo submit potresti racchiudere tutto in
una funzione contenente ad esempio:

document.nomeform1.submit();
document.nomeform2.submit();
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
uaa è una funzione che non ho mai visto.. potresti fare un esempio per favore? c'è online qualche guida che lo spiega? spero sia davvero la soluzione che cerco!
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Scusa se rispondo solo ora;
è semplicissima (si tratta di javascript);

Una funzione come dice il nome stesso racchiude delle "funzionalità"; in quetso caso gli abbiamo indicato tramite javascript di fare il submit
rispettivamente di nomeform1 e nomeform2 (i nomi ad esempio sarebbero presi dal tag name vicino al form.

Codice:
/**racchiudo tutti gli invii all'interno di una funzione
function test(){

  document.nomeform1.submit(); //significa che ho un <form name='nomeform1'....
  document.nomeform2.submit(); //significa che ho un <form name='nomeform2'....



}

//richiamo la funzione
<a href='#' onclick='javascript:test()'>Invia i dati di tutti i form</a>
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Scusa se rispondo solo ora;
è semplicissima (si tratta di javascript);

Una funzione come dice il nome stesso racchiude delle "funzionalità"; in quetso caso gli abbiamo indicato tramite javascript di fare il submit
rispettivamente di nomeform1 e nomeform2 (i nomi ad esempio sarebbero presi dal tag name vicino al form.

Codice:
/**racchiudo tutti gli invii all'interno di una funzione
function test(){

  document.nomeform1.submit(); //significa che ho un <form name='nomeform1'....
  document.nomeform2.submit(); //significa che ho un <form name='nomeform2'....



}

//richiamo la funzione
<a href='#' onclick='javascript:test()'>Invia i dati di tutti i form</a>


Grazie per la risposta, sempre gentilissimo. Quindi se ho capito bene devo aggiungerlo subito dopo il form in questo modo..

Codice:
<form method="post" name="form_setv&setp" action="./"> 
        		<input style="visibility:hidden" type="text" name="username" value="<?php echo $ListaPartecipanti[$i]?>" />
                <input type="text" name="setv" size="1px"/><input type="text" name="setp" size="1px"/>
         <INPUT type="submit" name="invia_set" value="go"> </form>


function test(){

  document.form_setv&setp.submit(); 

}

<a href='#' onclick='javascript:test()'>Invia i dati di tutti i form</a>
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Un'altra alternativa potrebbe essere quella di chiudere tutti i campi da compilare in un'unico form.
Era una soluzione che avevo tenuto conto ma purtroppo non funziona in questo caso.. se vedi nel codice ho solo un form che si ripete in automatico per ogni utente che si aggiunge alla lista.
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Perdonami ma da quel poco che ho capito :book: devi prendere i dati di più utenti e passarli da qualche altra parte; (scusa la mia testa ma facendo un esempio pratico forse riesco a capire):

- con una query prelevi i dati di tutti gli utenti;
- fai un ciclo for e metti tutti questi dati in uno / più array
- Trasmetti questo array dove ti serve
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Scusami tu, non ho spiegato bene il funzionamento della pagina php..

Con $ListaPartecipanti[$i] prelevo gli utenti uno ad uno che si posizionano a formare una lista completa, poi quando if($data_attuale > $data_fine_confronto) genero un form per ogni utente
HTML:
<form method="post" name="form_setv&setp" action="./"> 
        		<input style="visibility:hidden" type="text" name="username" value="<?php echo $ListaPartecipanti[$i]?>" size="1px"/>
                <input type="text" name="setv" size="1px"/><input type="text" name="setp" size="1px"/>
         <INPUT type="submit" name="invia_set" value="SET!"> </form>
ed infine compilando i riquadri <input type="text" name="setv" size="1px"/><input type="text" name="setp" size="1px"/> li trasmetto al database in questo modo mysql_query("UPDATE PN_PARTITA_UTENTI SET set_vinti=$setv, set_persi=$setp WHERE id_partita = $id_partita AND username = '$username' ");

Perdonami per il linguaggio poco professionale che ho usato, sto andando avanti un pò da autodidatta e un pò col tuo aiuto.. ci sto perdendo la testa ma puoi ben immaginare la soddisfazione nel vedere che il programmato funziona!
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Con $ListaPartecipanti[$i] prelevo gli utenti uno ad uno che si posizionano a formare una lista completa, poi quando if($data_attuale > $data_fine_confronto) genero un form per ogni utente

bo ci provo....
Allora potresti ad esempio

PHP:
<form>

<?php 
//seleziono tutti gli utenti con data_attuale>data_fine_controllo
$sql=("SELECT * FROM UTENTI WHERE data_attuale>data_fine_controllo");
$sql_query=mysql_query($sql);

while($row=mysql_fetch_array($sql_query)){

$id_utente=$row['id'] //ricavo l'identificativo di ogni utente
echo "<input name='utente".$i."' />" //dato / dati da modificare

}

?>
</form>

Ti premetto non ho guardato bene le tue tabelle come sono strutturate e quindi non so se le query fanno proprio al caso tuo ma guarda l'idea: Prelevi l'id di ogni utente e lo inserisci all'interno del tag name; in questo modo per ogni utente puoi prelevare i dati con un unico form
 

anthares

Nuovo Utente
8 Gen 2012
26
0
0
Non ho capito bene qual'è il tuo consiglio.. guarda l'immagine che ti posto qua.. lista giocatori.JPG

è un esempio di lista di giocatori che hanno aderito alla partita, e a fine giornata occorre inserire i risultati della partita attraverso i set vinti e i set persi di ognuno.

Come creo questa lista? usando la variabile $ListaPartecipanti[$i] prendo da una tabella il nome dell'utente che ha aderito a quella specifica partita, con $ListaPartecipanti_avatar[$i] il suo avatar.. quando la data attuale supera quella di confronto (ossia quando la partita è stata disputata), se sono amministratore si attivano i campi per inserire i set vinti e persi, una coppia di campi per ogni giocatore, proprio come nell'immagine sopra. La cosa che mi piacerebbe fare è usare un unico pulsante submit a fine lista per inviare tutti i dati dei campi in una sola volta.

Se vedi il codice io uso un solo codice form che poi si replica automaticamente per ogni giocatore.. e penso sia qua il problema, solo che non so davvero dove mettere mano. Da autodidatta mi sto spingendo in frontiere che non avevo ancora valicato!

PHP:
<?php
// Verifico se l'utente è loggato con la variabile $isLogged ...
// Variabili utilizzate ... 
// $stato_partita
// $NomeUtente
// $CodiceUtente
// $numero_partita = 1;
// $data_partita = '26-04-2010';
// $numero_partecipanti = 14;
// $data_inizio_iscrizione = '24-04-2010-07-00';
// $data_fine_iscrizione = '25-04-2010-19-00';
//
// Se è vuoto , la partita è "ATTIVA E VALIDA". Se è pieno ...le iscrizioni sono chiuse...
// $messaggio_stato_partita
// $link_forum = '#';
// $id_partita (identificativo partita)
// $UtentePresente (Nella partita ... "si" / "no" )
// $UtenteAutorizzatoPartita (Autorizzato a partecipare si / no)
// $ListaPartecipanti ( array() )
// $ListaRiserve = ( array() )
// $ListaPartecipanti_avatar ( array() )
// $ListaPartecipanti_ruolo ( array() )
// $ListaPartecipanti_zona ( array() )
// $ListaRiserve_avatar = ( array() )
// $ListaCancellati = array()
// $ListaCancellati_avatar = array()
// $PostiLiberi
// $TipoPartita (C=Classica, O=Open, P=Promozionale,  A=Allenamento)

include '../sito/php_volleynapoli/pnbp_crea_partita.php';
include '../sito/php_volleynapoli/pnbp_check_login.php';
include '../sito/php_volleynapoli/pnbp_iscrivi_cancella_giocatore.php';
include '../sito/php_volleynapoli/pnbp_check_partecipazione.php';
include '../sito/php_volleynapoli/pnbp_lista_partecipanti.php';
include '../sito/php_volleynapoli/pnbp_aggiorna_giocatore.php';

?>

<div class="titolo_lista"><strong>LISTA GIOCATORI:</strong> <?php echo $PostiLiberi?> posti disponibili</div>
<div class="lista">


<?php 
$count = count($ListaPartecipanti);
for ($i = 1; $i <= $count; $i++) {
?>

  <div class="player_cont">
  
        <div class="player_ico"><?php echo get_avatar($ListaPartecipanti_avatar[$i], $size = '48' ); ?>
        </div>
        <div class="player_info_cont">
        	<a class="player_name" title="Vedi il profilo di <?php echo $ListaPartecipanti[$i]?>" href="http://volleynapoli.altervista.org/sito/iscritti/<?php echo $ListaPartecipanti[$i]?>" >
			<?php echo $ListaPartecipanti[$i]?></a>
       	  </div>
			<?php if( current_user_can( 'manage_options' ) ) { 
			if ($stato_partita = 'AT') { 
			if($data_attuale > $data_fine_confronto){
			?> 
            <div class="player_link_cont">
              	<form method="post" name="form_setv&setp" action="./"> 
        		<input style="visibility:hidden" type="text" name="username" value="<?php echo $ListaPartecipanti[$i]?>" size="1px"/>
                <input type="text" name="setv" size="1px"/><input type="text" name="setp" size="1px"/>
        		<INPUT type="submit" name="invia_set" value="s"> </form>
         
<?php  // AGGIUNGI SET VINTI E PERSI

$connessione_db = mysql_connect('localhost', '***', '***');
mysql_select_db('my_***');
		   
$setv = $_POST['setv'];
$setp = $_POST['setp'];
$username = $_POST['username'];
		   
mysql_query("UPDATE PN_PARTITA_UTENTI SET set_vinti=$setv, set_persi=$setp WHERE id_partita = $id_partita AND username = '$username' ");
		    
			
// CALCOLO IL NUMERO DI SET VINTI E PERSI e AGGIORNO TABELLA...

$query = "SELECT sum(set_vinti) as num_setv FROM PN_PARTITA_UTENTI where username = '$username' ";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

$user_setv = $row['num_setv'];

mysql_query("UPDATE PN_USER_EXTENDED SET user_setv = $user_setv WHERE username = '$username' ");


$query = "SELECT sum(set_persi) as num_setp FROM PN_PARTITA_UTENTI where username = '$username' ";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);

$user_setp = $row['num_setp'];

mysql_query("UPDATE PN_USER_EXTENDED SET user_setp = $user_setp WHERE username = '$username' ");
			
            ?>
         
            </div>
                    
		<?php } } }?>
   </div>

<?php } ?>
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
L inviare i dati di un form ad un database PHP 6
O [PHP] inviare dati da form e script ajax PHP 0
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
F Inviare dati da multi form Javascript 3
K Aiuto! inviare dati da form a database mysql MySQL 2
R Inviare dati form a indirizzo email PHP 23
M file php per inviare dati form PHP 0
S inviare dati da un form a database access Flash 0
M Inviare dati nel db dopo risposta alert PHP 0
H [PHP] Inviare dati PHP 3
I Inviare dati POST tramite curl PHP 0
danjde inviare dati testuali verso iframe PHP 5
N inviare dati post tramite redirect PHP 4
M link con dati estratti da un db e aggiungere a tali link variabili da inviare a nuova pagina PHP 2
F inviare dati ottenuti da "parse script" PHP 5
M Inviare dati da iframe alla pagina principale Javascript 1
E Estrarre dati dal DB e inviare mail PHP 10
T Inviare dati tramite post con un BUTTON Javascript 0
S inviare dati a 1 indirizzo email Classic ASP 1
J inviare dati via email Javascript 2
B Inviare dati ad una pagina.aspx con Javascript Javascript 1
G inviare email contenete dati da db Classic ASP 1
csi Inviare file jpg in locale alla stampante con php PHP 0
M Inviare un file su un server remoto con JavaScript Javascript 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
D INVIARE PAGINA XHTML TRAMITE EMAIL HTML e CSS 1
D [HTML] Inviare un link contenente un' immagine HTML e CSS 4
M Inviare variabili da menu a tendina a pagina php con post PHP 6
I [PHP] inviare form con allegato tramite una mail PHP 1
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
A [PHP] Inviare mail con piu immagini allegate PHP 6
C non riesco a inviare la posta con account alice Posta Elettronica 1
F [Javascript] Inviare i campi di un form col metodo post Javascript 7
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
L 120 SMS Gratis da inviare in qualsiasi momento Vendere e Acquistare pubblicita' online 0
angelo85 Sito joomla che permetta agli utenti di inviare mail Joomla 2
E [PHP] inviare 2 form consecutivamente PHP 4
S PHP: inviare via email contenuto di una funzione PHP 4
M Come inviare due mail diverse con phpmailer PHP 6
A Creare da form un PDF da inviare come allegato. PHP 1
M Inviare mail con PHP tramite Mozilla PHP 3
M Inviare mail dopo due giorni lavorativi PHP 3
P Creare form e inviare via mail HTML e CSS 2
M Inviare mail con href PHP 2
max_400 Si possono inviare sms con php? PHP 3
S inviare the_title() in una mail tramite form html/php PHP 0
M inviare email con access MS Access 3
Shyson Inviare css con form email PHP 1
N inviare input dinamici senza ricaricare la pagina Javascript 4

Discussioni simili