problema con un form

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
hai fatto un po' un pasticcio.
iniziamo dalla tabella: manca il campo dell'indicativo del record (generelmente viene chiamato id) quibdi devi aggiungere al primo posto
id int(9) primary key autoincrement
poi il form è un po' incasinato (a parte che dovresti usare i css) e alla ricezione mancano completamente i controlli (che con il form fatto in quel modo diventano una pizza), le istruzioni di ricezione e altre cose.
intanto vuoi controllare che il form sia completamente compilato e nel modo giusto?
ti butto giù uno schema e te lo posto
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
il campo nella tabella l'ho aggiunto, il form a me sembra che è compilato tutto

attendo tue istruzioni grazie mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda e prova questo schema
ho fatto tutto in un'unica pagina perchè è inutile farne due per una cosa del genere
visto che stai iniziando con php impara a sfuttarne tutte le potenzialità
leggi i commenti
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<style type="text/css">
body {background: #000000; font-family:Arial, Helvetica, sans-serif; font-size:12px;}
.normale{text-align: center;}
.squadra{color: #ff0000;font-weight: bold;text-align: center;}
.titolari{color: #33cc00; font-weight: bold; text-align: center;}
.riserve{color: #0000ff; font-weight: bold; text-align: center;}
</style>
<body>
<?php
if(isset($_POST['invia'])){
	//elimino il post del submit che potrebbe dare fastidio
	unset($_POST['invia']);
	//ricevi i dati e li normalizzo per una eventuale ricerca
	$_POST = array_map('trim', $_POST);//tolgo eventuali spazi prima e dopo il testo su tutti i $_POST
	$squadra = strtoupper($_POST['squadra']);//rendo tutto maiuscolo il nome della squadra
	$tit = array_map('ucfirst',array_map('strtolower',$_POST['titolare']));//rendo, se ci sono i nomi con l'iniziale maiuscola
	$ris = array_map('ucfirst',array_map('strtolower',$_POST['riserva']));// c.s.
	//e li verifico
	$errori="";//metto a vuoto una striga per gli errori
	//verifico nome squadra
	if(!preg_match("/^[A-Z]{3,8}$/",$squadra)){//devi decidere il massimo e minimo di caratteri {min, Max}
		$errori.="nome squadra non inserito o con caratteri non ammessi<br />";
	}
	//verifico i titolari
	if(count($tit)<11){
		$errori.="non hai inserito tutti i titolari<br />";
	}else{
		foreach($tit as $ch => $val){
			if(!preg_match("/^[a-zA-Z]{3,8}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
				$errori.="il nome del titolare $val non è ammesso<br />";
			}
		}
	}
	//verifico le riserve
	if(count($ris)<7){
		$errori.="non hai inserito tutte le riserve<br />";
	}else{
		foreach($ris as $ch => $val){
			if(!preg_match("/^[a-zA-Z]{3,8}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
				$errori.="il nome della riserva $val non è ammesso<br />";
			}
		}
	}
	//se a questo punto $errori è rimasta vuota non sono stati commessi errori
	if($errori == ""){
		//utilizzo le vecchie istruzioni MySql che però sono deprecate anche se per ora funzionano
		//prima o poi però leggiti su MySqli e la classe PDO
		//qui ci vogliono i dati di connessione al db, NON HAI SELEZIONATO IL DB
		$con = mysql_connect("localhost","arapecoston","my_arapecoston")or die(mysql_error());
		$sel = mysql_select_db("nome_data_base") or die (mysql_error());//questo non l'avevi messo
		//attento avevi usato mysqli_connet poi usi le mysql, non puoi mescolare i due metodi
		//USA PER NOMI DEI CAMPI SOLO CARATTERI MINUSCOI ED ANCHE PER I NOMI DELLE VARIABILI
		//se evitano molti errori
		$query = "INSERT INTO tabella(squadre, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
				VALUES(
				'$squadra',
				'{$tit[0]}','{$tit[2]}','{$tit[3]}','{$tit[4]}','{$tit[5]}','{$tit[6]}','{$tit[7]}','{$tit[8]}','{$tit[9]}','{$tit[10]}',
				'{$ris[0]}','{$ris[1]}','{$ris[2]}','{$ris[3]}','{$ris[4]}','{$ris[5]}','{$ris[6]}'
				)";
		if(mysql_query($query)){
			//posso usare sempre la $errori
			$errori="i giocatori della squadra $squadra sono stati inseriti<br />";
		}else{
			$errori="errore di connessione, riprova più tardi<br />";
		}
	}
	//visualizzo il messaggio
	echo $errori;
	//e ritorno al form pulito dopo 3 secondi
	echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
	<form name="formazione" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
	<table width="400" align="center">
	<tr class="squadra"><td>SQUADRA</td><td><input type="text" name="squadra" /></td></tr>
	<tr class="titolari"><td colspan="2">titolari</td></tr>
<?php
	//faccio un array con i titoli degli input
	$titolari=array('PORTIERE','TITOLARE 1','TITOLARE 2','TITOLARE 3','TITOLARE 4','TITOLARE 5','TITOLARE 6','TITOLARE 7','TITOLARE 8','TITOLARE 9','TITOLARE 10');
	//e creo i vari campi di input
	foreach($titolari as $ch => $val){
		echo "<tr class=\"titolari\"><td>$val</td><td><input type=\"text\" name=\"titolare[]\" /></td></tr>";
	}
?>
	<tr class="riserve"><td colspan="2">riserve</td></tr>
<?php
	$riserve=array('PORTIERE RISERVA','RISERVA 1','RISERVA 2','RISERVA 3','RISERVA 4','RISERVA 5','RISERVA 6');
	foreach($riserve as $ch => $val){
		echo"<tr class=\"riserve\"><td>$val</td><td><input type=\"text\" name=\"riserva[]\" /></td></tr>";
	}
?>
	<tr class="normale"><td>&nbsp;</td><td>&nbsp;</td></tr>
	<tr class="normale"><td>&nbsp;</td><td><input type="submit" name="invia" value="INVIA FORMAZIONE" /></td></tr>
	</table>
	</form>
<?php
}
?>
</body>
</html>

p.s.
non intendevo compilato cioè scritto tutto il codice intendo che l'utente (dicamo solo dispettoso) da il submit sensa aver scritto niente o scritto solo parzialmente o scritto es <<<<@§§§^ che non è certo il nome di una squadra o di un calciatore
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
grazie ancora della tua gentilezza ma probabilmente sbaglio ancora qualcosa:
ho messo il codice che gentilmente mi hai fatto in una pagina php, ho modificato il vaalore massimo dei caratteri portandolo a 15, ho aggiunto '{$tit[1]}' perchè te lo eri dimenticato (spero di aver fatto bene) ma non funziona. non da messaggi d'errore di connessione al db e non da messaggi nemmeno se non inserissco tutti i campi o metto caratteri strani e non memorizza niente nella tabella del db.
ti riposto la tabella non vorrei aver sbagliato ad inserire la riga che mi hai detto.

tabella.jpg
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
adesso dovrebbe funzionare (salvo l'insert perchè non mi sono fatto il db + la tabella), avevo fatto un paio di errori
comunque dopi l'istruzione
$query "INERT.....
vedi un'istruzione commentata di un var_dump se non salva decommentala e verifica che la query sia scritta come dovrebbe
visto che ho dovuto provarlo e mi faceva fatica riscrtivere sempre i nomi ti ho aggiunto che in caso di errore il form rimanga compilato con esclusione dei dati errati.
provalo e sappimi dire
PHP:
<?php
session_start();//attento davanti e prima dell <? non deve essrci nemmeno uno spazio
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<style type="text/css">
body {background: #CCCCCC; font-family:Arial, Helvetica, sans-serif; font-size:12px;}
.normale{text-align: center;}
.squadra{color: #ff0000;font-weight: bold;text-align: center;}
.titolari{color: #33cc00; font-weight: bold; text-align: center;}
.riserve{color: #0000ff; font-weight: bold; text-align: center;}
</style>
<body>
<?php
if(isset($_POST['invia'])){
    $tit=array();
	//elimino il post del submit che potrebbe dare fastidio
    unset($_POST['invia']);
    //ricevi i dati e li normalizzo per una eventuale ricerca
    $squadra = strtoupper(trim($_POST['squadra']));//rendo tutto maiuscolo il nome della squadra
	$tit=$_POST['titolare'];
	$ris=$_POST['riserva'];
	$tit = array_map('trim',$tit);//tolgo eventuali spazi prima e dopo
	$tit = array_map('strtolower',$tit);//rendo, se ci sono i nomi tutti minuscoli
	$tit = array_map('ucfirst',$tit);//rendo, se ci sono i nomi con l'iniziale maiuscola
    $ris = array_map('trim',$ris);// c.s.
	$ris = array_map('strtolower',$ris);// c.s.
	$ris = array_map('ucfirst',$ris);// c.s.
    //e li verifico
    $errori="";//metto a vuoto una striga per gli errori
    //verifico nome squadra
    if(!preg_match("/^[A-Z]{3,15}$/",$squadra)){//devi decidere il massimo e minimo di caratteri {min, Max}
        $errori.="nome squadra non inserito o con caratteri non ammessi<br />";
		$_SESSION['sq']="";
    }else{
		$_SESSION['sq']="$squadra";
	}
    //verifico i titolari
    if(count($tit)<11){
        $errori.="non hai inserito tutti i titolari<br />";
    }else{
        foreach($tit as $ch => $val){
            if(!preg_match("/^[a-zA-Z]{3,15}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
				$_SESSION['tit'][$ch]="";
				if($val==""){
					$nn=(int)$ch;
					if($nn==0){$nn="portiere";}
					$errori.="il nome del titolare $nn vuoto<br />";
				}else{
					$errori.="il nome del titolare $val non ammesso<br />";
				}
            }
			$_SESSION['titi'][$ch]="$val";
        }
    }
    //verifico le riserve
    if(count($ris)<7){
        $errori.="non hai inserito tutte le riserve<br />";
    }else{
        foreach($ris as $ch => $val){
			if(!preg_match("/^[a-zA-Z]{3,15}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
                $_SESSION['ris'][$ch]="";
				if($val==""){
					$nn=(int)$ch;
					if($nn==0){$nn="portiere";}
					$errori.="il nome dela riserva $nn vuoto<br />";
				}else{
					$errori.="il nome della riserva $val non è ammesso<br />";
				}
            }
			$_SESSION['ris'][$ch]="$val";
        }
    }
    //se a questo punto $errori è rimasta vuota non sono stati commessi errori
    if($errori == ""){
        //utilizzo le vecchie istruzioni MySql che però sono deprecate anche se per ora funzionano
        //prima o poi però leggiti su MySqli e la classe PDO
        //qui ci vogliono i dati di connessione al db, NON HAI SELEZIONATO IL DB
        //$con = mysql_connect("localhost","arapecoston","my_arapecoston")or die(mysql_error());
        //$sel = mysql_select_db("nome_data_base") or die (mysql_error());//questo non l'avevi messo
        //attento avevi usato mysqli_connet poi usi le mysql, non puoi mescolare i due metodi
        //USA PER NOMI DEI CAMPI SOLO CARATTERI MINUSCOI ED ANCHE PER I NOMI DELLE VARIABILI
        //se evitano molti errori
        $query = "INSERT INTO tabella(squadre, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$squadra',
                '{$tit[0]}','{$tit[1]}','{$tit[2]}','{$tit[3]}','{$tit[4]}','{$tit[5]}','{$tit[6]}','{$tit[7]}','{$tit[8]}','{$tit[9]}','{$tit[10]}',
                '{$ris[0]}','{$ris[1]}','{$ris[2]}','{$ris[3]}','{$ris[4]}','{$ris[5]}','{$ris[6]}'
                )";
		//var_dump($query); echo "<br>";
	    if(mysql_query($query)){
            //posso usare sempre la $errori
            $errori="i giocatori della squadra $squadra sono stati inseriti<br />";
        }else{
            $errori="errore di connessione, riprova più tardi<br />";
        }
		session_destroy();
    }
    //visualizzo il messaggio
    echo $errori;
    //e ritorno al form pulito dopo 3 secondi
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
    <form name="formazione" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <table width="400" align="center">
    <tr class="squadra"><td>SQUADRA</td><td><input type="text" name="squadra" value="<?php echo $_SESSION['sq']; ?>" /></td></tr>
    <tr class="titolari"><td colspan="2">titolari</td></tr>
<?php
    //faccio un array con i titoli degli input
    $titolari=array('PORTIERE','TITOLARE 1','TITOLARE 2','TITOLARE 3','TITOLARE 4','TITOLARE 5','TITOLARE 6','TITOLARE 7','TITOLARE 8','TITOLARE 9','TITOLARE 10');
    //e creo i vari campi di input
    $nn=0;
	foreach($titolari as $ch => $val){
        echo "<tr class=\"titolari\"><td>$val</td><td><input type=\"text\" name=\"titolare[$nn]\" value=\"{$_SESSION['tit'][$nn]}\" /></td></tr>";
		$nn++;
    }
?>
    <tr class="riserve"><td colspan="2">riserve</td></tr>
<?php
    $riserve=array('PORTIERE RISERVA','RISERVA 1','RISERVA 2','RISERVA 3','RISERVA 4','RISERVA 5','RISERVA 6');
    $nn=0;
	foreach($riserve as $ch => $val){
        echo"<tr class=\"riserve\"><td>$val</td><td><input type=\"text\" name=\"riserva[$nn]\" value=\"{$_SESSION['ris'][$nn]}\" /></td></tr>";
		$nn++;
    }
?>
    <tr class="normale"><td>&nbsp;</td><td>&nbsp;</td></tr>
    <tr class="normale"><td>&nbsp;</td><td><input type="submit" name="invia" value="INVIA FORMAZIONE" /></td></tr>
    </table>
    </form>
<?php
}
?>
</body>
</html>
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
ho fatto alcune correzzioni (spero di aver fatto bene)

da così //var_dump($query); echo "<br>"; modificato così var_dump($query); echo "<br>"; ho tolto le //

da così $_SESSION['titi'][$ch]="$val"; modificato così $_SESSION['tit'][$ch]="$val"; era scritto titi anziche tit

da così $query = "INSERT INTO tabella(squadre, modificato così $query = "INSERT INTO tabella(squadra, era scrittto squadre anziche squadra

da così $titolari=array('PORTIERE' modificato così $titolari=array('PORTA' era scritto PORTIERE anziche PORTA

da così $riserve=array('PORTIERE RISERVA' modificato così $riserve=array('RISERVAPORTA' era scritto PORTIERE RISERVA anziche RISERVA PORTA


mida questo errore

string(488) "INSERT INTO tabella(squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6) VALUES( 'AALBORG',
'Siena','Bentia','Basta','Gamberino','Lodi','Ledesma','Barrientos','Aquilani','Jovetic','Balotelli','Gilarsino', 'Toro','Britos','Paci','Vidal','Hamsik','Nene','Eder' )"
errore di connessione, riprova più tardi
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
le altre correzioni vanno bene, ma qui no

"INSERT INTO tabella(....
ho notato adesso che chiami la tabella formazioni, quindi correggi in
"INSERT INTO formazioni(....

poi quando tutto è ok rimetti gli / al var_dump...
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
"INSERT INTO formazioni (.... corretto

così //var_dump... mi da questo errore errore di connessione, riprova più tardi

così var_dump... mi da questo errore string(488) "INSERT INTO formazioni(squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6) VALUES( 'AALBORG', 'Siena','Basta','Benatia','Britos','Ledesma','Vidal','Hamsik','Lodi','Gilardino','Jovetic','Balotelli', 'Palermo','Paci','Lucarelli','Pogba','Prilo','Matri','Toni' )"
errore di connessione, riprova più tardi
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che dal var_dump la querysreinga venga scritta come dovrebbe.
verifica che i nomi dei campi corrispondano esttamente /compreso eventuali minuscole/maiouscole)
pou eventualmente esporta ib sel la struttura della tabella, zippala e postala
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
nomi dei campi tutti corretti ora sono tutti uguali ma non va, ti allego la tabella e il codice corretto grazie

Vedi l'allegato formazioni.sql.zip

PHP:
<?php
session_start();//attento davanti e prima dell <? non deve essrci nemmeno uno spazio
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<style type="text/css">
body {background: #CCCCCC; font-family:Arial, Helvetica, sans-serif; font-size:12px;}
.normale{text-align: center;}
.squadra{color: #ff0000;font-weight: bold;text-align: center;}
.titolari{color: #33cc00; font-weight: bold; text-align: center;}
.riserve{color: #0000ff; font-weight: bold; text-align: center;}
</style>
<body>
<?php
if(isset($_POST['invia'])){
    $tit=array();
    //elimino il post del submit che potrebbe dare fastidio
    unset($_POST['invia']);
    //ricevi i dati e li normalizzo per una eventuale ricerca
    $squadra = strtoupper(trim($_POST['squadra']));//rendo tutto maiuscolo il nome della squadra
    $tit=$_POST['titolare'];
    $ris=$_POST['riserva'];
    $tit = array_map('trim',$tit);//tolgo eventuali spazi prima e dopo
    $tit = array_map('strtolower',$tit);//rendo, se ci sono i nomi tutti minuscoli
    $tit = array_map('ucfirst',$tit);//rendo, se ci sono i nomi con l'iniziale maiuscola
    $ris = array_map('trim',$ris);// c.s.
    $ris = array_map('strtolower',$ris);// c.s.
    $ris = array_map('ucfirst',$ris);// c.s.
    //e li verifico
    $errori="";//metto a vuoto una striga per gli errori
    //verifico nome squadra
    if(!preg_match("/^[A-Z]{3,15}$/",$squadra)){//devi decidere il massimo e minimo di caratteri {min, Max}
        $errori.="nome squadra non inserito o con caratteri non ammessi<br />";
        $_SESSION['sq']="";
    }else{
        $_SESSION['sq']="$squadra";
    }
    //verifico i titolari
    if(count($tit)<11){
        $errori.="non hai inserito tutti i titolari<br />";
    }else{
        foreach($tit as $ch => $val){
            if(!preg_match("/^[a-zA-Z]{3,15}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
                $_SESSION['tit'][$ch]="";
                if($val==""){
                    $nn=(int)$ch;
                    if($nn==0){$nn="porta";}
                    $errori.="il nome del titolare $nn vuoto<br />";
                }else{
                    $errori.="il nome del titolare $val non ammesso<br />";
                }
            }
            $_SESSION['tit'][$ch]="$val";
        }
    }
    //verifico le riserve
    if(count($ris)<7){
        $errori.="non hai inserito tutte le riserve<br />";
    }else{
        foreach($ris as $ch => $val){
            if(!preg_match("/^[a-zA-Z]{3,15}$/",$val)){//devi decidere il massimo e minimo di caratteri {min, Max}
                $_SESSION['ris'][$ch]="";
                if($val==""){
                    $nn=(int)$ch;
                    if($nn==0){$nn="riservaporta";}
                    $errori.="il nome dela riserva $nn vuoto<br />";
                }else{
                    $errori.="il nome della riserva $val non è ammesso<br />";
                }
            }
            $_SESSION['ris'][$ch]="$val";
        }
    }
    //se a questo punto $errori è rimasta vuota non sono stati commessi errori
    if($errori == ""){
        //utilizzo le vecchie istruzioni MySql che però sono deprecate anche se per ora funzionano
        //prima o poi però leggiti su MySqli e la classe PDO
        //qui ci vogliono i dati di connessione al db, NON HAI SELEZIONATO IL DB
        //$con = mysql_connect("localhost","arapecoston","my_arapecoston")or die(mysql_error());
        //$sel = mysql_select_db("my_arapecoston") or die (mysql_error());//questo non l'avevi messo
        //attento avevi usato mysqli_connet poi usi le mysql, non puoi mescolare i due metodi
        //USA PER NOMI DEI CAMPI SOLO CARATTERI MINUSCOI ED ANCHE PER I NOMI DELLE VARIABILI
        //se evitano molti errori
        $query = "INSERT INTO formazioni(squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$squadra',
                '{$tit[0]}','{$tit[1]}','{$tit[2]}','{$tit[3]}','{$tit[4]}','{$tit[5]}','{$tit[6]}','{$tit[7]}','{$tit[8]}','{$tit[9]}','{$tit[10]}',
                '{$ris[0]}','{$ris[1]}','{$ris[2]}','{$ris[3]}','{$ris[4]}','{$ris[5]}','{$ris[6]}'
                )";
        //var_dump($query); echo "<br>";
        if(mysql_query($query)){
            //posso usare sempre la $errori
            $errori="i giocatori della squadra $squadra sono stati inseriti<br />";
        }else{
            $errori="errore di connessione, riprova più tardi<br />";
        }
        session_destroy();
    }
    //visualizzo il messaggio
    echo $errori;
    //e ritorno al form pulito dopo 3 secondi
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
    <form name="formazione" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <table width="400" align="center">
    <tr class="squadra"><td>SQUADRA</td><td><input type="text" name="squadra" value="<?php echo $_SESSION['sq']; ?>" /></td></tr>
    <tr class="titolari"><td colspan="2">titolari</td></tr>
<?php
    //faccio un array con i titoli degli input
    $titolari=array('porta','titolare1','titolare2','titolare3','titolare4','titolare5','titolare6','titolare7','titolare8','titolare9','titolare10');
    //e creo i vari campi di input
    $nn=0;
    foreach($titolari as $ch => $val){
        echo "<tr class=\"titolari\"><td>$val</td><td><input type=\"text\" name=\"titolare[$nn]\" value=\"{$_SESSION['tit'][$nn]}\" /></td></tr>";
        $nn++;
    }
?>
    <tr class="riserve"><td colspan="2">riserve</td></tr>
<?php
    $riserve=array('riservaporta','riserva1','riserva2','riserva3','riserva4','riserva5','riserva6');
    $nn=0;
    foreach($riserve as $ch => $val){
        echo"<tr class=\"riserve\"><td>$val</td><td><input type=\"text\" name=\"riserva[$nn]\" value=\"{$_SESSION['ris'][$nn]}\" /></td></tr>";
        $nn++;
    }
?>
    <tr class="normale"><td>&nbsp;</td><td>&nbsp;</td></tr>
    <tr class="normale"><td>&nbsp;</td><td><input type="submit" name="invia" value="INVIA FORMAZIONE" /></td></tr>
    </table>
    </form>
<?php
}
?>
</body>
</html>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
aspetta aspetta, vedo che ti sei dimenticato i dati di connessione
aggiungili
PHP:
<?php
//.........
//se a questo punto $errori è rimasta vuota non sono stati commessi errori
    if($errori == ""){
		$conn = @mysql_connect('localhost','il_tuo_username','la_tua_password') or die (mysql_error());
		$sel = @mysql_select_db('il_nome_del_tuo_db') or die (mysql_error());
		 
//............
?>
oppure meglio puoi fare così
1) fai un file chiamato es connessione.php (senza altro che php, niente <!DOCTYPE ecc....)
PHP:
<?php
$host='localhost';//questi dati poi andranno modificati con quelli del db in remoto
$us='il_tuo_username';
$pas='la_tua_password';
$db='il_nome_del_tuo_db';
$conn = @mysql_connect($host,$us,$pas) or die (mysql_error());
$sel = @mysql_select_db($db) or die (mysql_error());
?>
e poi nel file del form (e nei file dove usi il db)
PHP:
<?php
//.........
//se a questo punto $errori è rimasta vuota non sono stati commessi errori
    if($errori == ""){
		require_once "connessione.php";//attento al percorso es. "nome_cartella/connessione.php"
		 
//............
?>

correggi e riprova, poi mi sai dire
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
funzionaaaaaaaaaaaaaaaaa sei un genio ed anche una persona gentilissima, se tu fossi una donna ti bacierei, ma siccome sei uomo mi posso limitare ad offrirti un paio di birrette se capiti dalle mie parti, ho aiutarti in qualsiasi altra cosa dove io lo possa fare.

ora lo provo per bene poi, se non disturbo, mi mancherebbe l'ora e la data d'inserimento delle formazioni e fare in modo che i partecipanti vedano le formazioni inserite. ho già letto un pò di cose qui su mrwm ma fammene fare una alla volta altrimento non imparo niente. io sono contentissimo del tuo aiuto ma mi piace anche imparare, infatti come ti ho detto in un post precedente, prima non capivo niente, (anche ora capisco poco), però leggendomi le guide qualcosa mi si è aperto e almeno ci provo.

se ti và comincerei dalla data e dall'ora, se non sbaglio dovrei inserire questo codice (ammesso che sia giusto) ma non saprei in che punto perchè le guide non te lo spiegano:

PHP:
<?php $giorni = array("Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato","Domenica");
$mesi = array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre","Novembre", "Dicembre");

$numero_giorno_settimana = date("w"); $nome_giorno = $giorni[$numero_giorno_settimana]; $numero_giorno_mese = date("j"); $numero_mese= date("n"); $numero_mese--; $nome_mese = $mesi[$numero_mese]; $numero_anno = date("Y"); $ore = date("G"); $minuti = date("i"); $secondi = date("s");?>
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
nel frattempo che mi spieghi come fare per data e ora sono riuscito da solo a far visualizzare le formazioni inserite ai partecipanti, spero di aver fatto bene, penso di si perchè funziona.
ho creato un file.php e ci messo dentro questo codice

PHP:
<?php
define("DB_HOST", 'localhost'); 
define("DB", 'my_arapecoston');
define("DB_USER", 'arapecoston');
define("DB_PW", '');

mysql_connect(DB_HOST, DB_USER, DB_PW);
mysql_select_db(DB);

$query="select * from formazioni order by Id";
$result= mysql_query($query);
$numfields = mysql_num_fields($result);

echo "<table>\n<tr>";
for ($i=0; $i < $numfields; $i++) 
  { 
   echo '<th>'.mysql_field_name($result, $i).'</th>'; 
   }
   echo "</tr>\n";
   
   while ($row = mysql_fetch_row($result)) 
  { 
   echo '<tr><td>'.implode($row,'</td><td>')."</td></tr>\n"; 
  }
echo "</table>\n";
  ?>

sto diventando bravo vero? ovviamente scherzo lo so che sono un cesso
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
più che giusto che ti piaccia imparare.
la differenza tra chi vuole farsi fare uno script e che vuole imparare è che chi vuole imparare si studia e cerca di capire che cavolata di script ti hanno passato in modo in futuro da evitare le castronerie che faccio io.
veniamo alle date, quando si usano le date (è la cosa forse più difettosa di php) bisogna pensare bene sia a che ti servono sia a come l'utente le inserisce.
per esempio nel db inserire la data nel formato italiano può portare a degli errori es
in tabella hai es.
data | nome
10/marzo/2013 | pallino
10/aprile/2013 | pinco
10/dicembre/2013 | sempronio
e fai la select ORDER BY data (sia asc che desc) ti da un risultato errato
pinco
sempronio
pallino
analogo discorso se al posto dei nomi metti il numero dei mesi, questo perchè fa in questo caso un controllo tra stringhe.
poi se è l'utente che deve immettere la data il problema si fa più complicato (pensa ai modi diversi per formattarla) senza contare che sbagliando puo inserire 32/02/2013.

fermandaoci per ora a come salvare in tabella, io come metodo (non è forse il migliore, ma nemmeno il peggiore) salvo le date in formato timestamp (numero, intero, di secondi trascorsi dal January 1 1970 00:00:00 GMT)
e la trasformo in data "umana" solo quando mi serve visualizzarla.
esempio
Codice:
campo della tabella: data int(13)
PHP:
<?php
//...
$oggi=time();
$query="INSERT INTO tabella(...,data,...) VALUES(....,$oggi,....)";
//...
?>
secondo me si risolvono con semplicità sia i problemi di ordinamento, differenza, date post o ante di tot gg o compresa tra
certo forse dico così perche ormai mi sono fatto tutte le funzioni che mi servono per visualizzare la data nel formato che mi interessa, da semplice 25/06/2013 (echo date("d/m/Y",$oggi) a
martedì 06 giugno 2013 ore 16:26:33 settimana n° 26 che potrebbe essere fatta da una funzione del tipo

PHP:
<?php
function scrivi_data($t){
	$giorni = array("Domenica","Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato");//ocio parte da domenica
	$mesi = array("","Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre","Novembre", "Dicembre");//ocio parte da 1
	return $giorni[date("w", $t)]." ".date("d", $t)." ".$mesi[date("j", $t)]." ore ".date("H:i:s", $t)." settimana n &deg; ".date("W", $t);

}
$adesso=time();
echo "data espressa in timestamp $adesso<br />"
echo "data in formato umano ".scrivi_data($adesso);
?>
sempre per imparare dai un occhio a
http://it2.php.net/manual/en/ref.datetime.php
 

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
ora do un'occhiata al link, ma l'ora e la data non la deve inserire l'utente, deve comparire in automatico dopo che ha inserito la formazione, mi serve perchè se un utente inserisce la formazione dopo una certa ora subisce una penalizzazione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si mi sembra giusto, alcune osservazioni
1) se metti i dati di connessione così è hai 10 pagine che usano il db de devi modificare qualcosa devi aprire e ricaricare 10 pagine
se come ti ho detto fai l'inclusione modifichi e carichi la sola pagina con i dati di connessione
file connessione.php
PHP:
<?php
define("DB_HOST", 'localhost'); 
define("DB", 'my_arapecoston');
define("DB_USER", 'arapecoston');
define("DB_PW", '');
mysql_connect(DB_HOST, DB_USER, DB_PW);
mysql_select_db(DB);
?>
pagina che visualizza i dati
PHP:
<?php
require_once "connessione.php";
//.....
$query="select * from formazioni order by Id";
//............
?>
2) l'unico dubbio è per esempio se hai i campo con la data in timestamp che devi "umanizzare" e quindi estrare e trattare, così come fai te non ci riesci
inoltre se per caso non ci sono formazioni non è bello che uno si trovi la pag bianca, io farei così
PHP:
<?php
require_once "connessione.php";
//.....
$query="select * from formazioni order by Id";
$result= mysql_query($query);
$numfields = mysql_num_fields($result);
echo "<table><tr>";
if($numfields > 0){
	for ($i=0; $i < $numfields; $i++){ 
   		echo "<th>".mysql_field_name($result, $i)."</th>"; 
	}
	echo "</tr>";
	while ($row = mysql_fetch_array($result)){//qui è lo stesso salvo il discorso della data
		//è evidente che se non hai il problema della data il tuo metodo va più che bene
		echo "<tr><td>".$row['squadra']."</td><td>".$row['porta']."</td>......<td>".scrivi_data($row['data'])."</td></tr>";
	}
}else{
	echo "<tr><td>non ci sono squadre</td></tr>";
}
echo "</table>";
?>

poi, ma è questione di stile, io uso sempre i doppi apici e i singoli solo per i nomi delle chiavi e campi
per l'uso dei doppi o singoli, prova questo e vedi la differenza
PHP:
<?php
$nome= "pinco";
echo "doppi apici: mi chiamo $nome<br />";
echo 'singoli apici: mi chiamo $nome<br />';
?>

p.s.
ok non avevo letto il tuo ultimo, sempre domani ti do un'idea
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con controllo form in real time jQuery 6
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
Emix Problema con creazione form css/mobile HTML e CSS 3
zammaeng [PHP] Problema form con lista PHP 8
B problema con i form Javascript 0
D Form Registrazione con conferma via email - problema PHP 10
P Problema creazione form con ajax PHP 1
S Problema con Form CSS HTML e CSS 1
F Problema con passaggio variabile da form PHP 3
J Problema con form in bootstrap HTML e CSS 0
O Problema con refresh/form PHP 0
M problema con form scrittura su mysql PHP 3
S Problema php con form PHP 0
T problema strano con procedura di controllo da database, di dati immessi in un form asp Classic ASP 5
S Problema con l'invio del form in php PHP 0
Y problema allineamento form con internet explorer HTML e CSS 2
A problema con form paypal HTML e CSS 0
A Piccolo problema con form email HTML e CSS 2
P problema validazione form con ajax e jquery Ajax 0
M Problema con form per accesso area riservata ai soci PHP 2
V problema con form in input/output PHP 3
L problema con form ed input PHP 6
F Problema con Form contatti PHP 4
D Problema nella validazione di un form con JQUERY ed AjAX jQuery 4
T Problema con form e recupero dati da mysql PHP 17
A problema con un semplice form per un loggin in php PHP 2
C problema invio mail con form php PHP 0
A problema con l'inserimento di valori in una tabella dopo una ricerca da form Classic ASP 1
A problema con form PHP 60
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
G Problema con la creazione di una tabella form PHP 9
C AJAX FORM MAIL - problema con gli a capo nel messaggio Javascript 0
G problema con plugin validazione form jquery jQuery 0
T Problema condizione di un form con mysql PHP 15
D problema con form che invia dati al database PHP 0
M problema form con piu allegati e pagamento online PHP 1
F Problema di reindirizzamento con alcune form PHP 4
I [PHP]Problema sito con form login in ogni pagina PHP 7
I Problema con Form html HTML e CSS 9
C Problema con il doppio invio nel form con onsubmit HTML e CSS 9
D Problema con allegato tramite form mail PHP 2
SolidSnake4 problema con form ajax Javascript 8
P Problema moduli Form.php con browser diversi PHP 2
E problema con Database e form PHP 15
M Problema con form dinamico Ajax 0
R Form Mail: Problema con Frame Supporto Mr.Webmaster 4
Ele84 Problema con form action="mailto:...." HTML e CSS 2
K Problema invio dati form con ASP Classic ASP 8
V Problema con FormMail e form!!! Programmazione 1
cosov Problema con numeri nel form Classic ASP 2

Discussioni simili