do while

<?php 
$anno_a=date('Y');
$mese_a=date('m');
$giorno='01';
for($i=$giorno; $i<=31; $i++) {
do{
if($i=='2') {$i='02';} if($i=='3') {$i='03';} if($i=='4') {$i='04';} if($i=='5') {$i='05';} if($i=='6') {$i='06';} if($i=='7') {$i='07';} if($i=='8') {$i='08';} if($i=='9') {$i='09';} 
$data_fin="$i-$mese_a-$anno_a";
$data_fin_con=converti($data_fin);

mysql_select_db($database_prenota, $prenota);

$query_Recordset7 = "SELECT (SUM(N_adulti)+SUM(bambini))as totale FROM prenota_due WHERE '$data_fin_con' BETWEEN data_arrivo AND data_partenza";
$Recordset7 = mysql_query($query_Recordset7, $prenota) or die(mysql_error());
$row_Recordset7 = mysql_fetch_row($Recordset7);
$totalRows_Recordset7 = mysql_num_rows($Recordset7);
$tot_fin_a=$row_Recordset7['0'];



$query_Recordset8 = "SELECT * FROM prenota_due,clienti 
WHERE prenota_due.idclienti=clienti.idclienti AND '$data_fin_con' BETWEEN prenota_due.data_arrivo AND prenota_due.data_partenza";
$Recordset8 = mysql_query($query_Recordset8, $prenota) or die(mysql_error());
$row_Recordset8 = mysql_fetch_assoc($Recordset8);
$cog=$row_Recordset8['cognome'];

} while (($row_Recordset7 = mysql_fetch_assoc($Recordset7))&&($row_Recordset8 = mysql_fetch_assoc($Recordset8)));

 echo "<table width=\"400\" border=\"1\">
  <tr>
    <td>$data_fin</td>
    <td>$tot_fin_a</td>
   <td>$cog</td>
  </tr>
</table>";}
?>

per il recordset7 il do while lo esegue perfettamente,mentre per

il recordset8 estrare solo il primo record non esegue il do while

dove sbaglio??

 :bye:

inviato 9 anni fa
leoneweb
X 0 X

Ho sbagliato sezione.

chiedo ai moderatori di spostarlo nella sezione giusta

scusate

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

qual'č la logica di funzionamento di quel codice?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

sicuramente mi sono spiegato male o per niente  :o

<?php 
$anno_a=date('Y');
$mese_a=date('m');
$giorno='01';
for($i=$giorno; $i<=31; $i++) {

if($i=='2') {$i='02';} if($i=='3') {$i='03';} if($i=='4') {$i='04';} if($i=='5') {$i='05';} if($i=='6') {$i='06';} if($i=='7') {$i='07';} if($i=='8') {$i='08';} if($i=='9') {$i='09';} 
$data_fin="$i-$mese_a-$anno_a";
$data_fin_con=converti($data_fin);


mysql_select_db($database_prenota, $prenota);

$query_Recordset7 = "SELECT (SUM(N_adulti)+SUM(bambini))as totale FROM prenota_due WHERE '$data_fin_con' BETWEEN data_arrivo AND data_partenza";
$Recordset7 = mysql_query($query_Recordset7, $prenota) or die(mysql_error());
$row_Recordset7 = mysql_fetch_row($Recordset7);
$totalRows_Recordset7 = mysql_num_rows($Recordset7);
$tot_fin_a=$row_Recordset7['0'];


$query_Recordset8 = "SELECT * FROM prenota_due,clienti 
WHERE prenota_due.idclienti=clienti.idclienti AND '$data_fin_con' BETWEEN prenota_due.data_arrivo AND prenota_due.data_partenza";
$Recordset8 = mysql_query($query_Recordset8, $prenota) or die(mysql_error());
$row_Recordset8 = mysql_fetch_assoc($Recordset8);
$cog=$row_Recordset8['cognome'];

do { 
$cog=$row_Recordset8['cognome'];      
?>


<table width="400" border="1">
  <tr>
    <td><?php echo $data_fin;?></td>
    <td><?php echo $tot_fin_a;?></td>
   <td><?php echo $cog;?></td>
  </tr>
</table>
<?php 
} while ($row_Recordset8 = mysql_fetch_assoc($Recordset8));} ?>

supponiamo di avere due record nel database con data dal 12/09/2007 al 15/09/2007 con 2 adulti

e un secondo record dal 14/09/2007 al 19/09/2007 con 2 adulti

adesso come echo in quel periodo ottengo

11-09-2007   
12-09-2007 2 pino 
13-09-2007 2 pino 
14-09-2007 4 pino 
14-09-2007 4 ciccio 
15-09-2007 4 pino 
15-09-2007 4 ciccio 
16-09-2007 2 ciccio 
17-09-2007 2 ciccio 
18-09-2007 2 ciccio 
19-09-2007 2 ciccio 
20-09-2007   

si ripete due volte il 14-09-2007 e il 15-09-2007

mentre vorrei una cosa del genere

11-09-2007   
12-09-2007 2 pino 
13-09-2007 2 pino 
14-09-2007 4 pino  ciccio
15-09-2007 4 pino  ciccio
16-09-2007 2 ciccio 
17-09-2007 2 ciccio 
18-09-2007 2 ciccio 
19-09-2007 2 ciccio 
20-09-2007   

speriamo di non aver rivoltato il PHP   :)

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

Risolto!!!

<?php 
$anno_a=date('Y');
$mese_a=date('m');
$giorno='01';
for($i=$giorno; $i<=31; $i++) {

if($i=='2') {$i='02';} if($i=='3') {$i='03';} if($i=='4') {$i='04';} if($i=='5') {$i='05';} if($i=='6') {$i='06';} if($i=='7') {$i='07';} if($i=='8') {$i='08';} if($i=='9') {$i='09';} 
$data_fin="$i-$mese_a-$anno_a";
$data_fin_con=converti($data_fin);


mysql_select_db($database_prenota, $prenota);

$query_Recordset7 = "SELECT (SUM(N_adulti)+SUM(bambini))as totale FROM prenota_due WHERE '$data_fin_con' BETWEEN data_arrivo AND data_partenza";
$Recordset7 = mysql_query($query_Recordset7, $prenota) or die(mysql_error());
$row_Recordset7 = mysql_fetch_row($Recordset7);
$totalRows_Recordset7 = mysql_num_rows($Recordset7);
$tot_fin_a=$row_Recordset7['0'];


$query_Recordset8 = "SELECT * FROM prenota_due,clienti 
WHERE prenota_due.idclienti=clienti.idclienti AND '$data_fin_con' BETWEEN prenota_due.data_arrivo AND prenota_due.data_partenza";
$Recordset8 = mysql_query($query_Recordset8, $prenota) or die(mysql_error());
$row_Recordset8 = mysql_fetch_assoc($Recordset8);
$cog=$row_Recordset8['cognome'];
   
?>

<table width="400" border="1">
  <tr>
    <td><?php echo $data_fin;?></td>
    <td><?php echo $tot_fin_a;?></td>
   <td><?php do { $cog=$row_Recordset8['cognome'];   echo $cog; echo "--"; } while ($row_Recordset8 = mysql_fetch_assoc($Recordset8));?></td>
  </tr>
</table>
<?php } ?>

 :bye:

risposto 9 anni fa
leoneweb
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda