Ciao a tutti 
Vorrei ridurre a una sola query questa richiesta SQL:
codice:
// recupera, dato l'id, l'id del tipo di locale
$infoSQL = "SELECT tipo FROM locali WHERE id = ".$id;
$info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error());
$info_array = mysql_fetch_assoc($info_query);
$info = $info_array['tipo'];
// recupera, dato l'id del tipo, il nome della tabella al quale si riferisce
$infoSQL = "SELECT tabella FROM tipi WHERE id = ".$info;
$info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error());
$info_array = mysql_fetch_assoc($info_query);
$info = $info_array['tabella'];
// recupera, dato id e tabella, le informazioni sul locale
$infoSQL = "SELECT * FROM ".$info." WHERE id = ".$id;
$info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error());
$info_array = mysql_fetch_assoc($info_query);
Sono riuscito a ridurla a 2 query in questo modo:
codice:
$infoSQL = "SELECT tabella FROM tipi WHERE id = (SELECT tipo FROM locali WHERE id = ".$id.")";
$info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error());
$info_array = mysql_fetch_assoc($info_query);
$infoSQL = "SELECT * FROM ".$info_array['tabella']." WHERE id = ".$id;
$info_query = mysql_query($infoSQL, $ConnessioneMysql) or die(mysql_error());
$info_array = mysql_fetch_assoc($info_query);
Purtroppo non riesco a ridurla ulteriormente, dato che non posso scrivere:
"SELECT * FROM ( SELECT tabella FROM tipi WHERE id = (SELECT tipo FROM locali WHERE id = ".$id." ) WHERE id = ".$id
altrimenti SQL cerca in una tabella inutile, mentre dovrebbe prendere il nome della tabella...
Any ideas?
Grazie!