estrazione record da database

skate84

Utente Attivo
16 Mag 2009
83
0
0
Ciao a tutti, ho questo problemino.

Praticamente voglio visualizzare in una pagina una tabella con su la data dell'avvenimento e il testo. Questa tabella deve visualizzare gli avvenimenti ancora da svolgere quindi con data superiore alla data odierna.

Sempre nella stessa pagina voglio visualizzare sempre in una tabella gli avvenimenti avvenuti nell'anno corrente.

Quindi riassumendo:

Prima parte della pagina --> tabella dei record con data >= data odierna

Seconda parte della pagina --> tabella dei record con data vecchia della data odierna (anno corrente)

Io ho buttato giù una bozza..ma mi visualizza pagina vuota...

Mi sapete aiutare?

Posto il codice:

PHP:
<?php
include ("connect.php");
?>

<?php
$adesso=date("Y-m-d");
$sql = "SELECT data, testo FROM avvenimenti WHERE id_lingua = '1' AND data >= ".$adesso."";

$result = mysql_query ($sql, $db);

if($result){
$colore="green";
while ($row = mysql_fetch_row($result))
{
echo
"<tr>
<td bgcolor=\"$colore\" valign=\"top\" width='80'>
".$row['data']."
</td>
<td bgcolor=\"$colore\" valign=\"top\" >
".$row['testo']."
</td>
</tr>";
}
}
else
{
$colore="red";
}
mysql_close($db);

?>


Ripeto è una bozza... non mi attaccate se vedete delle mostruosità :D
 
in che formato viene registrata la data nel database; dai un'occhiata all'utilizzo dell'operatore between
 
La data viene registrata con un semplice date yyyy-mm-dd.

Il problema se lo è, devo fare in modo che automaticamente con l'anno 2010 vengano visualizzati gli avvenimenti di quell'anno man mano che vengono inseriti nel db.
 
Così mi visualizza la pagina con gli avvenimenti dell'anno 2009...ma non è la soluzione che voglio io :)

PHP:
<?php
	include ("connect.php");
?>

<h2>Appuntamenti passati</h2>
<br/>
<br/>

<?php
	
	$sql = "SELECT date_format(data, '%d-%m-%Y'), testo FROM appuntamenti WHERE id_lingua = '1' AND data between '2009.01.01' AND '2009.12.31' ORDER BY data DESC";
	$result = mysql_query($sql, $db);
	
	echo
		"<table border=\"1\">\n";
              
        while ($line = mysql_fetch_array($result, MYSQL_NUM))
             {
                
                echo "<tr>";
                	foreach ($line as $col_value){
						echo "\t\t<td>$col_value</td>\n";
					}
				echo "\t</tr>\n";
				}
			echo "</table>\n";
	                
	
	
	mysql_free_result($result);
	mysql_close($db);
	

?>

Non esiste una funzione o qlc del genere che mi faccia visualizzare gli avvenimenti dell'anno corrente senza scrivere "data between '2009.01.01' AND '2009.12.31'"?

Altra cosa voglio fare in modo che con l'anno 2010 gli avvenimenti del 2009 vengano spostati automaticamente in un'altra pagina insieme agli avvenimenti del 2006,2007,2008 (in una tabella). C'è il modo per farlo?
 
Ultima modifica:
ciao
potresti provare così

SELECT .... FROM .... WHERE ....AND data REGEXP '2009';
e se vuuoi rendere automatico il tutto
estrai la data massima
dovrebbe essere (ma non sono sicuro)
SELECT MAX(data)......
se è scritta yy.mm.gg
la explodi
$esplosa=explode(".",$max_data);


SELECT .... FROM .... WHERE ....AND data REGEXP '$esplosa[0]';
 

Discussioni simili