|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2006
Città: Bari
Messaggi: 238
|
[PHP+MySQL] - non riesco a fare un controllo su tutte le righe della tabella
ciao a tutti!
vengo subito al dunque: sto creando un calendario eventi da inserire in un sito. il codice della pagina lo potete vedere di seguito... il problema mio sta nel fatto che nel momento in cui eseguo la query al database devo selezionare tutte le righe della tabella per poi confrontarle con le varie date in modo che, se esiste un evento in lista, linko alla pagina dell'evento...altrimenti stampo in numero del giorno senza link. lo script in questione fa il confronto solo con la prima riga della tabella, quando in tabella ho un bel pò di eventi da linkare. come faccio??? Codice HTML:
<?
include ("_private/config.inc.php");
# imposto la query e prelevo tutti i dati dalla tabella eventi
$result = mysql_query("SELECT gg,mm,aaaa FROM eventi");
$row = mysql_fetch_array($result);
# Imposto i vettori per i giorni della settimana e per i mesi
$giorno = Array("L","M","M","G","V","S","D");
$nomemese = Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno", "Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
# Richiesta al server della data odierna
$aa=$_REQUEST['aa'];
if ($aa=="") $aa=date("Y");
$mm=$_REQUEST['mm'];
if ($mm=="") $mm=date("n");
# Inizio la tabella con la prima riga dei giorni della settimana
print "<table border='1px' align='center'>";
# Ciclo FOR per i giorni della settimana
print " <tr>";
for ($i=0;$i<7;$i++)
{
print " <td><b>".$giorno[$i]."</b></td>";
}
print " </tr>";
# Calcolo gli spazi da lasciare vuoti all'inizio della tabella del mese in base al giorno di inizio
$primo=mktime(0,0,0,$mm,1,$aa); # Calcolo il primo giorno del mese
$delta=date("w",$primo)-1;
print " <tr>";
for ($i=0;$i<$delta;$i++)
{
print " <td> </td>";
}
# Imposto un sistema per muoversi tra i vari mesi e gli anni
$anno=$aa; $mese=$mm;
if ($mese==1) $back="aa=".($anno-1)."&mm=12";
else $back="aa=".$anno."&mm=".($mese-1);
if ($mese==12) $next="aa=".($anno+1)."&mm=1";
else $next="aa=".$anno."&mm=".($mese+1);
print " <div align='center'>";
print "<a href=calendario.php?".$back.">«</a> ";
print "<b>".$nomemese[$mm-1]." ".$aa."</b> ";
print "<a href=calendario.php?".$next.">»</a>";
print " </div>";
# Stampo a video la griglia con i giorni del mese
for ($i=1;$i<=date("t",$primo);$i++){
if (($i+$delta)%7==1) print " <tr>"; # Inizio riga
if (($i==date("d"))&&($mm==date("n"))&&($aa==date("Y"))) # Verifico se il giorno è da contrassegnare o meno come data odierna
{
if (($i==$row['gg'])&&($mm==$row['mm'])&&($aa==$row['aaaa'])) # Controllo se in un giorno è previsto un evento
{
print " <td style='border:1px solid #f00'><a href='evento.php?gg=".$row[gg]."&mm=".$row[mm]."&aaaa=".$row[aaaa]."'>".$i."</a></td>";
}
else
print " <td style='border:1px solid #f00'>".$i."</td>";
}
else
{
if (($i==$row['gg'])&&($mm==$row['mm'])&&($aa==$row['aaaa'])) # Controllo se in un giorno è previsto un evento
{
print " <td><a href='evento.php?gg=".$row[gg]."&mm=".$row[mm]."&aaaa=".$row[aaaa]."'>".$i."</a></td>";
}
else
print " <td>".$i."</td>";
}
if (($i+$delta)%7==0) print " </tr>"; # Fine riga
}
print "</table>";
?>
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Oct 2006
Città: Bari
Messaggi: 238
|
ci sarebbe da incrementare il numero di riga su cui fare il controllo.
come faccio usando un ciclo for o while a far incrementare la riga da controllare con la funzione mysql_fetch_array() ????? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
while ($row = mysql_fetch_row($r))
{ } ci pensa lui |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2006
Città: Bari
Messaggi: 238
|
$r
sarebbe $result nel mio caso? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2003
Città: Milano
Messaggi: 429
|
Esatto
__________________
<img src="http://www.hostfiles.org/usr/files/204/firma_clan_ubuntu_hwupgrade.png"></img> |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Oct 2006
Città: Bari
Messaggi: 238
|
allora: stando al vostro consiglio e alla mia logica (non proprio infallibile), ho modificato la parte relativa alla stampa di righe e colonne della tabella con relativi link in questo modo. il problema è che ora mi stampa tre 1 (guardacaso sono tre le righe memorizzate in tabella) in corrispondenza dei primi 3 giorni di febbraio (giovedì venerdì e sabato) e poi non prosegue con la stampa della tabella.
dove sbaglio??? Codice PHP:
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:34.



















