• Home
  • Forum
  • Fare Web
  • HTML e CSS

problema con un form

  • Creatore Discussione Creatore Discussione arapecoston
  • Data di inizio Data di inizio 8 Giu 2013
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 2 di 4 Succ. Ultimo

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #21
ciao
ci do u occhio poi ti so dire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #22
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 23 Giu 2013
  • #23
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.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #24
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 23 Giu 2013
  • #25
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.

 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #26
ciao
ci do un occhio poi ti so dire, non l'ho testato, ma buttato gio di brutto
si mi ero dimenticato il tit[1]
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #27
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>
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 23 Giu 2013
  • #28
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.044
150
63
PR
www.borgo-italia.it
  • 23 Giu 2013
  • #29
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...
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 24 Giu 2013
  • #30
"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.044
150
63
PR
www.borgo-italia.it
  • 24 Giu 2013
  • #31
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 24 Giu 2013
  • #32
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.044
150
63
PR
www.borgo-italia.it
  • 24 Giu 2013
  • #33
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 24 Giu 2013
  • #34
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");?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 24 Giu 2013
  • #35
ciao
no in quella maniera
ora devo andare domani ti spiego
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 25 Giu 2013
  • #36
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.044
150
63
PR
www.borgo-italia.it
  • 25 Giu 2013
  • #37
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
Clicca per allargare...
e fai la select ORDER BY data (sia asc che desc) ti da un risultato errato
pinco
sempronio
pallino
Clicca per allargare...
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 25 Giu 2013
  • #38
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.044
150
63
PR
www.borgo-italia.it
  • 25 Giu 2013
  • #39
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
 
A

arapecoston

Utente Attivo
8 Giu 2013
60
0
0
  • 27 Giu 2013
  • #40
ciao quando hai tempo spiegami l'idea che avevei in mente
 
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 2 di 4 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Problema con controllo form in real time
  • migo80
  • 21 Dic 2020
  • jQuery
Risposte
6
Visite
4K
jQuery 30 Dic 2020
migo80
M
[PHP] Popolamento database con form ricorsivi - problema array (foreach )
  • alessandra86
  • 28 Giu 2018
  • PHP
Risposte
5
Visite
3K
PHP 12 Lug 2018
alessandra86
Problema con creazione form css/mobile
  • Emix
  • 22 Gen 2018
  • HTML e CSS
Risposte
3
Visite
2K
HTML e CSS 24 Gen 2018
Emix
[PHP] Problema form con lista
  • zammaeng
  • 25 Gen 2017
  • PHP
Risposte
8
Visite
2K
PHP 26 Gen 2017
borgo italia
B
problema con i form
  • Brogelli
  • 23 Dic 2015
  • Javascript
Risposte
0
Visite
1K
Javascript 23 Dic 2015
Brogelli
B
D
Form Registrazione con conferma via email - problema
  • Dylan VDj Canziani
  • 27 Mar 2015
  • PHP
Risposte
10
Visite
3K
PHP 3 Mag 2015
Dylan VDj Canziani
D
P
Problema creazione form con ajax
  • pippuccio76
  • 26 Gen 2015
  • PHP
Risposte
1
Visite
1K
PHP 26 Gen 2015
criric
S
Problema con Form CSS
  • simo96
  • 4 Gen 2015
  • HTML e CSS
Risposte
1
Visite
2K
HTML e CSS 4 Gen 2015
Max 1
F
Problema con passaggio variabile da form
  • ferr
  • 17 Nov 2014
  • PHP
Risposte
3
Visite
2K
PHP 18 Nov 2014
ferr
F
J
Problema con form in bootstrap
  • Jakub Lemiszewski
  • 26 Set 2014
  • HTML e CSS
Risposte
0
Visite
3K
HTML e CSS 26 Set 2014
Jakub Lemiszewski
J
O
Problema con refresh/form
  • Oliver79
  • 21 Mar 2014
  • PHP
Risposte
0
Visite
1K
PHP 21 Mar 2014
Oliver79
O
M
problema con form scrittura su mysql
  • master1986
  • 21 Feb 2014
  • PHP
Risposte
3
Visite
2K
PHP 22 Feb 2014
Longo8
S
Problema php con form
  • surapazzo
  • 19 Dic 2013
  • PHP
Risposte
0
Visite
1K
PHP 19 Dic 2013
surapazzo
S
T
problema strano con procedura di controllo da database, di dati immessi in un form asp
  • Toscano
  • 2 Dic 2013
  • Classic ASP
Risposte
5
Visite
2K
Classic ASP 4 Dic 2013
Paolo69
S
Problema con l'invio del form in php
  • sephiroth84
  • 9 Feb 2013
  • PHP
Risposte
0
Visite
1K
PHP 9 Feb 2013
sephiroth84
S
Y
problema allineamento form con internet explorer
  • yenn
  • 7 Feb 2013
  • HTML e CSS
Risposte
2
Visite
2K
HTML e CSS 9 Feb 2013
yenn
Y
A
problema con form paypal
  • andy2481
  • 16 Gen 2013
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 16 Gen 2013
andy2481
A
A
Piccolo problema con form email
  • Alespanu95
  • 4 Gen 2013
  • HTML e CSS
Risposte
2
Visite
2K
HTML e CSS 5 Gen 2013
Alespanu95
A
P
problema validazione form con ajax e jquery
  • processore
  • 29 Nov 2012
  • Ajax
Risposte
0
Visite
2K
Ajax 29 Nov 2012
processore
P
M
Problema con form per accesso area riservata ai soci
  • mediasteno
  • 28 Nov 2012
  • PHP
Risposte
2
Visite
2K
PHP 28 Nov 2012
mediasteno
M
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • HTML e CSS
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?