• Home
  • Forum
  • Fare Web
  • PHP

Form estrai da data a data

  • Creatore Discussione Creatore Discussione _LAIL_
  • Data di inizio Data di inizio 17 Ott 2013
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 17 Ott 2013
  • #1
Salve a tutti chiedo aiuto alla vostra grande esperienza.

Girovagando per la rete sono riuscita a mettere insieme questo sistemino per estrarre dati da mysql filtrando il campo data con un range solo che non funziona

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
<p>Da Data: <input type = "text" name = "inizio" ><br>
<p>A Data: <input type = "datetime" name = "fine"><br>
<P><input type="reset"  value="Cancella Date"><br>
<p><input type = "submit" name = "submit" value="Invia">
</form>

<?php
include('connect.php');
if(isset($_POST['inizio']) && isset($_POST['fine'])){
$start = $_POST['inizio'];
$end = $_POST['fine'];
$sql =  "SELECT * FROM gps_porte WHERE DATA_INSERIMENTO >".$start." OR DATA_INSERIMENTO<".$end;
$query = mysql_query($sql);
while($row = mysql_fetch_array($query,MYSQL_ASSOC)){
echo 
$ID=$row['ID'];
$DATA_INSERIMENTO=$row['DATA_INSERIMENTO'];
$CLIENTE=$row['CLIENTE'];
$POSIZIONE=$row['POSIZIONE'];
$DATA_SCADENZA=$row['DATA_SCADENZA'];
$PREZZO=$row['PREZZO'];
$CAUZIONE=$row['CAUZIONE'];
$NOME_CLUB=$row['NOME_CLUB'];
$LINK_LUOGO=$row['LINK_LUOGO'];
$DATA_INIZIO=$row['DATA_INIZIO'];
$LINK_INSEGNA=$row['LINK_INSEGNA'];
$NOTE=$row['NOTE'];
}
}

// CREA CODICE HTML
?>

<body bgcolor ="#808080">
	<table align="center" bgcolor ="#FFA500" width="600" height="25" border=2>
	
<tr>
<td align="center" bgcolor ="#FFA500" width="25"><font color="#000000">ID</font></td>
	<td align="center" bgcolor ="#FFA500" width="150"><font color="#000000">DATA INSERIMENTO</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">CLIENTE</font></td>
	<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">POSIZIONE</font></td>
    <td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA SCADENZA</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">PREZZO</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">CAUZIONE</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">NOME CLUB</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">LINK LUOGO</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA INIZIO</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">LINK INSEGNA</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">NOTE</font></td>



<tr>
<td align="center" width="25" height="25">
	<font color="#0000FF"><?php echo $ID;?></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $DATA_INSERIMENTO;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $CLIENTE;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $POSIZIONE;?></font></td>
    <td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $DATA_SCADENZA;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $PREZZO;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $CAUZIONE;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $NOME_CLUB;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $LINK_LUOGO;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $DATA_INIZIO;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $LINK_INSEGNA;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $NOTE;?></font></td>

</table>
<br>
</body>
</html>



non riesco a capire il perche non funziona non da errori ma non estrae i dati .

Grazie per il vostro aiuto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 17 Ott 2013
  • #2
ciao
lavorare con le date è sempre una rogna, alcune cose:
1) come è formattata la data?
vedo dai campi di input che uno è tipo text e uno tipo datatime, sarebbe bene che fossero dello stesso tipo
è importante come la data è formattata perche es. se risulta
PHP:
<?php
$start="15/01/2013";
$end ="01/12/2013";
?>
hai che (ricorda è un confronto di stringhe)
$start maggiore di $end, il che è assurdo (anche l'uso dei separatori è importante)
2)indipendentemente ti conviene verificare le date (es. 31/02/2013 non è una data valida)
3)visto che fai tutto nella stessa pagina racchiudi la ricerca nel db e la visualizzazione tra
PHP:
<?php
if(isset($_POST['submit'])){
	//parte di ricerca php
	//e parte html di visualizzazione
}
?>
4) usa nei nomi delle variabili e dei campi sempre le minuscole, può sembrare più semplice, ma l'uso del maiscolo è spesso fonte di errori
5) poi abbandona le vecchie istruzioni mysql e passa alle mysqli o alla classe pdo, le mysql sono deprecate e tra poco non funzioneranno più
quindi dimmi intanto come sono formattate le date, poi ti so dire
 
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 17 Ott 2013
  • #3
ciao grazie per avermi risposto le date sono in formato data 2013-10-01
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 17 Ott 2013
  • #4
ciao
se hai pazienza ti posto come farei io
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 17 Ott 2013
  • #5
ciao
ecco un esempio (didattico) di come farei io per cercare di evitare alcuni errori
se leggi i commenti dovresti capire quello che ho fatto
PHP:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
  <!--lo metto in una tabella per formattarlo meglio -->
  <table width="50%"  border="0" cellspacing="0" cellpadding="3">
    <tr>
      <th width="25%">&nbsp;</th>
      <th width="25%">giorno</th>
      <th width="25%">mese</th>
      <th width="25%">anno</th>
    </tr>
    <tr>
      <!--separo i campi di input per cercare di avere il più possibile uniformità di inserimento -->
	  <td>da data</td>
      <td><input name="g_inizio" type="text" id="g_inizio" size="2" maxlength="2"></td>
      <td><input name="m_inizio" type="text" id="m_inizio" size="2" maxlength="2"></td>
      <td><input name="a_inizio" type="text" id="a_inizio" size="4" maxlength="4"></td>
    </tr>
    <tr>
      <td>a data</td>
      <td><input name="g_fine" type="text" id="g_fine" size="2" maxlength="2"></td>
      <td><input name="m_fine" type="text" id="m_fine" size="2" maxlength="2"></td>
      <td><input name="a_fine" type="text" id="a_fine" size="4" maxlength="4"></td>
    </tr>
    <tr>
      <td><input type="reset" name="reset" value="reset"></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input name="invia" type="submit" id="invia" value="invia"></td>
    </tr>
  </table>
</form>
<?php
if(isset($_POST['invia'])){//verifico di aver dato il submit
	//inizio a verificare i dati
	//metto una variabile per verificare gli errori
	$errori="";//rimane vuota se non ci sono errori
	//verifico la correttezza delle date
	if(checkdate( $_POST['m_inizio'] , $_POST['g_inizio'], $_POST['a_inizio']){
		//la data è giusta quindi la formatto
		$inizio= $_POST['a_inizio']."-".$_POST['m_inizio']."-".$_POST['g_inizio'];
	}else{
		//ho fatto uno o più errori
		$errori.="la data di inizio non è una data valida<br />";
	}
	//analogo per la data fi fine
	if(checkdate( $_POST['m_fine'] , $_POST['g_fine'], $_POST['a_fine']){
		$fine= $_POST['a_fine']."-".$_POST['m_fine']."-".$_POST['g_fine'];
	}else{
		$errori.="la data di fine non è una data valida<br />";
	}
	//verifico che la data di inizio non sia maggiore della data di fine
	if($inizio > $fine){$errori.="la data di inizio non pu&ograve; essere maggiore di quella di fine<br />";}
	//verifico se ho commesso errori, se si $errori non è rimasta vuota
	if($errori !=""){
		//mostro gli errori e torno in automatico al form pulito dopo 3 secondi (il content = '3;...)
		echo $errori;
		echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
	}else{
		//mi connetto al database
		require_once "connect.php";//meglio usare il require dell'include
		//qui uso le vecchie mysql perche per passare a mysqli devi modificare anche connect.php
		$query="SELECT * FROM gps_porte WHERE data_inserimento BETWEEN '$inizio' AND '$fine'";
		$ris=mysql_query($query);
		//ti conviene verificare che ci siano dati che soddisfino la condizione
		if(mysql_num_rows($ris)==0){
			//non ci sono risultati
			echo "<h2>non ci sono dati per le condizioni richieste</h2>";
			echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
		}else{
			echo "<table>";//usa i css esterni es <table class=pinco">
			echo "<tr><th>ID</th><th>DATA INSERIMENTO</th><th>CLIENTE</th><th>POSIZIONE</th>
				  <th>DATA SCADENZA</th><th>PREZZO</th><th>CAUZIONE</th><th>NOME CLUB</th>
				  <th>LINK LUOGO</th><th>DATA INIZIO</th><th>LINK INSEGNA</th><th>NOTE</th></tr>";
			//e inizi a estrarre i dati
			while($riga=mysql_fetch_array($ris)){
				echo "<tr>";
				/*se per inserire es. il nome del cliente hai usato addslashes (spero di si)
				ricordati di urase stripslashes
				es. echo "<td>".stripslashes($riga['cliente'])."</td>";*/
				echo "<td>".$riga['id']."</td>";
				echo "<td>".$riga['data_inserimento']."</td>";
				echo "<td>".$riga['cliente']."</td>";
				echo "<td>".$riga['posizione']."</td>";
				echo "<td>".$riga['data_scadenza']."</td>";
				echo "<td>".$riga['prezzo']."</td>";
				echo "<td>".$riga['cauzione']."</td>";
				echo "<td>".$riga['nome_club']."</td>";
				echo "<td>".$riga['link_luogo']."</td>";
				echo "<td>".$riga['data_inizio']."</td>";
				echo "<td>".$riga['link_insegna']."</td>";
				echo "<td>".$riga['note']."</td>";
				echo "</tr>";
			}
			echo "</table>";
			//e qui ti conviene mettere due link "ripeti ricerca" e "esci"
			echo "<br /><a href=\"".htmlspecialchars($_SERVER['PHP_SELF'])."\">ripeti ricerca</a>&nbsp;&nbsp;
				  <a href=\"index.php\">esci</a>";
		}
	}
}
?>
</body>
</html>
guarda però che ho usato il mio stile, quindi correggi i vari nomi varibile e campi della tabella
inoltre, se vuoi provarlo, verifica che non abbia fatto qualche errore perche l'ho buttato giu di brutto senza verificare
se provando ti da errori dimmelo indicando quali (posta i warning) e il numero di riga o la riga
 
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 17 Ott 2013
  • #6
Granzie per tutto il tempo che ci stai perdendo

Allora non funziona nel senso che inserisco i dati ma non tira fuori nulla azzerai campi ma non da risultati e nemmeno errori ( nella riga 44 e 52 mancavano le parentesi ).
 
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 18 Ott 2013
  • #7
Potrebbe essere che il campo nel db mysql e in formato date e per quello non estrae i dati?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 18 Ott 2013
  • #8
Stampa gli eventuali errori SQL
PHP:
$query = "SELECT * FROM gps_porte WHERE data_inserimento BETWEEN '$inizio' AND '$fine'";
$ris = mysql_query($query);
if (!$ris) {
    echo "Errore query " . $query . " " . mysql_error();
}
molto comodi in fase di sviluppo
inizia anche a studiarti mysqli o PDO
 
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 18 Ott 2013
  • #9
non restituisce errori non riesco a capire
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 18 Ott 2013
  • #10
ciao
aggiungo a quello che ha detto criric, metti un var_dump che poi toglierai
PHP:
$query = "SELECT * FROM gps_porte WHERE data_inserimento BETWEEN '$inizio' AND '$fine'";
var_dump($query);
$ris = mysql_query($query);
if (!$ris) {
    echo "Errore query " . $query . " " . mysql_error();
}
e verifica che la query sia scritta come dovrebbe
poi con myadmin verifica il formato delle date in tabella, anzi meglio copia il valore di in campo data e postalo

dimenticavo:
guarda che io ho scritto i nomi dei campi in minuscolo, se tu li ai in maiscolo correggili nel mio script o li metti in minuscolo anche nella tabella (meglio)
 
Ultima modifica: 18 Ott 2013
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 18 Ott 2013
  • #11
Allora non restituisce errori i campi nella query sono scritti bene il campo data_inserimento e in formato date e il campo lo scrive cosi 2013-07-29.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 18 Ott 2013
  • #12
hai messo il var_dump suggerito da Borgo?
posta la query come te la stampa
 
L

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
  • 18 Ott 2013
  • #13
Scusate ragazzi sicuramente sono io ad essere ebete e non capire dopo aver inserito i campi di ricerca e lanciato laquesry non mi restituisce nulla nemmeno mettendo il var_dump se lancio la query dal phpadmin funziona
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 18 Ott 2013
  • #14
cioa
intanto alla riga
PHP:
    if(checkdate( $_POST['m_fine'] , $_POST['g_fine'], $_POST['a_fine'])){//aggiungi una parentesi
poi sino alla riga
PHP:
        $query="SELECT * FROM gps_porte WHERE data_inserimento BETWEEN '$inizio' AND '$fine'";
		var_dump($query);//questo è cosa da: string(84) "SELECT * FROM gps_porte WHERE data_inserimento BETWEEN '2013-10-01' AND '2013-12-13'"
sembrerebbe andare tutto bene
ora provo a costruirmi la tabella e faccio delle prove (se hai pazienza)
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

F
Salve a tutti, devo creare un sito web/gioco online dove cliccando il tasto 'Inizia' del form viene estratta una capitale casualmente dal
  • faccone
  • 8 Mag 2024
  • PHP
Risposte
1
Visite
1K
PHP 23 Apr 2025
webest
G
campo non presente nel form
  • Gae
  • 7 Mag 2024
  • Javascript
Risposte
2
Visite
3K
Javascript 8 Mag 2024
Gae
G
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
K
Form che manda dati doppi
  • kamibest
  • 5 Ott 2023
  • PHP
Risposte
1
Visite
1K
PHP 5 Ott 2023
mapa
M
K
Problema form update
  • Kiko74b
  • 22 Giu 2023
  • PHP
Risposte
2
Visite
1K
PHP 3 Ott 2023
WEBLEADERS
W
[Contact form 7] Inserire Numero auto incrementante
  • Elisacau
  • 6 Mar 2023
  • WordPress
Risposte
1
Visite
2K
WordPress 15 Mag 2023
mariathomas
M
K
form Inserimento record mysql
  • Kiko74b
  • 21 Gen 2023
  • PHP
Risposte
2
Visite
1K
PHP 25 Gen 2023
WmbertSea
I
Form con selettore
  • Ikon
  • 2 Dic 2022
  • HTML e CSS
Risposte
0
Visite
956
HTML e CSS 2 Dic 2022
Ikon
I
K
[php]form invio dati
  • Kiko74b
  • 7 Nov 2022
  • PHP
Risposte
0
Visite
1K
PHP 7 Nov 2022
Kiko74b
K
G
form invio multiplo con checkbox
  • giacomo9783
  • 29 Ott 2022
  • PHP
Risposte
12
Visite
3K
PHP 1 Nov 2022
marino51
Intercettare form solo dopo invio
  • nivaria.achinet
  • 29 Apr 2022
  • Javascript
Risposte
1
Visite
1K
Javascript 30 Apr 2022
otto9due
R
Aprire maschera con Openform filtrando un campo testuale con un valore recuperato da un'altra maschera
  • RAF66
  • 27 Mar 2022
  • MS Access
Risposte
10
Visite
4K
MS Access 3 Apr 2022
RAF66
R
D
Form contatti non funzionante
  • Di Napoli Andrea
  • 18 Gen 2022
  • HTML e CSS
Risposte
0
Visite
1K
HTML e CSS 18 Gen 2022
Di Napoli Andrea
D
A
Stampare dati da form
  • antoooo
  • 12 Gen 2022
  • PHP
Risposte
15
Visite
4K
PHP 10 Apr 2024
enzo71
E
M
Unire 2 funzioni per l'invio di un form e con l'apertura di un div
  • maxnegri2036
  • 11 Dic 2021
  • Javascript
Risposte
0
Visite
2K
Javascript 11 Dic 2021
maxnegri2036
M
I
  • Bloccata
Form
  • Ikon
  • 5 Dic 2021
  • HTML e CSS
Risposte
17
Visite
3K
HTML e CSS 12 Dic 2021
Max 1
$_FILE non passa i dati dal form
  • otto9due
  • 3 Nov 2021
  • PHP
Risposte
1
Visite
975
PHP 3 Nov 2021
otto9due
M
Form: come tornare ai campi già compilati dopo invio
  • Marcello_php
  • 16 Ago 2021
  • PHP
Risposte
1
Visite
1K
PHP 17 Ago 2021
zorro
G
Invio form con PHP
  • Giulia2021
  • 24 Lug 2021
  • PHP
Risposte
3
Visite
2K
PHP 17 Ago 2021
bubino8
Form action costum e parametri in queryString
  • felino
  • 9 Giu 2021
  • WordPress
Risposte
1
Visite
2K
WordPress 10 Giu 2021
felino
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • 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?