Pasa que no lo puedes hacer asi.... dentro de un string no puedes poner codigo
Código PHP:
Ver original$sql ="SELECT profolio,(prodescuadria||'x'||prodlargo) as escuadria, ".
"prodvolumen, ".
"prodpzas, ".
"simtrozosconsumo, ".
"split_part(prodescuadria,'x',1) as part1, ".
"split_part(prodescuadria,'x',2) as part2, ".
"prodlargo ".
"FROM (SELECT a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo, ".
"b.simtrozosconsumo ".
"FROM (SELECT profolio,esqcodigo,patcodigo,simcodigo, ".
"simtrozosconsumo ".
"FROM simulaciones ".
"WHERE profolio IN (";
//Para cada elemento agrego el valor al la cadena $sql
for($i = 1; $i <= $cont; $i++){
$variable = $_POST["campo".$i];
if($i!=1) $sql .=",";
$sql .="'".$variable."'";
}
$sql .=") AND patcodigo IN (";
////Aqui un for similar al anterior
//// ))b,esquemaprograma a <--- Aqui hay un error
$sql .=")) b,esquemaprograma a WHERE a.profolio IN (";
////Aqui un for similar al anterior
$sql .=") AND a.patcodigo IN (";
////Aqui un for similar al anterior
$sql .=") AND a.profolio=b.profolio ".
"AND a.esqcodigo=b.esqcodigo ".
"AND a.patcodigo=b.patcodigo ".
"GROUP BY a.profolio,a.esqcodigo,a.patcodigo,b.simcodigo,b.simtrozosconsumo)";
///Aqui hay otro error
$sql .="c,produccionsimulada a ";
$sql .="WHERE a.simcodigo=c.simcodigo ".
"ORDER BY prodvolumen DESC";
//Con esto podras ver si se ha construido bien la query
echo $sql."<br />";
Fijate que estoy usando ".=" para concatenar cadenas ($sql
.=)