- Home
- Categorie
- Coding e Sistemistica
- PHP
- Errore Query fetch
-
Errore Query fetch
Salve a tutti ho un problema riguardante una query alla quale inserisco una condizione subquery che mi restituisce errore e non riesco a capire il perchè :
$studio=str_replace("-", " ",$_POST['d-list']); $result=mysql_query("SELECT codice FROM Studi WHERE nome='".$studio."'"); $row = mysql_fetch_row($result); $codice=$row[0]; $result=mysql_query("SELECT id, nome , cognome FROM Volontari WHERE id= (SELECT id FROM Adesioni WHERE $codice='1')"); $nDati = mysql_fetch_row($result);
Il mio intento è prendere il codice dello studio dalla tabella studi quando la variabile inviata post è uguale al nome dello studio.
Successivamente leggere id nome e cognome da volontari quando id presente in adesioni ha nome della colonna uguale al nome del codice dentro studi = a 1 (In poche parole se uno ha aderito ad uno studio sotto la colonna del codice ha 1 o 0 se non ha aderito).
Ma restituisce il classico errore mysql , eliminando la subquery non restituisce errore quindi il problema è quest'ultima "La prima volta che ne uso una" , per altro mi sapreste dire se a livello logico il mio codice è buono e se per caso si puo' usare un'altra strada per ricavare gli stessi dati ?Grazie anticipatamente a tutti
-
Ti dà errore perché nella seconda query, la colonna $codice, non esiste. $codice è una variabile PHP. Se il campo si chiama codice, allora la query è:
$result=mysql_query("SELECT id, nome , cognome FROM Volontari WHERE id= (SELECT id FROM Adesioni WHERE codice=$codice)");
-
Ho risolto cosi
$studio=str_replace("-", " ",$_POST['d-list']); $result=mysql_query("SELECT codice FROM Studi WHERE nome='$studio'"); $row = mysql_fetch_row($result); $codice=$row[0]; $result=mysql_query("SELECT nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'"); $nDati = mysql_num_rows($result);
-
Forse non ho capito quale sia il contesto, ma non ho capito che cosa hai risolto...
SELECT nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'
$codice è un valore... ammesso che vale 1, quella query è 1='1', non è il nome di un campo...
Se però dici che va bene per te, va bene anche per me.
-
Praticamente invio da un form uno studio ad esempio "crema-viso" viene sistemato diventando "crema viso" e messo nella variabile studio.
Effettuo la queri dove cerco il codice dalla tabella studi con nome = studio.
Effettuo un fetch e mi trovo il rispettivo codice dello studio prelevandolo dalla tabella studi ad esempio ipotiziamo che il codice sia ASD.
Successivamente prelevo tutti i dati dalla tabella volontari quando l'id è uguale a quello presente nella tabella adesioni al quale sotto la colonna che ha come nome ASD cè 1 quindi si avrà :$studio=str_replace("-", " ",$_POST['d-list']); //crema-viso -> crema viso$result=mysql_query("SELECT codice FROM Studi WHERE nome='$studio'"); $row = mysql_fetch_row($result);$codice=$row[0]; // crema viso -> ASD$result=mysql_query("SELECT nome, cognome , citta , data , tel ,info ,ninfo, email FROM Volontari WHERE id IN (SELECT id FROM Adesioni WHERE $codice='1') AND activation = '1'"); //$codice= ASD $nDati = mysql_num_rows($result);