Codice PHP:
$from = ' FROM tabella_1 JOIN autori ON';
Ti manca un pezzo dopo ON, devi specificare quali campi utilizzare per effettuare la JOIN. Per fare un esempio, anche se non conosco la struttura delle tabelle che stai utilizzando, supponiamo che le tabelle abbiano questa struttura:
Codice:
autore (
id INT,
nome VARCHAR,
cognome VARCHAR
);
testo (
id INT,
id_autore INT,
contenuto TEXT
);
La query di base, alla quale aggiungere successivamente clausole e modificatori, diventa:
Codice:
SELECT * FROM autore JOIN testo ON autore.id = testo.id_autore;
Il cui risultato sarà in questa forma:
Codice:
autore.id | nome | cognome | testo.id | id_autore | contenuto |
1 | Aldo | Abbott | 7 | 1 | Un testo qualunque... |
1 | Aldo | Abbott | 20 | 1 | Un altro testo... |
3 | Gesualdo | Bernard | 15 | 3 | Un'opera letteraria... |
...
23 | Zirolamo | Zevio | 3 | 23 | Un testo... |
Se vuoi quindi estrarre campi specifici o restringere i risultati puoi usare i soliti strumenti:
Codice:
SELECT DISTINCT autore.id, nome, cognome, testo FROM autore JOIN testo ON autore.id = testo.id_autore WHERE id_autore = 3;
non capisco perchè non posso mettere tutto in una variabile
Non lo capisci perché non è vero . Sei libero di mettere l'intera query in un'unica variabile, per esempio una cosa del genere:
Codice PHP:
$query = "SELECT DISTINCT FROM tabella_1 JOIN autori ON tabella_1.id = autori.id" . (!empty($_POST['autoreid']) ? " WHERE autori.id = " . $_POST['autoreid'] : "");