Ho scritto uno script che ha un comportamento un po' strano. Ho usato la funzione array_intersect per intersecare il risultato di due query. Tramite la funzione $risultato[$id] riesco a recuperare l'effettivo indice di una tabella di database. Quando però cerco di recuperare i record nella tabella usando questo come indice, questi record non vengono recuperati. Pensavo si trattasse di un problema di formato della variabile e ho provato a forzare a integer il valore con
Codice PHP:
 $idc=$risultato[$id];
                             
settype($idc,integer); 
ma stranamente la successiva query sembra non funzionare. Il listato completo è questo:
Codice PHP:
<?php
session_start
();
$utente="guest";
$passwd="guest";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<title> Visualizzazione congresso </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="post" action="d_congresso.php">



Congressi:

<?php    
    $anno
=$HTTP_POST_VARS["anno"];
    
$luogo=$HTTP_POST_VARS["luogo"];
    
$con=mysql_connect($host,$utente,$passwd) or die("Connessione non riuscita: " mysql_error());
    
mysql_select_db("news") or die("Selezione del database non riuscita");
if(
$anno != ''){
                      
$nca "SELECT * FROM congresso,evento WHERE  congresso.id_evento=evento.id_evento AND evento.Anno='$anno'";
                
$querya mysql_query($nca);
                if(
$rigaa mysql_fetch_array($querya)){
                                                          
$ar1=array($rigaa["id_congresso"]);
                                                        }
                while(
$rigaa mysql_fetch_array($querya)){
                                                              
array_push($ar1,$rigaa["id_congresso"]);
                                                      }
               }
if(
$luogo != ''){
                       
$ncl "SELECT * FROM congresso,evento WHERE  congresso.Luogo='$luogo' AND congresso.id_evento=evento.id_evento";
                 
$queryl mysql_query($ncl);
                 if(
$rigal mysql_fetch_array($queryl)){
                                                           
$ar2=array($rigal["id_congresso"]);
                                                        }
                 while(
$rigal mysql_fetch_array($queryl)){
                                                              
array_push($ar2,$rigal["id_congresso"]);
                                                           }
                    }
else if(
$luogo == ''){
                       
$ncl "SELECT * FROM congresso,evento";
                 
$queryl mysql_query($ncl);
                 if(
$rigal mysql_fetch_array($queryl)){
                                                          
$ar2=array($rigal["id_congresso"]);
                                                        }
                 while(
$rigal mysql_fetch_array($queryl)){
                                                              
array_push($ar2,$rigal["id_congresso"]);
                                                           }
                    }
$risultato array_intersect($ar1,$ar2);
$indici array_keys($risultato);
?>
<select name="congresso">
<?php
     $i
=0;
     
$id=$indici[$i];
     while(
$risultato[$id]) {
                             
$idc=$risultato[$id];
                             
settype($idc,integer);
                              
$rcon =  "SELECT * FROM congresso WHERE  id_congresso='$idc'";
                             
$queryr mysql_query($rcon);
                             
$rigar mysql_fetch_array($queryr);
                             
$ide $rigar["id_evento"];
                             
settype($ide,integer);
                             
$rev =  "SELECT * FROM evento WHERE  id_evento='$ide'";
                             
$queryre mysql_query($rev);
                             
$rigare mysql_fetch_array($queryre);                                    
                                echo 
"<option value='" $idc "'>"  $idc "-" $rigare["$Titolo"] . "-" $rigare["$Anno"]. "-" $rigar["$Luogo"]. "-" $rigar["$Organizzazione"];
                                echo 
"</option>";
                             
$i=$i+1;
                             
$id=$indici[$i];
                                  }
?>
</select>
</p>


              
<input type="submit" value="Invia &gt;"/>
</p>
<?php    
    mysql_close
($con);
?>
</form>
</body>
</html>
Sapreste per cortesia dirmi dove è il problema?
Grazie