problema con un form

ciao
mi serve perchè se un utente inserisce la formazione dopo una certa ora subisce una penalizzazione
allora per prima cosa devi decidere quando è il limite es. le 24 del che è = a 27/06/2013 23:59:59
prima che l'utente salvi la formazione
PHP:
<?php
//....
//trasformi il limite in timestamp
$limite= mktime ("24", "59", "59", "6", "27","2013");//int ore, int minuti, int secondi, int mese, int giorno, int anno
//leggi ala data nel momento in cui salva
$adesso=time();
/*io aggiungerei un campo: penalita set ('N', 'S') default N
in modo da sapere se è penalizzato (S) o no (N)
*/
$penalita="N";
//verifichi se ha sforato
if($adesso > $limite){
	$penalita="S";
}
// e inserisci insieme al resto
$query "INSERT INTO formazioni(.....,data,penalita,...) set(......,'$adesso', '$penalita',....)";
//.....
?>
 
scusami ma mi sono spiegato male. è molto più semplice quello che mi serve, mi basta che insiema alla formazione inserita compaia anche la data e l'ora (solo data e ora).
 
ho aggiunto il campo data alla tabella
tabella.jpg

ho modificato la pagina come vedi sotto

PHP:
$oggi=time();
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$oggi','$squadra',

nel campo data della tabella invece della data mi da questo numero 1372428919
 
ciao
nel campo data della tabella invece della data mi da questo numero 1372428919
più che giusto è la data espressa in timestamp (secondi)
se quando la vuoi mettere a video è evidente che devi trasformarla in una dat leggibile (es)
PHP:
<?php
//.....
echo date("d/m/Y H:i:s",$riga['data']);
//...
?>
se vuoi fare una prova fatti questo scriptino e provalo
PHP:
<?php
$salvato_il=1372428919;
echo "la formazione è stata salvata il ".date("d/m/Y H:i:s",$salvato_il). " alle ore ".date("H:i:s",$salvato_il);
?>
 
se non ho capito male come al solito ho fatto csì ma continua a darmi la data e l'ora in secondi

PHP:
$oggi=time();
        echo date("d/m/Y H:i:s",$oggi['data']);  
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$oggi','$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]}'
                )";
 
ciao
PHP:
<?php
$oggi=time();
        //echo date("d/m/Y H:i:s",$oggi['data']);
        echo date("d/m/Y H:i:s",$oggi);
//.....
?>
perchè usi un array?
eventualmente l'array ti serve quando fai la SELECT * FROM formazioni....
PHP:
echo date("d/m/Y H:i:s",$row['data']);
 
ci risiamo, sto andando fuori di testa :crying:

ho fatto così ma a video vedo una data sballata e nella tabella inserisce 0

PHP:
echo date("d/m/Y H:i:s",$row['data']);  
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$row','$squadra',.........

non riesco a fare in modo che quando un partecipante inserisce la formazione nella tabella appaia la data e l'ora d'inserimento
 
ciao
PHP:
<?php
//....
$adesso=time();
echo date("d/m/Y H:i:s",$adesso);//questo a che ti serve? per far vedere a monitor la data?
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                $adesso,'$squadra',.........  )";
//....
?>
tra l'altro essendo $adesso un numero intero non servono gli apici

quello che hai "pasticciato" potrebbe andare bene in questo caso
PHP:
<?php
//...
$query = mysql_query("SELECT * FROM formazioni");//con altre eventuali clausole WHERE... ORDER BY... ,,,
while($row=mysql_fetch_array($query)){
	echo "formazione inserita il ".date("d/m/Y H:i:s",$row['data'])."<br />":
	echo "squadra: ".$row['squadra']."<br />";
	//ecc.....
}
//...
?>
 
PHP:
<?php
//....
$adesso=time();
echo date("d/m/Y H:i:s",$adesso);//questo a che ti serve? per far vedere a monitor la data?
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                $adesso,'$squadra',.........  )";
//....
?>


così funziona ci avevo già provato ma mi da la data espressa in timestamp (secondi)
quello che non riesco a fare è di trasformarla in date e ora reali
 
Se non è impossibile si. Mi spiego: in un'altra pagina ai partecipanti faccio visualizzare la tabella del db per vedere le formazioni inserite e ora come ora vedono la data in secondi cioè un numero insignificante. Chiedo troppo alle mie possibilità?
 
borgo italia

ciao
se guardi bene un mio precedente post ti facevo vedere come estrarre la data e presentarla in formato "umano".
i tuoi post sono la mia "bibbia", ma io evidentemente non sono un buon apostolo; onestamente hai una pazienza fuori dal normale per starmi dietro (questa non è una leccata di c..o ma è la consapevolezza di una persona che capisce lo sforzo che fai, forse perchè in tempi passati, quando avevo un pò più di tempo, ho fatto il moderatore in forum e mi comportavo esattamente come te). detto questo ti posto l'ultima delle mie prove e se ne hai ancora voglia dimmi dove sbaglio.
PHP:
$adesso=time();
        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 in formato umano ".scrivi_data($adesso); 
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$adesso','$squadra',

P.S. il tuo sito è un bacino di foto stupende, complimenti. se ti và potrei inviarti qualcosa, ovviamente foto mie e non prese da internet
 
ciao
correggi
$mesi[date("j", $t)]
in
$mesi[date("n", $t)]

p.s.
...se ti và potrei inviarti qualcosa...
sempre ben accette, anzi benissimo accettatissime
se riferite tutte a una stessa località faccio uno speciale, altrimenti le metto in foto d'autore
basta che tu mi indichi la località e cosa vuoi che metta come autore, [email protected]
 
ho fatto la correzione che mi hai suggerito ma continua a darmi la data in timestamp, o meglio a video dopo che ho inserito la formazione la vedo in formato umano ma nella tabella del db no
PHP:
$adesso=time();
        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("n", $t)]." ore ".date("H:i:s", $t)." settimana n &deg; ".date("W", $t);

}
$adesso=time();
echo "data in formato umano ".scrivi_data($adesso); 
        $query = "INSERT INTO formazioni(data,squadra, porta, titolare1, titolare2, titolare3, titolare4, titolare5, titolare6, titolare7, titolare8, titolare9, titolare10, riservaporta, riserva1, riserva2, riserva3, riserva4, riserva5, riserva6)
                VALUES(
                '$adesso','$squadra',
 
ciao
ma "che te frega" come viene scritta nel db, l'importante è come la vedi a monitor.
nel db comunque per fare ricerche e/o come hai detto penalizzare la data "non" può essere messa comunque nel formato "umano italiano" ben che vada potresti inseririrla nel formato yyyy-mm-dd e quindi (forse un po' meno) astrusa, ti faccio un esempio con tre date umane italiane
21/05/2013
10/03/2013
08/12/2013

se vuoi ordinarle con il classico ORDER BY data il risultato è
08/12/2013
10/03/2013
21/05/2013
che è evidentemente un assurdo (analogo se ordini all'inverso)
se hai pazienza ti faccio un esempio in php
 
per ricapitolare tutto, io ho bisogno che tutti i partecipanti al gioco vedano le formazioni inserite di tutti, a che ora l'hanno inserita e in che giorno, quindi io gli faccio vedere la tabella del db. penso che sia l'unico modo perchè le formazioni sono memorizzate nel db. ora mi viene un dubbio, in un post precedente mi avevi spiegato che il mio modo di far visualizzare la tabella del db non andava bene, questo:
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";
  ?>

e mi avevi spiegato come fare secondo te, io ho elaborato questo ma mi da un errore Fatal error: Call to undefined function scrivi_data() in /membri/arapecoston/gioincorso.php on line 22
id data squadra porta titolare1 titolare2 titolare3 titolare4 titolare5 titolare6 titolare7 titolare8 titolare9 titolare10 riservaporta riserva1 riserva2 riserva3 riserva4 riserva5 riserva6

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);
require_once "gioincorso.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>".$row['titolare1']."</td><td>".$row['titolare2']."</td><td>".$row['titolare3']."</td><td>".$row['titolare4']."</td><td>".$row['titolare5']."</td><td>".$row['titolare6']."</td><td>".$row['titolare7']."</td><td>".$row['titolare8']."</td><td>".$row['titolare9']."</td><td>".$row['titolare10']."</td><td>".$row['titolare11']."</td><td>".$row['riservaporta']."</td><td>".$row['riserva1']."</td><td>".$row['riserva2']."</td><td>".$row['riserva3']."</td><td>".$row['riserva4']."</td><td>".$row['riserva5']."</td><td>".$row['riserva6']."</td><td>".scrivi_data($row['data'])."</td></tr>";
    }
}else{
    echo "<tr><td>non ci sono squadre</td></tr>";
}
echo "</table>";
?>

può essere questo il problema?
in ogni caso mi serve che in una pagina tutti vedano le formazioni inserite di tutti con l'orario e la data.
 
ciao
PHP:
<?php
//...........
 while ($row = mysql_fetch_array($result)){
        echo "<tr><td>".date("d/m/Y",$row['data'])."</td>";//oppure la funzione che hai fatto
        echo "<td>".$row['squadra']."</td><td>".$row['porta']."</td><td>".$row['titolare1']."</td><td>".$row['titolare2']."</td><td>".$row['titolare3']."</td><td>".$row['titolare4']."</td><td>".$row['titolare5']."</td><td>".$row['titolare6']."</td><td>".$row['titolare7']."</td><td>".$row['titolare8']."</td><td>".$row['titolare9']."</td><td>".$row['titolare10']."</td><td>".$row['titolare11']."</td><td>".$row['riservaporta']."</td><td>".$row['riserva1']."</td><td>".$row['riserva2']."</td><td>".$row['riserva3']."</td><td>".$row['riserva4']."</td><td>".$row['riserva5']."</td><td>".$row['riserva6']."</td><td>".scrivi_data($row['data'])."</td></tr>";
    }
}else{
    echo "<tr><td>non ci sono squadre</td></tr>"; 
//...........
?>
 
anche così mi da sempre questo errore
Codice:
Fatal error: Call to undefined function scrivi_data() in /membri/arapecoston/gioincorso.php on line 22
id	data	squadra	porta	titolare1	titolare2	titolare3	titolare4	titolare5	titolare6	titolare7	titolare8	titolare9	titolare10	riservaporta	riserva1	riserva2	riserva3	riserva4	riserva5	riserva6
01/01/1970
codice della pagina che visualizza la tabella
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);
require_once "gioincorso.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)){
        echo "<tr><td>".date("d/m/Y",$row['data'])."</td>";
        echo "<tr><td>".$row['squadra']."</td><td>".$row['porta']."</td><td>".$row['titolare1']."</td><td>".$row['titolare2']."</td><td>".$row['titolare3']."</td><td>".$row['titolare4']."</td><td>".$row['titolare5']."</td><td>".$row['titolare6']."</td><td>".$row['titolare7']."</td><td>".$row['titolare8']."</td><td>".$row['titolare9']."</td><td>".$row['titolare10']."</td><td>".$row['riservaporta']."</td><td>".$row['riserva1']."</td><td>".$row['riserva2']."</td><td>".$row['riserva3']."</td><td>".$row['riserva4']."</td><td>".$row['riserva5']."</td><td>".$row['riserva6']."</td><td>".scrivi_data($row['data'])."</td></tr>";
    }
}else{
    echo "<tr><td>non ci sono squadre</td></tr>";
}
echo "</table>";
?>
 
ciao
perchè non trova la function scrivi_data() non essendo una funzione nativa di php come es date()
PHP:
<?php
function scrivi_data($t){
	//tutto il corpo della funzione
}
define("DB_HOST", 'localhost'); 
define("DB", 'my_arapecoston');
define("DB_USER", 'arapecoston');
define("DB_PW", '');
//....
?>
o meglio
ti fai una pagina php chiamata es funzioni.php in cui scrivi la funzione e anche altre che ti possono servire
PHP:
<?php
//pagina senza <!DOCTYPE html><html><head>...</head><body>..</body></html>
function scrivi_data($t){
	//tutto il corpo della funzione
}
function pinco_pallo(){
	//tutto il corpo della funzione
}
//e altre funzioni
?>
poi
PHP:
<?php
require_once "funzioni.php";//qui includi la pagina
define("DB_HOST", 'localhost'); 
define("DB", 'my_arapecoston');
define("DB_USER", 'arapecoston');
define("DB_PW", '');
//....
?>
guarda che analogo discorso ti conviene farlo con i dati di connessione es connessione.php
PHP:
<?php
//pagina senza <!DOCTYPE html><html><head>...</head><body>..</body></html>
define("DB_HOST", 'localhost'); 
define("DB", 'my_arapecoston');
define("DB_USER", 'arapecoston');
define("DB_PW", '');
mysql_connect(DB_HOST, DB_USER, DB_PW) or die(mysql_erro());//metti l'or die
mysql_select_db(DB) or die(mysql_erro());
?>
poi
PHP:
<?php
require_once "funzioni.php";
require_once "connessione.php";
//....
?>
ricordati che andare a correggere una pagina è meglio che andare a fare le correzioni in tutte le pagine in cui usi la connessione e/o le funzioni
è buona norma di programmazione quando ci sono parti ripetute usare l'inclusione

p.s.
non c'entra con php: va bene come autore arapecoston?
 

Discussioni simili