Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PHP/SQL]Problema stampa range

    Salve ragazzi, sto sviluppando un DB per un agenzia d'assicurazioni ora mie esigenze per una data di scadenza della polizza nel db questa viene scomposta in Giorno,Mese,Anno dunque 3 variabili, ora il problema qual'è volendo stampare un range di scadenze per esempio dal 1/1/2013 al 1/1/2014 ho il problema che mi stampa solamente 2 record quello della prima data e quello della seconda e da almeno 2 giorni che cerco di risolvere questo problema metto in allegato il codice con la speranza che qualcuno riesca ad aiutarmi:

    codice:
    $Giorno= $_POST['GiornoSCA'];
    				$Mese= $_POST['MeseSCA'];
    				$Anno= $_POST['AnnoSCA'];
    				
    				$Giorno2= $_POST['GiornoSCAF'];
    				$Mese2= $_POST['MeseSCAF'];
    				$Anno2= $_POST['AnnoSCAF'];
    				$sql="SELECT * ".
    				     "FROM Clienti C,Compagnia CO,Collaboratore COL, Frazionamento F ".
    					 
    					 "WHERE C.IdCompagnia=CO.IdCompagnia AND C.IdCol=COL.IdCol AND C.IdFraz=F.IdFraz ";
    					 //"BETWEEN '$Mese' AND '$Mese2' ".
    					 
    					 echo $sql;
    				$risp=mysql_query($sql);
    				
    				print("<table border='1' bordercolor='#FFCC00' style='background-color:#FFFFCC' width='400px' cellpadding='3' cellspacing='3' valign='top'>");
    				
    							if (!$risp)
    							{	
    								die ('
    errore database: ' . mysql_error());
    									
    							}
    							else
    							{
    							
    									print("<tr>");
    									print("<td>N Cartella</td>");
    									print("<td>Nome</td>");
    									print("<td>Cognome</td>");
    									print("<td>Numero Polizza</td>");
    									print("<td>Premio</td>");
    									print("<td>Compagnia</td>");
    									print("<td>Frazionamento</td>");
    									print("<td>Scadenza Contrassegno</td>");
    									
    								while ($array = mysql_fetch_array($risp)) {
    								
    									
    									
    										if($array['AnnoS']<=$_POST['AnnoSCAF'])
    										{	
    											if($array['MeseS']>!$_POST['MeseSCAF'])
    											{
    												if($array['GiornoS']>!$_POST['GiornoSCAF'])
    												{	
    											
    														print("<tr>");
    														print("<td>");echo $array['NumCart'];print("</td>");
    														print("<td>");echo $array['Nome'];print("</td>");
    														print("<td>");echo $array['Cognome'];print("</td>");
    														print("<td>");echo $array['Npol'];print("</td>");
    														print("<td>");echo $array['Premio'];print("</td>");
    														print("<td>");echo $array['NomeComp'];print("</td>");
    														print("<td>");echo $array['TipoFraz'];print("</td>");
    														print("<td>");echo $array['GiornoS'];print("/");echo $array['MeseS'];print("/");echo $array['AnnoS'];print("</td>");
    														print("</tr>");
    												}
    											}
    										}
    									
    									
    								}
    							}
    print("</table>");
    PS: Ho tolto i codici x la connesione, Essendo inutili in questo post XD

    Tutte le variabili post con dicitura SCAF sono le date della fine del range

  2. #2
    dai una occhiata qua e troverai la soluzione ..potresti usare ADDDATE che somma il numero di giorni voluti ad esempio nel tuo caso ADDDATE('2013-04-01', 365) visualizzerà 2014-04-01

  3. #3
    il problema sta nel fatto che non e una data ma una semplice variabile INT che stampate insieme formano la data sta in questa la cosa

  4. #4
    ti riferisci alle variabili che definiscono le date? se si dovrebbe bastare come segue

    Codice PHP:
    $Giorno$_POST['GiornoSCA'];
    $Mese$_POST['MeseSCA'];
    $Anno$_POST['AnnoSCA'];
                    
    $Giorno2$_POST['GiornoSCAF'];
    $Mese2$_POST['MeseSCAF'];
    $Anno2$_POST['AnnoSCAF'];

    $data date('Y-m-d', ,mktime(000$Mese$Giorno$Anno));
    $sql "SELECT ADDDATE($data, 365) AS data2; 
    $result = mysql_query($sql);
    $data2 =$row['data2'];

    $sql="SELECT FROM Clienti C,Compagnia CO,Collaboratore COLFrazionamento F WHERE Data BETWEEN '" . $data . "' AND Data '" . $data2 . "'"; 
    più o meno dovrebbe andare così...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.