Buongiorno a tutti,
ho un problema con delle query.
Cerco di costruire una query con all'interno di while() un'altra query. Non l'ho mai provato e ho pensato che potesse funzionare, ma invece tutto il costrutto si ferma alla prima riga della prima query e della seconda query annidata. ho provato a scrivere il codice il più semplice possibile , ma niente! Mi spiego con un esempio:
Codice PHP:
#prima query
try
{
$sql="SELECT col1, col2, col3
FROM tabella1
where col4=:num
order by col3";
$s=$pdo->prepare($sql);
$s->bindValue(':num', numero );
$s->execute();
}catch(PDOException $e)
{
$header="oooops.... ";
$msg ="query errata per cercare i dati... : " . $e->getMessage() ." in file: ".$e->getFile() ." in line: ". $e->getLine();
include 'errore.html.php';
exit();
}
$i=0;
while($rows=$s->fetch())
{
$tabella2[]=$rows['col3']; //tale valore è il nome di diverse tabelle dalle quali vorrei prendere dei dati;
$array1[]=array('val1'=>$rows['col1'],'val2'=>$rows['col2'],'val3'=>$rows['col3']);
#query nested
try
{
$sql="select col5, col6, col7, col8, col9
from ". $tabella2[$i] . "
inner join tabella3 on ".$tabella2[$i].".id=tabella3.id
where ".$tabella2[$i]. ".col10=:idN";
$s=$pdo->prepare($sql);
$s->bindValue(':idN',numero );
$s->execute();
}catch(PDOException $e)
{
$header="oooops.... ";
$msg ="query errata per cercare i dati nel nido... : " . $e->getMessage() ." in file: ".$e->getFile() ." in line: ". $e->getLine();
include 'errore.html.php';
exit();
}
while($row=$s->fetch())
{
$array2[$i][]=array('val4'=>$row['col5'], 'val4'=>$row['col6'], 'val6'=>$row['col7'],'val7'=>$row['col8'],'val8'=>$row['col9']);
}
$i++;
}
non riesco a capire perchè. che ne pensate?